ImagingTools Core SDK
CProductControllerComp.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 <imtbase/IObjectCollection.h>
10#include <imtrest/IBinaryDataProvider.h>
11#include <imtrest/IBinaryDataController.h>
12
13
14namespace imtlic
15{
16
17
18class CProductControllerComp:
19 public ilog::CLoggerComponentBase,
20 virtual public imtrest::IBinaryDataProvider,
22{
23public:
24 typedef ilog::CLoggerComponentBase BaseClass;
25
26 I_BEGIN_COMPONENT(CProductControllerComp);
27 I_REGISTER_INTERFACE(imtrest::IBinaryDataProvider);
28 I_REGISTER_INTERFACE(imtrest::IBinaryDataController);
29 I_ASSIGN(m_productCollectionCompPtr, "ProductCollection", "Product collection", true, "ProductCollection");
30 I_ASSIGN(m_featureCollectionCompPtr, "FeatureCollection", "Feature collection", true, "FeatureCollection");
31 I_ASSIGN(m_versionInfoCompPtr, "VersionInfo", "Version info", true, "VersionInfo");
32 I_END_COMPONENT;
33
34 // reimplemented (imtrest::IBinaryDataProvider)
35 virtual bool GetData(
36 QByteArray& data,
37 const QByteArray& dataId,
38 qint64 readFromPosition = 0,
39 qint64 readMaxLength = -1) const override;
40
41 // reimplemented (imtrest::IBinaryDataController)
42 virtual bool SetData(const QByteArray& data, QByteArray& dataId) const override;
43 virtual bool RemoveData(const QByteArray& dataId) const override;
44 virtual bool EnsureDataExists(const QByteArray& dataId) const override;
45
46private:
47 I_REF(imtbase::IObjectCollection, m_productCollectionCompPtr);
48 I_REF(imtbase::IObjectCollection, m_featureCollectionCompPtr);
49 I_REF(iser::IVersionInfo, m_versionInfoCompPtr);
50};
51
52
53} // namespace imtlic
54
55
The IBinaryDataController provides managment of the file from disc, resources or memory.
The IBinaryDataProvider class provides file from disc, resources or memory.
Core licensing domain model providing feature-based product licensing and instance management.