9#include <imtbase/IObjectCollectionIterator.h>
10#include <imtdb/ISqlDatabaseObjectDelegate.h>
23 typedef imtbase::IObjectCollection::DataPtr DataPtr;
27 QSqlRecord GetRecord();
28 void SetElementsCount(
int elementsCount);
31 virtual bool Next()
const override;
32 virtual bool Previous()
const override;
33 virtual QByteArray GetObjectId()
const override;
34 virtual QByteArray GetObjectTypeId()
const override;
35 virtual bool GetObjectData(imtbase::IObjectCollection::DataPtr& dataPtr)
const override;
36 virtual idoc::MetaInfoPtr GetDataMetaInfo()
const override;
37 virtual int GetElementsCount()
const override;
38 virtual idoc::MetaInfoPtr GetCollectionMetaInfo()
const override;
39 virtual QVariant GetElementInfo(
int infoType)
const override;
40 virtual QVariant GetElementInfo(QByteArray infoId)
const override;
46 struct CachedRecordData
49 QByteArray objectTypeId;
50 idoc::MetaInfoPtr objectMetaInfo;
51 idoc::MetaInfoPtr collectionMetaInfo;
52 bool metaInfoResolved =
false;
55 void ResolveCurrentCache()
const;
56 void ResolveMetaInfoCache()
const;
58 QVector<QSqlRecord> m_records;
62 mutable int m_currentIndex;
63 mutable CachedRecordData m_cache;
Database Abstraction Layer (ORM Framework) for ImtCore applications.