class CIdUnroller { public: CIdUnroller() { } void setDatabase(IDatabasePtr database) {...} QBReception::IFieldsPtr GetFields(QBReception::ITypePtr type) {...} QBReception::IDimensionsPtr GetDimensions(QBReception::ITypePtr type) {...} QBReception::IGlobalVariablePtr GetBaseVar(_bstr_t Identifier) {...} void AddToRecords(_bstr_t identifier, double address, long bitOffset, QBReception::ITypePtr type) {...} void AddToAllRecords(_bstr_t identifier, double address, long bitOffset, QBReception::ITypePtr type) {...} void processStruct(_bstr_t parentName, double address, QBReception::ITypePtr type) {...} void processArray(_bstr_t parentName, double address, QBReception::ITypePtr type, unsigned int count=0) {...} void Unroll(_bstr_t parentName, double address, QBReception::ITypePtr type) {...} CMyRecords GetRecords(_bstr_t SeatingId, long NumberOfBits, bool OnlyTerminalNodes ) {...} private: IDatabasePtr _database; CMyRecords _records; std::vector _allRecords; };