ImagingTools Core SDK
IJsonRepresentationController.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// ACF includes
6#include <istd/IChangeable.h>
7#include <iprm/IParamsSet.h>
8
9
10namespace imtserverapp
11{
12
13
14class IJsonRepresentationController: virtual public istd::IPolymorphic
15{
16public:
17 struct RepresentationInfo
18 {
19 QByteArray modelId;
20 QString name;
21 QString description;
22 };
23
24 virtual RepresentationInfo GetRepresentationInfo() const = 0;
25 virtual QByteArray GetTypeId() const = 0;
26 virtual bool IsModelSupported(const istd::IChangeable& dataModel) const = 0;
27 virtual bool GetRepresentationFromDataModel(
28 const istd::IChangeable& dataModel,
29 QJsonObject& representation,
30 const iprm::IParamsSet* paramsPtr = nullptr) const = 0;
31 virtual bool GetDataModelFromRepresentation(
32 const QJsonObject& representation,
33 istd::IChangeable& dataModel) const = 0;
34};
35
36
37} // namespace imtserverapp
38
39