LIEF: Library to Instrument Executable Formats Version 0.15.1
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)

◆ 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.

◆ version() [2/2]

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

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