LicenseSpring C++ SDK 7.31.0
Easily add Software Licensing to your application
LicenseSpring::FloatingClient Class Reference

Class for performing requests to LicenseSpring Floating server. More...

#include <LicenseSpring/FloatingClient.h>

Inheritance diagram for LicenseSpring::FloatingClient:
LicenseSpring::BaseManager

Public Types

using ptr_t = std::shared_ptr< FloatingClient >
 

Public Member Functions

 FloatingClient (Configuration::ptr_t config, LicenseStorage::ptr_t storage)
 Construct FloatingClient object and initialize it with given configuration. More...
 
 ~FloatingClient () override
 Destroy FloatingClient and its configuration if there is no more references to the configuration. More...
 
const License::ptr_t registerLicense (const std::string &id, const LicenseID &licenseID=LicenseID())
 Register client with given id. More...
 
const License::ptr_t borrowLicense (const std::string &id, const std::string &borrowEndDateTime=std::string())
 Allows to register and borrow license at once. More...
 
bool unregisterLicense (const std::string &id, const LicenseID &licenseID=LicenseID())
 Unregister client with given id. More...
 
bool isOnline (bool throwExceptions=false) const
 Helper method, it checks connection to the Floating server. More...
 
FloatingServerInfo::ptr_t getServerInfo ()
 Get Floating Server information (obsolete). More...
 
- Public Member Functions inherited from LicenseSpring::BaseManager
 BaseManager (Configuration::ptr_t config, LicenseStorage::ptr_t storage=nullptr)
 Create and intialize license manager with given configuration. More...
 
 BaseManager (const BaseManager &)=delete
 
BaseManageroperator= (const BaseManager &)=delete
 
virtual ~BaseManager ()
 Destroy LicenseManger with current configuration. More...
 
Configuration::ptr_t currentConfig () const
 Returns current configuration. More...
 
void reconfigure (Configuration::ptr_t config)
 Change current configuration. More...
 
ProductDetails getProductDetails (bool includeLatestVersion=false)
 Get basic information from the backend on product which corresponds to the current configuration. More...
 
const License::ptr_t getCurrentLicense ()
 Load license from local storage (if not yet loaded). More...
 
const License::ptr_t reloadLicense ()
 Resets current license and loads it again from local storage. More...
 
void clearLocalStorage ()
 Remove local license, other files and folders created by LicenseSpring, usually should be called at app uninstallation. More...
 
const std::wstring & dataLocation () const
 Absolute folder path where LicenseSpring data is stored. More...
 
void setDataLocation (const std::wstring &path)
 Set absolute or relative path to folder where LicenseSpring data should be stored. More...
 
std::wstring licenseFileName () const
 Return license file name with extension, unless filename was explicitly set to be without extension. More...
 
void setLicenseFileName (const std::wstring &name)
 Set license file name, it can be with or without extension. More...
 
std::wstring licenseFilePath () const
 Return concatenated dataLocation() and licenseFileName(). More...
 

Static Public Member Functions

static FloatingClient::ptr_t create (Configuration::ptr_t config, LicenseStorage::ptr_t storage=nullptr)
 Creates FloatingClient object and initialize it with given configuration. More...
 

Additional Inherited Members

- Protected Member Functions inherited from LicenseSpring::BaseManager
void reset ()
 Reset (delete) members. More...
 
- Protected Attributes inherited from LicenseSpring::BaseManager
Configuration::ptr_t m_config
 
std::shared_ptr< DataHandler > m_dataHandler
 
LicenseService * m_pLicenseService
 
License::ptr_t m_currentLicense
 

Detailed Description

Class for performing requests to LicenseSpring Floating server.

See also
https://docs.licensespring.com/docs/floating-server

Definition at line 18 of file FloatingClient.h.

Member Typedef Documentation

◆ ptr_t

Definition at line 21 of file FloatingClient.h.

Constructor & Destructor Documentation

◆ FloatingClient()

LicenseSpring::FloatingClient::FloatingClient ( Configuration::ptr_t  config,
LicenseStorage::ptr_t  storage 
)

Construct FloatingClient object and initialize it with given configuration.

Parameters
configConfiguration object to use
storageStorage for local license, by default local license is saved in a file
Exceptions
ConfigurationExceptionIf config is null

◆ ~FloatingClient()

LicenseSpring::FloatingClient::~FloatingClient ( )
override

Destroy FloatingClient and its configuration if there is no more references to the configuration.

Member Function Documentation

◆ create()

static FloatingClient::ptr_t LicenseSpring::FloatingClient::create ( Configuration::ptr_t  config,
LicenseStorage::ptr_t  storage = nullptr 
)
static

Creates FloatingClient object and initialize it with given configuration.

Parameters
configConfiguration object to use
storageStorage for local license, by default local license is saved in a file
Exceptions
ConfigurationExceptionIf config is null
Returns
Shared pointer to FloatingClient object.

◆ registerLicense()

const License::ptr_t LicenseSpring::FloatingClient::registerLicense ( const std::string &  id,
const LicenseID licenseID = LicenseID() 
)

Register client with given id.

Send register license request to the Floating server.

Parameters
idUser or instance id for license registration, it can be anything - email, host or domain name, handle, etc.
licenseIDLicense identifier, optional, if not specified this method tries to register to default license for the product.
Returns
Shared pointer to License if registration succeeded, throws exceptions in case of errors.
Exceptions
LicenseNotFloatingExceptionIn case provided license is not floating
ProductNotFoundExceptionIn case configured product does not exist
LicenseNotFoundExceptionIn case provided license was not found
LicenseStateExceptionIf license is disabled or experid
NoInternetExceptionIf cannot reach the server
NetworkTimeoutExceptionIn case of network timeout
LicenseServerExceptionIn case of internal server error
UnknownLicenseSpringExceptionIn rare case if something went wrong, please contact support

◆ borrowLicense()

const License::ptr_t LicenseSpring::FloatingClient::borrowLicense ( const std::string &  id,
const std::string &  borrowEndDateTime = std::string() 
)

Allows to register and borrow license at once.

Can throw the same exceptions as on registration and License::borrow, see those functions for more details.

Parameters
idUser or instance id for license registration, it can be anything - email, host or domain name, handle, etc.
borrowEndDateTimeBorrow end date time in format "%Y-%m-%dT%H:%M:%SZ", for example "2022-05-28T15:30:00Z"
Returns
Shared pointer to License if registration and borrowing succeeded, throws exceptions in case of errors.

◆ unregisterLicense()

bool LicenseSpring::FloatingClient::unregisterLicense ( const std::string &  id,
const LicenseID licenseID = LicenseID() 
)

Unregister client with given id.

Parameters
idUser or instance id, it can be anything - email, host or domain name, handle, etc.
licenseIDLicense id, optional, if not specified this method unegister from default configured license for the product.
Returns
True if license unregistered successfully.
Exceptions
NoInternetExceptionIf cannot reach the server
NetworkTimeoutExceptionIn case of network timeout
LicenseServerExceptionIn case of internal server error
UnknownLicenseSpringExceptionIn rare case if something went wrong, please contact support

◆ isOnline()

bool LicenseSpring::FloatingClient::isOnline ( bool  throwExceptions = false) const

Helper method, it checks connection to the Floating server.

Parameters
throwExceptionsIndicates whether this method should throw exceptions
Returns
True if SDK is able to connect to the Floating server and false otherwise.
Exceptions
NoInternetExceptionIf cannot reach the server
NetworkTimeoutExceptionIn case of network timeout
LicenseServerExceptionIn case of internal server error
UnknownLicenseSpringExceptionIn rare case if something went wrong, please contact support

◆ getServerInfo()

FloatingServerInfo::ptr_t LicenseSpring::FloatingClient::getServerInfo ( )

Get Floating Server information (obsolete).

This method is obsolete.

Returns
Shared pointer to FloatingServerInfo if succeeded, throws exceptions in case of errors.
Exceptions
NoInternetExceptionIf cannot reach the server
NetworkTimeoutExceptionIn case of network timeout
LicenseServerExceptionIn case of internal server error
UnknownLicenseSpringExceptionIn rare case if something went wrong, please contact support

The documentation for this class was generated from the following file: