LIEF: Library to Instrument Executable Formats Version 0.17.0
|
Class which represents a Node in the resource tree. More...
#include <ResourceNode.hpp>
Public Types | |
enum class | TYPE { UNKNOWN = 0 , DATA , DIRECTORY } |
Enum that identifies the type of a node in the resource tree. More... | |
using | childs_t = std::vector<std::unique_ptr<ResourceNode>> |
using | it_childs = ref_iterator<childs_t&, ResourceNode*> |
using | it_const_childs = const_ref_iterator<const childs_t&, ResourceNode*> |
Public Types inherited from LIEF::Object | |
template<class T > | |
using | output_t = add_pointer_t<decay_t<T>> |
template<class T > | |
using | output_const_t = add_pointer_t<add_const_t<decay_t<T>>> |
Public Member Functions | |
ResourceNode (const ResourceNode &other) | |
ResourceNode & | operator= (const ResourceNode &other) |
ResourceNode (ResourceNode &&other) | |
ResourceNode & | operator= (ResourceNode &&other) |
void | swap (ResourceNode &other) |
~ResourceNode () override | |
virtual std::unique_ptr< ResourceNode > | clone () const =0 |
uint32_t | id () const |
Integer that identifies the Type, Name, or Language ID of the entry depending on its depth in the tree. | |
const std::u16string & | name () const |
Name of the entry. | |
it_childs | childs () |
Iterator on node's children. | |
it_const_childs | childs () const |
bool | has_name () const |
True if the entry uses a name as ID | |
uint32_t | depth () const |
Current depth of the Node in the resource tree. | |
bool | is_directory () const |
True if the current entry is a ResourceDirectory. | |
bool | is_data () const |
True if the current entry is a ResourceData. | |
void | id (uint32_t id) |
void | name (const std::string &name) |
void | name (std::u16string name) |
ResourceNode & | add_child (const ResourceDirectory &child) |
Add a ResourceDirectory to the current node. | |
ResourceNode & | add_child (const ResourceData &child) |
Add a ResourceData to the current node. | |
void | delete_child (uint32_t id) |
Delete the node with the given id | |
void | delete_child (const ResourceNode &node) |
Delete the given node from the node's children. | |
void | accept (Visitor &visitor) const override |
Public Member Functions inherited from LIEF::Object | |
Object () | |
Object (const Object &other) | |
Object & | operator= (const Object &other) |
template<class T > | |
output_t< T > | as () |
template<class T > | |
output_const_t< T > | as () const |
virtual bool | operator== (const Object &other) const |
virtual bool | operator!= (const Object &other) const |
virtual | ~Object () |
Class which represents a Node in the resource tree.
using LIEF::PE::ResourceNode::childs_t = std::vector<std::unique_ptr<ResourceNode>> |
using LIEF::PE::ResourceNode::it_const_childs = const_ref_iterator<const childs_t&, ResourceNode*> |
|
strong |
LIEF::PE::ResourceNode::ResourceNode | ( | const ResourceNode & | other | ) |
LIEF::PE::ResourceNode::ResourceNode | ( | ResourceNode && | other | ) |
|
override |
|
overridevirtual |
Implements LIEF::Object.
ResourceNode & LIEF::PE::ResourceNode::add_child | ( | const ResourceData & | child | ) |
Add a ResourceData to the current node.
ResourceNode & LIEF::PE::ResourceNode::add_child | ( | const ResourceDirectory & | child | ) |
Add a ResourceDirectory to the current node.
|
inline |
Iterator on node's children.
|
inline |
|
pure virtual |
Implemented in LIEF::PE::ResourceData, and LIEF::PE::ResourceDirectory.
void LIEF::PE::ResourceNode::delete_child | ( | const ResourceNode & | node | ) |
Delete the given node from the node's children.
void LIEF::PE::ResourceNode::delete_child | ( | uint32_t | id | ) |
Delete the node with the given id
|
inline |
Current depth of the Node in the resource tree.
|
inline |
True
if the entry uses a name as ID
|
inline |
Integer that identifies the Type, Name, or Language ID of the entry depending on its depth in the tree.
|
inline |
|
inline |
True
if the current entry is a ResourceData.
It can be safely casted with:
Referenced by LIEF::PE::ResourceData::classof().
|
inline |
True
if the current entry is a ResourceDirectory.
It can be safely casted with:
Referenced by LIEF::PE::ResourceDirectory::classof().
|
inline |
Name of the entry.
void LIEF::PE::ResourceNode::name | ( | const std::string & | name | ) |
|
inline |
ResourceNode & LIEF::PE::ResourceNode::operator= | ( | const ResourceNode & | other | ) |
ResourceNode & LIEF::PE::ResourceNode::operator= | ( | ResourceNode && | other | ) |
void LIEF::PE::ResourceNode::swap | ( | ResourceNode & | other | ) |