29#include <unordered_map>
30#include <unordered_set>
69 void InsertBlock( std::unique_ptr<BLOCK_BASE> aBlock );
96 static const wxString
empty;
The base class for all blocks in the main body of an Allegro file.
std::unordered_map< uint32_t, wxString > m_StringTable
std::unordered_map< uint32_t, BLOCK_BASE * > m_ObjectKeyMap
std::unique_ptr< FILE_HEADER > m_Header
std::vector< std::unique_ptr< BLOCK_BASE > > m_Blocks
size_t GetObjectCount() const
const wxString & GetString(uint32_t aKey) const
Get a string from the string table by key.
void ReserveCapacity(size_t aObjectCount, size_t aStringCount)
Pre-allocate storage for the expected number of objects and strings.
bool ResolveAndValidate()
Populate sentinel keys from the file header linked lists.
bool IsSentinel(uint32_t aKey) const
void InsertBlock(std::unique_ptr< BLOCK_BASE > aBlock)
void AddString(uint32_t aKey, wxString &&aStr)
const BLOCK_BASE * GetObjectByKey(uint32_t aKey) const
Get a block by its key.
void AddSentinelKey(uint32_t aKey)
std::unordered_set< uint32_t > m_SentinelKeys
static bool empty(const wxTextEntryBase *aCtrl)
FMT_VER
The format of an Allegro file.