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

Base class for any Compiled Hybrid Portable Executable (CHPE) metadata. More...

#include <Metadata.hpp>

Inheritance diagram for LIEF::PE::CHPEMetadata:

Public Types

enum class  KIND { UNKNOWN = 0 , ARM64 , X86 }
 Discriminator for the subclasses. More...
 

Public Member Functions

 CHPEMetadata ()=default
 
 CHPEMetadata (KIND kind, uint32_t version)
 
 CHPEMetadata (const CHPEMetadata &)=default
 
CHPEMetadataoperator= (const CHPEMetadata &)=default
 
 CHPEMetadata (CHPEMetadata &&)=default
 
CHPEMetadataoperator= (CHPEMetadata &&)=default
 
virtual std::unique_ptr< CHPEMetadataclone () const
 
KIND kind () const
 Determine the type of the concrete implementation.
 
uint32_t version () const
 Version of the structure.
 
virtual std::string to_string () const
 
template<class T >
Tas ()
 
template<class T >
const Tas () const
 
virtual ~CHPEMetadata ()=default
 

Static Public Member Functions

static std::unique_ptr< CHPEMetadataparse (Parser &ctx, BinaryStream &stream)
 

Detailed Description

Base class for any Compiled Hybrid Portable Executable (CHPE) metadata.

This class is inherited by architecture-specific implementation.

Member Enumeration Documentation

◆ KIND

enum class LIEF::PE::CHPEMetadata::KIND
strong

Discriminator for the subclasses.

Enumerator
UNKNOWN 
ARM64 
X86 

Constructor & Destructor Documentation

◆ CHPEMetadata() [1/4]

LIEF::PE::CHPEMetadata::CHPEMetadata ( )
default

◆ CHPEMetadata() [2/4]

LIEF::PE::CHPEMetadata::CHPEMetadata ( KIND kind,
uint32_t version )
inline

◆ CHPEMetadata() [3/4]

LIEF::PE::CHPEMetadata::CHPEMetadata ( const CHPEMetadata & )
default

◆ CHPEMetadata() [4/4]

LIEF::PE::CHPEMetadata::CHPEMetadata ( CHPEMetadata && )
default

◆ ~CHPEMetadata()

virtual LIEF::PE::CHPEMetadata::~CHPEMetadata ( )
virtualdefault

Member Function Documentation

◆ as() [1/2]

template<class T >
T * LIEF::PE::CHPEMetadata::as ( )
inline

References LIEF::PE::T.

◆ as() [2/2]

template<class T >
const T * LIEF::PE::CHPEMetadata::as ( ) const
inline

References LIEF::PE::T.

◆ clone()

virtual std::unique_ptr< CHPEMetadata > LIEF::PE::CHPEMetadata::clone ( ) const
inlinevirtual

◆ kind()

KIND LIEF::PE::CHPEMetadata::kind ( ) const
inline

Determine the type of the concrete implementation.

Referenced by LIEF::PE::CHPEMetadataARM64::classof(), and LIEF::PE::CHPEMetadataX86::classof().

◆ operator=() [1/2]

CHPEMetadata & LIEF::PE::CHPEMetadata::operator= ( CHPEMetadata && )
default

◆ operator=() [2/2]

CHPEMetadata & LIEF::PE::CHPEMetadata::operator= ( const CHPEMetadata & )
default

◆ parse()

static std::unique_ptr< CHPEMetadata > LIEF::PE::CHPEMetadata::parse ( Parser & ctx,
BinaryStream & stream )
static

◆ to_string()

virtual std::string LIEF::PE::CHPEMetadata::to_string ( ) const
inlinevirtual

Reimplemented in LIEF::PE::CHPEMetadataARM64, and LIEF::PE::CHPEMetadataX86.

Referenced by operator<<.

◆ version()

uint32_t LIEF::PE::CHPEMetadata::version ( ) const
inline

Version of the structure.


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