ILicense
Functions
const Version & |
|
Detailed Description
-
class ILicense : public RED::IREDObject
Interface that exposes license management methods.
@related Licensing, class RED::LicenseTime
The RED::ILicense interface exposes the REDsdk licensing API. It enables customers to disarm the REDsdk license checks in order to deploy their applications to their own customers.
There are two licensing modes in REDsdk: per-seat or software vendor licensing. Each mode comes with its own API to set up a license.
Whatever the licensing mode you chose, licensing your REDsdk-based application is the very first step in running it. If you miss or fail to license correctly your application, REDsdk API calls will fail.
In both modes, the customer is provided with a customer ID uniquely identifying him in TechSoft3D’s customers list. This ID is encrypted and privately held to respect customer’s privacy. Alternatively, he may have received a generic customer ID with a temporary license key for evaluation purpose.
Software vendor mode
In this mode, a REDsdk customer must also have received a license key along with his customer ID. Both information need to be supplied to the API to remove REDsdk protection.
Code example
The CID_REDResourceManager is the only object that exposes this interface.
A customer should always have those lines of code inserted into his application after having created a RED::IResourceManager instance and before any call to the other RED::Factory methods:
// create the unique instance of the REDResourceManager: RED::Object* resmgr = RED::Factory::CreateInstance( CID_REDResourceManager ); if( resmgr == NULL ) ERROR; // get the interface to the RED resource manager RED::IResourceManager *iresmgr = _resmgr->As<RED::IResourceManager>(); // get the interface to the licensing API RED::ILicense* ilicense = _resmgr->As< RED::ILicense >(); // setup the customer licensing information (software vendor mode) ilicense->SetLicense( my_license_key );
You can then check if your application is correctly activated by calling RED::ILicense::IsProductActivated.
Upon success, those lines of code definitely disarm the REDsdk protection.
Public Functions
-
SET_CID(CID_class_REDILicense)
-
virtual RED_RC SetLicense(const RED::String &iLicenseKey) = 0
Sets a software vendor license.
This method is needed to authorize REDsdk in software vendor mode. If not called, REDsdk will fail to start. See \ref tk_setting_up_a_redsdk_software_vendor_license for details on setting up a software vendor license.
- Parameters
iLicenseKey – the license key.
iCustomerID – the customer ID.
- Returns
RED_OK on success,
RED_ALLOC_FAILURE on a memory allocation error,
RED_FAIL otherwise.
-
virtual const RED::Version &GetSDKVersion() const = 0
Gets the version of Luminate currently in use.
- Returns
A constant reference to the REDsdk version.
-
virtual RED_RC IsProductActivated(bool &oActivated, RED::PRODUCT iProduct) const = 0
Gets the activation state of the application.
A product is activated if it has at least a valid license key associated with it.
Please note that license may be time limited.
- Parameters
oActivated – Reference to the activation flag value.
iProduct – product to check for validity.
- Returns
RED_OK on succes,
RED_FAIL otherwise.
-
virtual RED_RC IsTemporaryLicense(bool &oTemporary, LicenseTime &oEndDate) const = 0
Gets the temporary state of the current license and, if meaningful, the end date of the license.
- Parameters
oTemporary – Reference to the temporary flag of the license.
oEndDate – Reference to the end date of a temporary license. Undefined if the license is not temporary.
- Returns
RED_OK on succes,
RED_FAIL otherwise.
-
SET_CID(CID_class_REDILicense)