ImagingTools Core SDK
IProductInstanceInfo.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// Qt includes
6#include <QtCore/QDateTime>
7
8// ACF includes
9#include <iser/IObject.h>
10#include <idoc/IDocumentMetaInfo.h>
11
12// ImtCore includes
13#include <imtbase/IObjectCollection.h>
14#include <imtlic/ILicenseInstanceProvider.h>
15
16
17namespace imtbase
18{
19// class IObjectCollection;
20}
21
22
23namespace imtlic
24{
25
26
27class IProductInfo;
28
29
54class IProductInstanceInfo: virtual public ILicenseInstanceProvider, virtual public iser::IObject
55{
56public:
57 enum MetaInfoTypes
58 {
59 MIT_PRODUCT_INSTANCE_ID = idoc::IDocumentMetaInfo::MIT_USER + 1000,
60 MIT_CUSTOMER_NAME,
61 MIT_PRODUCT_ID,
62 MIT_PRODUCT_CATEGORY_ID,
63 MIT_PROJECT,
64 MIT_SERIAL_NUMBER,
65 MIT_CUSTOMER_ID,
66 MIT_IN_USE,
67 MIT_PRODUCT_UUID,
68 MIT_PRODUCT_NAME,
69 MIT_LICENSE_UUID,
70 MIT_LICENSE_ID,
71 MIT_LICENSE_NAME,
72 MIT_ORDER_ID,
73 MIT_DELIVERY_ID,
74 MIT_PURCHASE_ID,
75 MIT_HARDWARE_ID,
76 MIT_HARDWARE_MAC_ADDRESS,
77 MIT_IS_PAIRED,
78 MIT_INTERNAL_USE,
79 MIT_IS_MULTI_PRODUCT,
80 MIT_PRODUCT_COUNT,
81 MIT_PARENT_INSTANCE_ID
82 };
83
90
97
106 const QByteArray& productId,
107 const QByteArray& instanceId,
108 const QByteArray& customerId) = 0;
109
117 virtual void AddLicense(const QByteArray& licenseId, const QDateTime& expirationDate = QDateTime()) = 0;
118
123 virtual void RemoveLicense(const QByteArray& licenseId) = 0;
124
128 virtual void ClearLicenses() = 0;
129
135 virtual QByteArray GetProductInstanceId() const = 0;
136
141 virtual void SetProductInstanceId(const QByteArray& instanceId) = 0;
142
149 virtual QByteArray GetProductId() const = 0;
150
157 virtual QByteArray GetCustomerId() const = 0;
158
163 virtual QByteArray GetSerialNumber() const = 0;
164
169 virtual void SetSerialNumber(const QByteArray& serialNumber) = 0;
170
175 virtual QByteArray GetProject() const = 0;
176
181 virtual void SetProject(const QByteArray& project) = 0;
182
187 virtual bool IsInUse() const = 0;
188
193 virtual void SetInUse(bool inUse) = 0;
194
200 virtual bool IsInternalUse() const = 0;
201
206 virtual void SetInternalUse(bool internalUse) = 0;
207
211 virtual bool IsMultiProduct() const = 0;
212
216 virtual void SetMultiProduct(bool isMulti) = 0;
217
222 virtual int GetProductCount() const = 0;
223
228 virtual void SetProductCount(int count) = 0;
229
236 virtual QByteArray GetParentInstanceId() const = 0;
237
243 virtual void SetParentInstanceId(const QByteArray& parentInstanceId) = 0;
244};
245
246
247} // namespace imtlic
virtual const imtbase::IObjectCollection * GetCustomerDatabase() const =0
virtual void AddLicense(const QByteArray &licenseId, const QDateTime &expirationDate=QDateTime())=0
virtual QByteArray GetSerialNumber() const =0
virtual void RemoveLicense(const QByteArray &licenseId)=0
virtual bool IsInternalUse() const =0
virtual void SetupProductInstance(const QByteArray &productId, const QByteArray &instanceId, const QByteArray &customerId)=0
virtual QByteArray GetProject() const =0
virtual bool IsMultiProduct() const =0
virtual void SetInternalUse(bool internalUse)=0
virtual int GetProductCount() const =0
virtual QByteArray GetProductId() const =0
virtual void SetInUse(bool inUse)=0
virtual void SetProductCount(int count)=0
virtual QByteArray GetParentInstanceId() const =0
virtual void SetProject(const QByteArray &project)=0
virtual void ClearLicenses()=0
virtual const imtbase::IObjectCollection * GetProductDatabase() const =0
virtual void SetMultiProduct(bool isMulti)=0
virtual void SetSerialNumber(const QByteArray &serialNumber)=0
virtual QByteArray GetProductInstanceId() const =0
virtual void SetProductInstanceId(const QByteArray &instanceId)=0
virtual bool IsInUse() const =0
virtual void SetParentInstanceId(const QByteArray &parentInstanceId)=0
virtual QByteArray GetCustomerId() const =0
Core licensing domain model providing feature-based product licensing and instance management.