ImagingTools Core SDK
CGqlRepresentationDataControllerComp.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// ImtCore includes
6#include <imtserverapp/IRepresentationController.h>
7#include <imtgql/IGqlRepresentationController.h>
8#include <imtservergql/CGqlRequestHandlerCompBase.h>
9#include <imtservergql/CPermissibleGqlRequestHandlerComp.h>
10
11
12namespace imtservergql
13{
14
15
16class CGqlRepresentationDataControllerComp:
17 virtual public imtgql::IGqlRepresentationController,
18 public imtservergql::CPermissibleGqlRequestHandlerComp
19{
20public:
21 typedef imtservergql::CPermissibleGqlRequestHandlerComp BaseClass;
22
23 I_BEGIN_COMPONENT(CGqlRepresentationDataControllerComp);
24 I_REGISTER_INTERFACE(imtgql::IGqlRepresentationController);
25 I_ASSIGN(m_dataModelCompPtr, "DataModel", "Data model used for representation", true, "DataModel");
26 I_ASSIGN(m_representationControllerCompPtr, "RepresentationController", "Controller for data model representation", true, "RepresentationController");
27 I_END_COMPONENT;
28
29protected:
30 // reimplemented (imtgql::IGqlRepresentationController)
31 virtual QJsonObject CreateRepresentationFromRequest(const imtgql::CGqlRequest& gqlRequest, QString& errorMessage) const override;
32 virtual bool UpdateModelFromRepresentation(const imtgql::CGqlRequest& request, const QJsonObject& representation) const override;
33
34 // reimplemented (imtservergql::CGqlRequestHandlerCompBase)
35 virtual QJsonObject CreateInternalResponse(const imtgql::CGqlRequest& gqlRequest, QString& errorMessage) const override;
36 virtual iprm::IParamsSetUniquePtr CreateContextParams(const imtgql::CGqlRequest& gqlRequest) const override;
37
38protected:
39 I_REF(istd::IChangeable, m_dataModelCompPtr);
40 I_REF(imtserverapp::IRepresentationController, m_representationControllerCompPtr);
41};
42
43
44} // namespace imtservergql
45
46