ImagingTools Core SDK
CSdlCollectionControllerCompBase.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
5// Qt includes
6#include <QtCore/QJsonObject>
7
8// ImtCore includes
9#include <imtservergql/CObjectCollectionControllerCompBase.h>
10#include <imtbase/ITreeModelWrittable.h>
11
12
13namespace imtservergql
14{
15
16
17class CSdlCollectionControllerCompBase : public CObjectCollectionControllerCompBase
18{
19public:
20 typedef CObjectCollectionControllerCompBase BaseClass;
21 I_BEGIN_BASE_COMPONENT(CSdlCollectionControllerCompBase)
22 I_END_COMPONENT
23
24protected:
25 virtual QJsonObject ListObjects(
26 const imtgql::CGqlRequest& gqlRequest,
27 QString& errorMessage) const override;
28 virtual QJsonObject GetObject(
29 const imtgql::CGqlRequest& gqlRequest,
30 QString& errorMessage) const override;
31
32protected:
33 virtual imtbase::ITreeModelWrittable* CreateSdlItem(
34 const imtgql::CGqlRequest& gqlRequest,
35 const QByteArray& objectId,
36 const imtbase::IObjectCollection::DataPtr& dataPtr,
37 QString& errorMessage) const = 0;
38
39 virtual imtbase::ITreeModelWrittable* CreateSdlItemList(
40 const imtgql::CGqlRequest& gqlRequest,
41 int pagesCount,
42 int elementsCount,
43 const imtbase::IObjectCollectionIterator* objectCollectionIteratorPtr,
44 QString& errorMessage) const = 0;
45
46};
47
48
49} // namespace imtservergql
50
51