ImagingTools Core SDK
CLicenseDefinition.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 <imtlic/ILicenseDefinition.h>
8
9
10namespace imtlic
11{
12
13
20{
21public:
22 QByteArray GetTypeId() const;
23
25
26 bool ContainsFeature(const QByteArray& featureId) const;
27 bool RemoveFeature(const QByteArray& featureId);
28 bool AddFeature(ILicenseDefinition::FeatureInfo& featureInfo);
29
30 // reimplemented (imtlic::ILicenseDefinition)
31 virtual QString GetLicenseName() const override;
32 virtual void SetLicenseName(const QString& licenseName) override;
33 virtual QByteArray GetLicenseId() const override;
34 virtual void SetLicenseId(const QByteArray& licenseId) override;
35 virtual QString GetLicenseDescription() const override;
36 virtual void SetLicenseDescription(const QString& licenseDescription) override;
37 virtual QByteArray GetProductId() const override;
38 virtual void SetProductId(const QByteArray& productId) override;
39 virtual QByteArrayList GetDependencies() const override;
40 virtual void SetDependencies(QByteArrayList dependencies) override;
41 virtual ILicenseDefinition::FeatureInfos GetFeatureInfos() const override;
42 virtual void SetFeatureInfos(const ILicenseDefinition::FeatureInfos& featureInfos) override;
43
44 // reimplemented (iser::IObject)
45 virtual QByteArray GetFactoryId() const override;
46
47 // reimplemented (iser::ISerializable)
48 virtual bool Serialize(iser::IArchive& archive) override;
49
50 // reimplemented (istd::IChangeable)
51 virtual int GetSupportedOperations() const override;
52 virtual bool CopyFrom(const IChangeable& object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
53 virtual istd::IChangeableUniquePtr CloneMe(CompatibilityMode mode = CM_WITHOUT_REFS) const override;
54 virtual bool ResetData(CompatibilityMode mode = CM_WITHOUT_REFS) override;
55
56protected:
57 QByteArray m_licenseId;
58 QByteArray m_productId;
59 QString m_licenseName;
60 QString m_description;
61 QByteArrayList m_dependencies;
62 FeatureInfos m_featureInfos;
63};
64
65
66typedef imtbase::TIdentifiableWrap<CLicenseDefinition> CIdentifiableLicenseDefinition;
67
68
69} // namespace imtlic
70
71
Interface for license definition information.
Core licensing domain model providing feature-based product licensing and instance management.