LIEF: Library to Instrument Executable Formats Version 0.17.0
Loading...
Searching...
No Matches
LIEF::ELF::SymbolVersionRequirement Class Reference

Class which represents an entry in the DT_VERNEED or .gnu.version_r table. More...

#include <SymbolVersionRequirement.hpp>

Inheritance diagram for LIEF::ELF::SymbolVersionRequirement:
Collaboration diagram for LIEF::ELF::SymbolVersionRequirement:

Public Types

using aux_requirement_t = std::vector<std::unique_ptr<SymbolVersionAuxRequirement>>
 
using it_aux_requirement = ref_iterator<aux_requirement_t&, SymbolVersionAuxRequirement*>
 
using it_const_aux_requirement = const_ref_iterator<const aux_requirement_t&, const SymbolVersionAuxRequirement*>
 
- 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

 SymbolVersionRequirement ()=default
 
 SymbolVersionRequirement (const details::Elf64_Verneed &header)
 
 SymbolVersionRequirement (const details::Elf32_Verneed &header)
 
 ~SymbolVersionRequirement () override=default
 
SymbolVersionRequirementoperator= (SymbolVersionRequirement other)
 
 SymbolVersionRequirement (const SymbolVersionRequirement &other)
 
void swap (SymbolVersionRequirement &other)
 
uint16_t version () const
 Version revision.
 
size_t cnt () const
 Number of auxiliary entries.
 
it_aux_requirement auxiliary_symbols ()
 Auxiliary entries as an iterator over SymbolVersionAuxRequirement.
 
it_const_aux_requirement auxiliary_symbols () const
 
const std::string & name () const
 Return the library name associated with this requirement (e.g. libc.so.6)
 
void version (uint16_t version)
 
void name (const std::string &name)
 
SymbolVersionAuxRequirementadd_aux_requirement (const SymbolVersionAuxRequirement &aux_requirement)
 Add a version auxiliary requirement to the existing list.
 
void accept (Visitor &visitor) const override
 
- Public Member Functions inherited from LIEF::Object
 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
 
virtual ~Object ()
 

Detailed Description

Class which represents an entry in the DT_VERNEED or .gnu.version_r table.

Member Typedef Documentation

◆ aux_requirement_t

◆ it_aux_requirement

◆ it_const_aux_requirement

Constructor & Destructor Documentation

◆ SymbolVersionRequirement() [1/4]

LIEF::ELF::SymbolVersionRequirement::SymbolVersionRequirement ( )
default

◆ SymbolVersionRequirement() [2/4]

LIEF::ELF::SymbolVersionRequirement::SymbolVersionRequirement ( const details::Elf64_Verneed & header)

◆ SymbolVersionRequirement() [3/4]

LIEF::ELF::SymbolVersionRequirement::SymbolVersionRequirement ( const details::Elf32_Verneed & header)

◆ ~SymbolVersionRequirement()

LIEF::ELF::SymbolVersionRequirement::~SymbolVersionRequirement ( )
overridedefault

◆ SymbolVersionRequirement() [4/4]

LIEF::ELF::SymbolVersionRequirement::SymbolVersionRequirement ( const SymbolVersionRequirement & other)

Member Function Documentation

◆ accept()

void LIEF::ELF::SymbolVersionRequirement::accept ( Visitor & visitor) const
overridevirtual

Implements LIEF::Object.

◆ add_aux_requirement()

SymbolVersionAuxRequirement & LIEF::ELF::SymbolVersionRequirement::add_aux_requirement ( const SymbolVersionAuxRequirement & aux_requirement)

Add a version auxiliary requirement to the existing list.

◆ auxiliary_symbols() [1/2]

it_aux_requirement LIEF::ELF::SymbolVersionRequirement::auxiliary_symbols ( )
inline

Auxiliary entries as an iterator over SymbolVersionAuxRequirement.

◆ auxiliary_symbols() [2/2]

it_const_aux_requirement LIEF::ELF::SymbolVersionRequirement::auxiliary_symbols ( ) const
inline

◆ cnt()

size_t LIEF::ELF::SymbolVersionRequirement::cnt ( ) const
inline

Number of auxiliary entries.

◆ name() [1/2]

const std::string & LIEF::ELF::SymbolVersionRequirement::name ( ) const
inline

Return the library name associated with this requirement (e.g. libc.so.6)

Referenced by operator<<.

◆ name() [2/2]

void LIEF::ELF::SymbolVersionRequirement::name ( const std::string & name)
inline

◆ operator=()

SymbolVersionRequirement & LIEF::ELF::SymbolVersionRequirement::operator= ( SymbolVersionRequirement other)

◆ swap()

void LIEF::ELF::SymbolVersionRequirement::swap ( SymbolVersionRequirement & other)

◆ version() [1/2]

uint16_t LIEF::ELF::SymbolVersionRequirement::version ( ) const
inline

Version revision.

This field should always have the value 1. It will be changed if the versioning implementation has to be changed in an incompatible way.

Referenced by operator<<.

◆ version() [2/2]

void LIEF::ELF::SymbolVersionRequirement::version ( uint16_t version)
inline

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