ImagingTools Core SDK
CJsonBasedMetaInfoDelegateComp.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 <ilog/TLoggerCompWrap.h>
7
8// ImtCore includes
9#include <imtdb/IJsonBasedMetaInfoDelegate.h>
10
11
12namespace imtdb
13{
14
15
16class CJsonBasedMetaInfoDelegateComp:
17 public ilog::CLoggerComponentBase,
19{
20public:
21 typedef ilog::CLoggerComponentBase BaseClass;
22
23 I_BEGIN_BASE_COMPONENT(CJsonBasedMetaInfoDelegateComp);
24 I_REGISTER_INTERFACE(imtdb::IJsonBasedMetaInfoDelegate);
25 I_END_COMPONENT;
26
27 // reimplemented (imtdb::IJsonBasedMetaInfoDelegate)
28 virtual bool ToJsonRepresentation(const idoc::IDocumentMetaInfo& metaInfo, QByteArray& json, const QByteArray& typeId) const override;
29 virtual bool FromJsonRepresentation(const QByteArray& json, idoc::IDocumentMetaInfo& metaInfo, const QByteArray& typeId) const override;
30
31protected:
32 virtual bool FillRepresentation(QJsonObject& representation, const idoc::IDocumentMetaInfo& metaInfo, const QByteArray& typeId) const = 0;
33 virtual bool FillMetaInfo(idoc::IDocumentMetaInfo& metaInfo, const QJsonObject& representation, const QByteArray& typeId) const = 0;
34};
35
36
37} // namespace imtdb
38
39
Converts document metadata to/from JSON representation.
Database Abstraction Layer (ORM Framework) for ImtCore applications.