retdec
Public Member Functions | Private Types | Private Attributes | List of all members
retdec::fileformat::MetadataStream Class Reference

#include <metadata_stream.h>

Inheritance diagram for retdec::fileformat::MetadataStream:
Inheritance graph
[legend]
Collaboration diagram for retdec::fileformat::MetadataStream:
Collaboration graph
[legend]

Public Member Functions

 MetadataStream (std::uint64_t streamOffset, std::uint64_t streamSize)
 
Getters
std::uint32_t getMajorVersion () const
 
std::uint32_t getMinorVersion () const
 
std::uint32_t getStringStreamIndexSize () const
 
std::uint32_t getGuidStreamIndexSize () const
 
std::uint32_t getBlobStreamIndexSize () const
 
BaseMetadataTablegetMetadataTable (MetadataTableType tableType)
 
const BaseMetadataTablegetMetadataTable (MetadataTableType tableType) const
 
Setters
void setMajorVersion (std::uint32_t streamMajorVersion)
 
void setMinorVersion (std::uint32_t streamMinorVersion)
 
void setStringStreamIndexSize (std::uint32_t indexSize)
 
void setGuidStreamIndexSize (std::uint32_t indexSize)
 
void setBlobStreamIndexSize (std::uint32_t indexSize)
 
Metadata tables methods
BaseMetadataTableaddMetadataTable (MetadataTableType tableType, std::uint32_t tableSize)
 
Detection
bool hasTable (MetadataTableType metadataTableType) const
 
- Public Member Functions inherited from retdec::fileformat::Stream
virtual ~Stream ()=default
 
StreamType getType () const
 
std::uint64_t getOffset () const
 
std::uint64_t getSize () const
 
const std::string & getName () const
 

Private Types

using TypeToTableMap = std::map< MetadataTableType, std::unique_ptr< BaseMetadataTable > >
 

Private Attributes

std::uint32_t majorVersion
 
std::uint32_t minorVersion
 
std::uint32_t stringStreamIndexSize
 
std::uint32_t guidStreamIndexSize
 
std::uint32_t blobStreamIndexSize
 
TypeToTableMap metadataTables
 

Additional Inherited Members

- Protected Member Functions inherited from retdec::fileformat::Stream
 Stream (StreamType streamType, std::uint64_t streamOffset, std::uint64_t streamSize)
 

Member Typedef Documentation

◆ TypeToTableMap

Constructor & Destructor Documentation

◆ MetadataStream()

retdec::fileformat::MetadataStream::MetadataStream ( std::uint64_t  streamOffset,
std::uint64_t  streamSize 
)

Constructor.

Parameters
streamOffsetStream offset.
streamSizeStream size.

Member Function Documentation

◆ addMetadataTable()

BaseMetadataTable * retdec::fileformat::MetadataStream::addMetadataTable ( MetadataTableType  tableType,
std::uint32_t  tableSize 
)

Adds new metadata table with the specified type and returns it. Each table can only be present once in the stream. Every subsequent try to insert the table with type that already exists ends with failure and pointer to the original table is returned instead.

Parameters
tableTypeType of the metadata table.
tableSizeSize of the metadata table.
Returns
Inserted table.

◆ getBlobStreamIndexSize()

std::uint32_t retdec::fileformat::MetadataStream::getBlobStreamIndexSize ( ) const

Returns the size (in bytes) of index into blob stream. Can be only 2 or 4.

Returns
Blob stream index size.

◆ getGuidStreamIndexSize()

std::uint32_t retdec::fileformat::MetadataStream::getGuidStreamIndexSize ( ) const

Returns the size (in bytes) of index into guid stream. Can be only 2 or 4.

Returns
Guid stream index size.

◆ getMajorVersion()

std::uint32_t retdec::fileformat::MetadataStream::getMajorVersion ( ) const

Returns the major version.

Returns
Major version.

◆ getMetadataTable() [1/2]

BaseMetadataTable * retdec::fileformat::MetadataStream::getMetadataTable ( MetadataTableType  tableType)

Returns the metadata table for the specified type if it exists.

Parameters
tableTypeType of the metadata table.
Returns
Metadata table if exists, otherwise nullptr.

◆ getMetadataTable() [2/2]

const BaseMetadataTable * retdec::fileformat::MetadataStream::getMetadataTable ( MetadataTableType  tableType) const

Returns the metadata table for the specified type if it exists.

Parameters
tableTypeType of the metadata table.
Returns
Metadata table if exists, otherwise nullptr.

◆ getMinorVersion()

std::uint32_t retdec::fileformat::MetadataStream::getMinorVersion ( ) const

Returns the minor version.

Returns
Minor version.

◆ getStringStreamIndexSize()

std::uint32_t retdec::fileformat::MetadataStream::getStringStreamIndexSize ( ) const

Returns the size (in bytes) of index into string stream. Can be only 2 or 4.

Returns
String stream index size.

◆ hasTable()

bool retdec::fileformat::MetadataStream::hasTable ( MetadataTableType  tableType) const

Checks whether the stream contains table of a given type.

Parameters
tableTypeType of the metadata table.
Returns
true if present, otherwise false.

◆ setBlobStreamIndexSize()

void retdec::fileformat::MetadataStream::setBlobStreamIndexSize ( std::uint32_t  indexSize)

Sets the size (in bytes) of index into blob stream. Size is set to 4 if number greater than 2 is provided. Otherwise, it is set to 2.

Parameters
indexSizeSize of the index.

◆ setGuidStreamIndexSize()

void retdec::fileformat::MetadataStream::setGuidStreamIndexSize ( std::uint32_t  indexSize)

Sets the size (in bytes) of index into guid stream. Size is set to 4 if number greater than 2 is provided. Otherwise, it is set to 2.

Parameters
indexSizeSize of the index.

◆ setMajorVersion()

void retdec::fileformat::MetadataStream::setMajorVersion ( std::uint32_t  streamMajorVersion)

Sets the major version.

Parameters
streamMajorVersionMajor version.

◆ setMinorVersion()

void retdec::fileformat::MetadataStream::setMinorVersion ( std::uint32_t  streamMinorVersion)

Sets the minor version.

Parameters
streamMinorVersionMinor version.

◆ setStringStreamIndexSize()

void retdec::fileformat::MetadataStream::setStringStreamIndexSize ( std::uint32_t  indexSize)

Sets the size (in bytes) of index into string stream. Size is set to 4 if number greater than 2 is provided. Otherwise, it is set to 2.

Parameters
indexSizeSize of the index.

Member Data Documentation

◆ blobStreamIndexSize

std::uint32_t retdec::fileformat::MetadataStream::blobStreamIndexSize
private

◆ guidStreamIndexSize

std::uint32_t retdec::fileformat::MetadataStream::guidStreamIndexSize
private

◆ majorVersion

std::uint32_t retdec::fileformat::MetadataStream::majorVersion
private

◆ metadataTables

TypeToTableMap retdec::fileformat::MetadataStream::metadataTables
private

◆ minorVersion

std::uint32_t retdec::fileformat::MetadataStream::minorVersion
private

◆ stringStreamIndexSize

std::uint32_t retdec::fileformat::MetadataStream::stringStreamIndexSize
private

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