|
ImagingTools Core SDK
|
#include <IProductInstanceInfo.h>
Public Member Functions | |
| virtual const imtbase::IObjectCollection * | GetProductDatabase () const =0 |
| virtual const imtbase::IObjectCollection * | GetCustomerDatabase () const =0 |
| virtual void | SetupProductInstance (const QByteArray &productId, const QByteArray &instanceId, const QByteArray &customerId)=0 |
| virtual void | AddLicense (const QByteArray &licenseId, const QDateTime &expirationDate=QDateTime())=0 |
| virtual void | RemoveLicense (const QByteArray &licenseId)=0 |
| virtual void | ClearLicenses ()=0 |
| virtual QByteArray | GetProductInstanceId () const =0 |
| virtual void | SetProductInstanceId (const QByteArray &instanceId)=0 |
| virtual QByteArray | GetProductId () const =0 |
| virtual QByteArray | GetCustomerId () const =0 |
| virtual QByteArray | GetSerialNumber () const =0 |
| virtual void | SetSerialNumber (const QByteArray &serialNumber)=0 |
| virtual QByteArray | GetProject () const =0 |
| virtual void | SetProject (const QByteArray &project)=0 |
| virtual bool | IsInUse () const =0 |
| virtual void | SetInUse (bool inUse)=0 |
| virtual bool | IsInternalUse () const =0 |
| virtual void | SetInternalUse (bool internalUse)=0 |
| virtual bool | IsMultiProduct () const =0 |
| virtual void | SetMultiProduct (bool isMulti)=0 |
| virtual int | GetProductCount () const =0 |
| virtual void | SetProductCount (int count)=0 |
| virtual QByteArray | GetParentInstanceId () const =0 |
| virtual void | SetParentInstanceId (const QByteArray &parentInstanceId)=0 |
Public Member Functions inherited from imtlic::ILicenseInstanceProvider | |
| virtual const imtbase::ICollectionInfo & | GetLicenseInstances () const =0 |
| virtual const ILicenseInstance * | GetLicenseInstance (const QByteArray &licenseId) const =0 |
Interface for a product instance.
A Product Instance is created when a product is sold, installed, or deployed to a customer. It represents a specific installation of a product and contains:
The Product Instance acts as a provider of actually available licenses for this specific installation. It maintains which licenses have been purchased and activated, but does not perform license validation logic at this level - it provides an overview of registered licenses in the product installation.
Key responsibilities:
Definition at line 54 of file IProductInstanceInfo.h.
|
pure virtual |
Add an activated license to this product instance.
| licenseId | ID of the license to activate (must exist in the product's license definitions) |
| expirationDate | Optional expiration date for the license (invalid QDateTime means no expiration) |
|
pure virtual |
Remove all activated licenses from this product instance.
|
pure virtual |
Get access to the customer database. The customer database contains information about all customers.
|
pure virtual |
Get the ID of the customer who owns this product instance. Use this ID to look up additional customer information in the customer database.
|
pure virtual |
Get the ID of the parent product instance. For multi-product instances that distribute licenses to other accounts, this references the parent instance that owns the original licenses.
|
pure virtual |
Get the count of items in this product instance. Valid only if IsMultiProduct() returns true.
|
pure virtual |
Get access to the product database. The product database contains definitions of all available products.
|
pure virtual |
Get the ID of the product that this is an instance of. Use this ID to look up additional product information in the product database.
|
pure virtual |
Get the unique ID of this product instance. This ID uniquely identifies this specific installation (e.g., MAC address, hardware ID).
|
pure virtual |
Get the project this product instance is assigned to.
|
pure virtual |
Get the serial number of this product instance.
|
pure virtual |
Check if this product instance is marked for internal use only. Internal-use instances are typically for testing or company-internal purposes.
|
pure virtual |
Check if this product instance is currently in use.
|
pure virtual |
Checks whether this product instance represents multiple items (multi-product).
|
pure virtual |
Remove an activated license from this product instance.
| licenseId | ID of the license to deactivate |
|
pure virtual |
Set whether this product instance is for internal use only.
| internalUse | true to mark for internal use only |
|
pure virtual |
Set the usage status for this product instance.
| inUse | true to mark as in-use, false otherwise |
|
pure virtual |
Sets whether this product instance represents multiple items.
|
pure virtual |
Set the ID of the parent product instance. This establishes a parent-child relationship for license distribution.
| parentInstanceId | ID of the parent instance, or empty to mark as root instance |
|
pure virtual |
Set the count of items in this product instance. This usually makes sense only if the product is marked as multi-product.
|
pure virtual |
Set the unique ID of this product instance.
| instanceId | Unique identifier for this installation |
|
pure virtual |
Set the project assignment for this product instance.
| project | Project identifier |
|
pure virtual |
Set the serial number of this product instance.
| serialNumber | Serial number to assign |
|
pure virtual |
Set up this instance for a given product. This establishes the relationship between the instance and its product/customer.
| productId | Logical ID of the product (not a repository/database ID) |
| instanceId | Unique identifier for this product instance (e.g., MAC address, hardware ID) |
| customerId | Logical ID of the customer (not a repository/database ID) |