ImagingTools Core SDK
CMongoDatabaseObjectCollectionIterator.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4// mongocxx includes
5#include <bsoncxx/json.hpp>
6#include <mongocxx/cursor.hpp>
7
8// ImtCore includes
9#include <imtbase/IObjectCollectionIterator.h>
10#include <imtmongo/IMongoDatabaseObjectDelegate.h>
11
12
13namespace imtmongo
14{
15
16
22{
23 typedef imtbase::IObjectCollection::DataPtr DataPtr;
24public:
25 CMongoDatabaseObjectCollectionIterator(mongocxx::cursor& cur, IMongoDatabaseObjectDelegate* databaseDelegate);
26
27 // reimplemented (imtbase::IObjectCollectionIterator)
28 virtual bool Next() override;
29 virtual bool Previous() override;
30 virtual QByteArray GetObjectId() const override;
31 virtual bool GetObjectData(imtbase::IObjectCollection::DataPtr& dataPtr) const override;
32 virtual idoc::MetaInfoPtr GetDataMetaInfo() const override;
33 virtual QVariant GetElementInfo(QByteArray infoId) const override;
34private:
35 mongocxx::cursor m_cursor;
36 mongocxx::cursor::iterator m_iterator;
37
38 IMongoDatabaseObjectDelegate* m_databaseDelegate;
39
40};
41
42
43} // namespace imtmongo
44
45