ImagingTools Core SDK
CProductInfo.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 <imtbase/TIdentifiableWrap.h>
7#include <imtbase/CObjectCollection.h>
8#include <imtlic/IProductInfo.h>
9
10
11namespace imtlic
12{
13
14
15class CProductInfo: virtual public IProductInfo
16{
17public:
18 CProductInfo();
19
20 // reimplemented (IProductInfo)
21 virtual const IProductInfo* GetProductFamilyInfo() const override;
22 virtual QByteArray GetProductId() const override;
23 virtual void SetProductId(const QByteArray& productId) override;
24 virtual QString GetProductDescription() const override;
25 virtual void SetProductDescription(const QString& description) override;
26 virtual QByteArray GetCategoryId() const override;
27 virtual void SetCategoryId(const QByteArray& categoryId) override;
28 virtual imtbase::IObjectCollection* GetFeatures() override;
29 virtual bool AddFeature(const QByteArray& featureId, const IFeatureInfo& featureInfo) override;
30 virtual bool RemoveFeature(const QByteArray& featureId) override;
31
32 // reimplemented (iprm::INameParam)
33 virtual const QString& GetName() const override;
34 virtual void SetName(const QString& name) override;
35 virtual bool IsNameFixed() const override;
36
37 // reimplemented (iser::ISerializable)
38 virtual bool Serialize(iser::IArchive& archive) override;
39
40 // reimplemented (istd::IChangeable)
41 virtual bool CopyFrom(const IChangeable& object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
42 virtual bool IsEqual(const IChangeable& object) const override;
43 virtual bool ResetData(CompatibilityMode mode = CM_WITHOUT_REFS) override;
44
45protected:
46 QByteArray m_productId;
47 QString m_productName;
48 QString m_productDescription;
49 QByteArray m_categoryId;
50
51 imtbase::CObjectCollection m_featureCollection;
52 const imtlic::IFeatureInfoProvider* m_featureInfoProviderPtr;
53};
54
55
56typedef imtbase::TIdentifiableWrap<CProductInfo> CIdentifiableProductInfo;
57
58
59} // namespace imtlic
60
61
Core licensing domain model providing feature-based product licensing and instance management.