This section explains ODA Software activation, the activation procedure, and how to maintain custom applications that use activated ODA products.
ODA software activation is a mechanism for checking whether a licensed member uses ODA products.
With an ODA subscription, you get unique member activation information. All ODA products require unique member activation information for proper initialization and to provide supported functionality for creating custom applications.
ODA activation information includes:
Note: ODA activation data is renewed when a new ODA platform version is released, therefore activation information must be updated during each version upgrade. Otherwise ODA initialization will fail with an exception.
To obtain activation information:
Follow the activation link https://opendesign.com/members/activation at the ODA official website and log in if required:
|
After login, check your activation name, and if it is correct, choose a version of the ODA platform you use and click the Generate for C++ button.
|
Your browser will prompt you to download the OdActivationInfo
file that
contains the activation information.
Save this file in a directory that is available via the INCLUDE_PATH
variable
of your custom application project, for example, the ThirdParty/activation
subfolder of the ODA platform installation directory.
C++ custom applications need to call the odInitialize()
function to get access
to ODA API functionality. While running the odInitialize()
function, the activation
name and signature from the activation information file are validated. ODA API
throws the OdError "Not activated!" exception if validation fails.
If a system services object that you pass to the odInitialize()
function is
inherited from the ExSystemServices class, place the OdActivationInfo
file in a directory that has been added to the INCLUDE_PATH
variable. In this
case your compiler will be able to access the OdActivationInfo file during the
build process. For example, you can place your OdActivationInfo file in the
ThirdParty/activation
directory of the ODA platform folder and add this path to your
project's INCLUDE_PATH
values.
If you haven't had the ODA activation file, see the How to Get ODA Activation Information section in this document for detailed information about getting the activation file.
If the activation file is placed in a location that your compiler cannot access, you will get a compiler error such as "Kernel/Extensions/ExServices/ExSystemServices.h:43:10: fatal error: 'OdActivationInfo' file not found".
If a system services object that you pass to the odInitialize()
function is
NOT inherited from the ExSystemServices
class, call the odActivate()
function explicitly and pass to it the MemberID and digital signature from your
OdActivationInfo
file. The odActivate()
function should be called before calling
the odInitialize()
function. Please see the code fragment below that illustrates
this approach.
class MyServices : public ExHostAppServices, RxSystemServicesImpl //class MyServices is NOT inherited from ExSystemServices class.
{
...
};
...
//Create an instance of MyServices
OdStaticRxObject<MyServices> svcs;
//Call odActivate
// odActivate("First string from your OdActivationInfo file", "Second string from your OdActivationInfo file");
//Or better like below. Upgrading to new version requires new OdActivationInfo file. No code editing will be required.
odActivate(
#include "OdActivationInfo"
);
...
//Only after calling odActivate call OdInitialize
odInitialize(&svcs);
...
Copyright © 2002 – 2020. Open Design Alliance. All rights reserved.
|