LIEF: Library to Instrument Executable Formats Version 0.15.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
LIEF::PE::ResourceNode Class Referenceabstract

Class which represents a Node in the resource tree. More...

#include <ResourceNode.hpp>

Inheritance diagram for LIEF::PE::ResourceNode:
Inheritance graph
[legend]
Collaboration diagram for LIEF::PE::ResourceNode:
Collaboration graph
[legend]

Public Types

enum class  TYPE { UNKNOWN = 0 , DATA , DIRECTORY }
 Enum that identifies the type of a node in the resource tree.
 
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)
 
ResourceNodeoperator= (const ResourceNode &other)
 
 ResourceNode (ResourceNode &&other)
 
ResourceNodeoperator= (ResourceNode &&other)
 
void swap (ResourceNode &other)
 
virtual std::unique_ptr< ResourceNodeclone () 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)
 
ResourceNodeadd_child (const ResourceDirectory &child)
 Add a ResourceDirectory to the current node.
 
ResourceNodeadd_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 (const Object &other)
 
Objectoperator= (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
 

Detailed Description

Class which represents a Node in the resource tree.

Member Function Documentation

◆ accept()

void LIEF::PE::ResourceNode::accept ( Visitor & visitor) const
overridevirtual

Implements LIEF::Object.

◆ is_data()

bool LIEF::PE::ResourceNode::is_data ( ) const

True if the current entry is a ResourceData.

It can be safely casted with:

const auto& data_node = static_cast<const ResourceData&>(node);
Class which represents a Data Node in the PE resources tree.
Definition ResourceData.hpp:32

◆ is_directory()

bool LIEF::PE::ResourceNode::is_directory ( ) const

True if the current entry is a ResourceDirectory.

It can be safely casted with:

const auto& dir_node = static_cast<const ResourceDirectory&>(node);
Definition ResourceDirectory.hpp:37

The documentation for this class was generated from the following file: