LicenseSpring C++ SDK
Easily add Software Licensing to your application
LicenseManager.h
Go to the documentation of this file.
1#ifndef LS_LICENSE_MANAGER_H
2#define LS_LICENSE_MANAGER_H
3
4#ifdef _MSC_VER
5#pragma once
6#pragma warning(push)
7#pragma warning(disable : 4251)
8#endif
9
10#include "BaseManager.h"
11
12namespace LicenseSpring
13{
19{
20public:
21 using ptr_t = std::shared_ptr<LicenseManager>;
22
30 Configuration::ptr_t config, LicenseStorage::ptr_t storage = nullptr);
31
35
38 ~LicenseManager() override;
39
65 Customer::ptr_t user = nullptr, const std::string &licensePolicy = std::string());
66
83 LicenseID getTrialLicense(const std::string &userEmail);
84
100 std::string getSSOUrl(const std::string &accountCode = std::string(), bool useAuthCode = true);
101
107 const std::string &initializationCode, const std::string &licenseKey);
108
120 const License::ptr_t activateAirGapLicense(const std::string &confirmationCode,
121 const std::wstring &policyPath, const std::string &licenseKey, uint32_t policyId);
122
146 const License::ptr_t activateLicense(const LicenseID &licenseID);
147
172 const LicenseID &licenseID, const std::vector<DeviceVariable> &deviceVariables);
173
200 const License::ptr_t activateLicense(const std::string &authData,
201 const std::string &accountCode = std::string(), bool useAuthCode = true);
202
216 const std::wstring &activationResponseFile = std::wstring());
217
232 DeviceIDAlgorithm deviceIdAlgorithm, const std::string &userPassword = "");
233
248 const std::string &user, const std::string &password, const std::string &newPassword);
249
263 std::vector<std::string> getVersionList(
264 const LicenseID &licenseID, const InstallFileFilter &filter = InstallFileFilter());
265
283 const std::string &version = std::string(),
284 const InstallFileFilter &filter = InstallFileFilter());
285
293 const LicenseID &licenseID, const std::wstring &activationRequestFile = std::wstring());
294
303 std::wstring createOfflineActivationFile(const LicenseID &licenseID,
304 const std::vector<DeviceVariable> &deviceVariables,
305 const std::wstring &activationRequestFile = std::wstring());
306
315 bool isOnline(bool throwExceptions = false) const;
316
329 std::vector<LicenseUser::ptr_t> getLicenseUsers(const Customer &customer);
330
335 std::vector<LicenseUser::ptr_t> getLicenseUsers(const std::string &customerEmail);
336
343 std::vector<UserLicensesData::ptr_t> getUserLicenses(
344 const std::string &username, const std::string &password);
345};
346} // namespace LicenseSpring
347
348#ifdef _MSC_VER
349#pragma warning(pop)
350#endif
351
352#endif // LS_LICENSE_MANAGER_H
#define LS_API
Definition: APIDef.h:23
DeviceIDAlgorithm
Type of Device ID algorithm used by the SDK.
Definition: PODTypes.h:115
Base class for license management.
Definition: BaseManager.h:25
std::shared_ptr< Configuration > ptr_t
Definition: Configuration.h:21
Class that encapsulates information about a customer.
Definition: Customer.h:18
std::shared_ptr< Customer > ptr_t
Definition: Customer.h:20
std::shared_ptr< InstallationFile > ptr_t
std::shared_ptr< License > ptr_t
Definition: License.h:37
Class that represents License identifier.
Definition: LicenseID.h:21
Class for performing basic requests to LicenseSpring backend and managing licenses.
std::wstring createOfflineActivationFile(const LicenseID &licenseID, const std::vector< DeviceVariable > &deviceVariables, const std::wstring &activationRequestFile=std::wstring())
Creates offline activation file request.
std::shared_ptr< LicenseManager > ptr_t
std::string getSSOUrl(const std::string &accountCode=std::string(), bool useAuthCode=true)
Get URL for Single sign-on license activation.
std::string getAirGapActivationCode(const std::string &initializationCode, const std::string &licenseKey)
Get air gap Activation code.
std::vector< LicenseUser::ptr_t > getLicenseUsers(const std::string &customerEmail)
Overloaded method. See notes above. Get license users list by given customer email.
std::vector< UserLicensesData::ptr_t > getUserLicenses(const std::string &username, const std::string &password)
Retrieves all licenses for the provided username and password and the product this LicenseManager is ...
std::vector< std::string > getVersionList(const LicenseID &licenseID, const InstallFileFilter &filter=InstallFileFilter())
Get app version list available for given license.
const License::ptr_t activateLicenseOffline(const std::wstring &activationResponseFile=std::wstring())
Activate license offline with provided activation file.
bool isOnline(bool throwExceptions=false) const
Helper method, it checks connection to the LicenseSpring backend.
static LicenseManager::ptr_t create(Configuration::ptr_t config, LicenseStorage::ptr_t storage=nullptr)
Creates LicenseManager object and initialize it with given configuration.
const License::ptr_t relinkLicense(DeviceIDAlgorithm deviceIdAlgorithm, const std::string &userPassword="")
This method helps upgrade to new device id algorithm. It deactivates current license with old device ...
LicenseManager(Configuration::ptr_t config, LicenseStorage::ptr_t storage=nullptr)
Construct LicenseManager object and initialize it with given configuration.
LicenseID getTrialLicense(Customer::ptr_t user=nullptr, const std::string &licensePolicy=std::string())
Request trial license from LicenseSpring backend.
bool changePassword(const std::string &user, const std::string &password, const std::string &newPassword)
Change user password, meaningful only for user-based products.
const License::ptr_t activateLicense(const LicenseID &licenseID)
Activate license with given LicenseID.
LicenseID getTrialLicense(const std::string &userEmail)
Request trial license from LicenseSpring backend.
const License::ptr_t activateLicense(const LicenseID &licenseID, const std::vector< DeviceVariable > &deviceVariables)
Activate license with given LicenseID and device variables.
~LicenseManager() override
Destroy license manager and its configuration if there is no more references to the configuration.
std::wstring createOfflineActivationFile(const LicenseID &licenseID, const std::wstring &activationRequestFile=std::wstring())
Creates offline activation file request.
std::vector< LicenseUser::ptr_t > getLicenseUsers(const Customer &customer)
Get license users list by given customer (license owner).
InstallationFile::ptr_t getInstallationFile(const LicenseID &licenseID, const std::string &version=std::string(), const InstallFileFilter &filter=InstallFileFilter())
Get InstallationFile information for given license.
const License::ptr_t activateLicense(const std::string &authData, const std::string &accountCode=std::string(), bool useAuthCode=true)
Activate license using SSO.
const License::ptr_t activateAirGapLicense(const std::string &confirmationCode, const std::wstring &policyPath, const std::string &licenseKey, uint32_t policyId)
Verify Confirmation code and activate air gap license using given license policy or policies.
std::shared_ptr< LicenseStorage > ptr_t
Helper struct for filtering installation files by environment and channel.