Abstract class for loading information about file.
This class enable iterative queries to a set of items (e.g. queries to symbols from symbol tables).
retdec::fileinfo::IterativeGetter::IterativeGetter |
( |
FileInformation & |
fileInfo | ) |
|
Constructor
- Parameters
-
fileInfo | Information about file |
Constructor in subclass must initialize commonHeaderElements, title, numberOfStructures, numberOfStoredRecords, extraHeaderElements and numberOfExtraElements.
Constructor in subclass must ensure that numberOfStoredRecords and numberOfExtraElements contains exactly numberOfStructures elements.
Constructor in subclass must ensure that each element in extraHeaderElements contains exactly as many elements as numberOfExtraElements[i], where i is index of extraHeaderElements and numberOfExtraElements.
std::size_t retdec::fileinfo::IterativeGetter::getBasicInfo |
( |
std::size_t |
structIndex, |
|
|
std::vector< std::string > & |
desc, |
|
|
std::vector< std::string > & |
info |
|
) |
| const |
|
pure virtual |
Get basic information about presented structure
- Parameters
-
structIndex | Index of selected structure (indexed from 0) |
desc | Vector for save descriptions of information |
info | Vector for save information about file |
- Returns
- Number of loaded information (this is equal to number of elements in desc and in info)
Before loading information, everything from vectors desc and info is deleted. If structure does not support this feature or structIndex is out of range, method returns 0 and vectors are left unchanged.
Implemented in retdec::fileinfo::TypeRefTableJsonGetter, retdec::fileinfo::SymbolTablesJsonGetter, retdec::fileinfo::StringsJsonGetter, retdec::fileinfo::SegmentJsonGetter, retdec::fileinfo::SectionJsonGetter, retdec::fileinfo::RichHeaderJsonGetter, retdec::fileinfo::ResourceJsonGetter, retdec::fileinfo::RelocationTablesJsonGetter, retdec::fileinfo::MissingDepsJsonGetter, retdec::fileinfo::LoaderInfoJsonGetter, retdec::fileinfo::ImportTableJsonGetter, retdec::fileinfo::ExportTableJsonGetter, retdec::fileinfo::DynamicSectionsJsonGetter, retdec::fileinfo::DataDirectoryJsonGetter, retdec::fileinfo::AnomaliesJsonGetter, retdec::fileinfo::CertificateTablePlainGetter, retdec::fileinfo::VisualBasicExternTablePlainGetter, retdec::fileinfo::VersionInfoStringTablePlainGetter, retdec::fileinfo::VersionInfoLanguageTablePlainGetter, retdec::fileinfo::TypeRefTablePlainGetter, retdec::fileinfo::TlsInfoPlainGetter, retdec::fileinfo::SymbolTablesPlainGetter, retdec::fileinfo::StringsPlainGetter, retdec::fileinfo::SegmentPlainGetter, retdec::fileinfo::SectionPlainGetter, retdec::fileinfo::RichHeaderPlainGetter, retdec::fileinfo::ResourcePlainGetter, retdec::fileinfo::RelocationTablesPlainGetter, retdec::fileinfo::PatternMatchesPlainGetter, retdec::fileinfo::MissingDepsPlainGetter, retdec::fileinfo::LoaderInfoPlainGetter, retdec::fileinfo::ImportTablePlainGetter, retdec::fileinfo::ExportTablePlainGetter, retdec::fileinfo::ElfNotesPlainGetter, retdec::fileinfo::ElfCoreMapPlainGetter, retdec::fileinfo::ElfAuxVPlainGetter, retdec::fileinfo::DynamicSectionsPlainGetter, retdec::fileinfo::DataDirectoryPlainGetter, and retdec::fileinfo::AnomaliesPlainGetter.
bool retdec::fileinfo::IterativeGetter::getRecord |
( |
std::size_t |
structIndex, |
|
|
std::size_t |
recIndex, |
|
|
std::vector< std::string > & |
record |
|
) |
| const |
|
pure virtual |
Get one record from structure
- Parameters
-
structIndex | Index of selected structure (indexed from 0) |
recIndex | Index of record in selected structure (indexed from 0) |
record | Vector for save record. At end of vector are stored special additional information, if these information are present. Number and semantics of additional information may be different for every separate structure. |
- Returns
true
if record was successfully saved, false
otherwise
Before loading record, everything from vector record is deleted.
If method returns true
, record contains as many elements as vector returned by the method getHeaderElements(structIndex).
If structIndex or recIndex is out of range, method returns false
.
Implemented in retdec::fileinfo::TypeRefTableJsonGetter, retdec::fileinfo::SymbolTablesJsonGetter, retdec::fileinfo::StringsJsonGetter, retdec::fileinfo::SegmentJsonGetter, retdec::fileinfo::SectionJsonGetter, retdec::fileinfo::RichHeaderJsonGetter, retdec::fileinfo::ResourceJsonGetter, retdec::fileinfo::RelocationTablesJsonGetter, retdec::fileinfo::MissingDepsJsonGetter, retdec::fileinfo::LoaderInfoJsonGetter, retdec::fileinfo::ImportTableJsonGetter, retdec::fileinfo::ExportTableJsonGetter, retdec::fileinfo::DynamicSectionsJsonGetter, retdec::fileinfo::DataDirectoryJsonGetter, retdec::fileinfo::AnomaliesJsonGetter, retdec::fileinfo::CertificateTablePlainGetter, and retdec::fileinfo::IterativeDistributionGetter.