LicenseSpring C++ SDK
Easily add Software Licensing to your application
Loading...
Searching...
No Matches
Configuration.h
Go to the documentation of this file.
1#ifndef LS_CONFIGURATION_H
2#define LS_CONFIGURATION_H
3
4#ifdef _MSC_VER
5#pragma once
6#pragma warning( push )
7#pragma warning( disable : 4251 )
8#endif
9
10#include <memory>
11#include "ExtendedOptions.h"
12
13namespace LicenseSpring
14{
18 {
19 public:
20 using ptr_t = std::shared_ptr<Configuration>;
21
23 Configuration() = default;
24
36 static ptr_t Create( const std::string& apiKey,
37 const std::string& sharedKey,
38 const std::string& productCode,
39 const std::string& appName,
40 const std::string& appVersion,
41 const ExtendedOptions& extendedOptions = ExtendedOptions() );
42
53 static ptr_t CreateOAuth( const std::string& clientId,
54 const std::string& clientSecret,
55 const std::string& productCode,
56 const std::string& appName,
57 const std::string& appVersion,
58 const ExtendedOptions& extendedOptions = ExtendedOptions() );
59
62 bool isOAuth() const;
63
66 const std::string& getApiKey() const;
67
70 const std::string& getSharedKey() const;
71
74 const std::string& getClientId() const;
75
78 const std::string& getClientSecret() const;
79
82 const std::string& getProductCode() const;
83
86 const std::string& getAppName() const;
87
90 const std::string& getAppVersion() const;
91
95 const std::string& getCustomerAccount() const;
96
100 void setCustomerAccount( const std::string& accountCode );
101
104 const std::string& getAirGapPublicKey() const;
105
108 void setAirGapPublicKey( const std::string& key );
109
113 const std::wstring& getLicenseFilePath() const;
114
121 const std::string& getHardwareID();
122
126 void setHardwareID( const std::string& deviceId );
127
131
135
138 bool isLoggingEnabled() const;
139
142 bool isGuardFileEnabled() const;
143
147 bool isSSLCheckEnabled() const;
148
152 bool isNativeTLSEnabled() const;
153
158
161 uint32_t getGracePeriod() const;
162
166 long getNetworkTimeout() const;
167
170 void setNetworkTimeout( long timeoutValue );
171
175 long getConnectTimeout() const;
176
179 void setConnectTimeout( long timeoutValue );
180
184
188
191 const std::string& getSdkVersion() const;
192
195 const std::string& getOsVersion() const;
196
199 const std::string& getHostName() const; // note: string is UTF-8 encoded
200
203 const std::string& getIP() const;
204
207 const std::string& getMAC() const;
208
212
216
221 bool isVM() const;
222
227 const std::string& getDetectedVMName() const;
228
232
235 const std::string& getAlternateServiceUrl() const;
236
239 const std::string& getAlternateKey() const;
240
244 const std::string& getUserInfo() const;
245
248 void setUserInfo( const std::string& customInfo );
249
250 private:
251 bool m_isOAuth;
252 std::string m_apiKey;
253 std::string m_sharedKey;
254 std::string m_clientId;
255 std::string m_clientSecret;
256 std::string m_productCode;
257 std::string m_customerAccount;
258 std::string m_appName;
259 std::string m_appVersion;
260 std::string m_userInfo;
261 std::string m_airGapPublicKey;
262 ExtendedOptions m_extOptions;
263 };
264}
265
266#ifdef _MSC_VER
267#pragma warning( pop )
268#endif
269
270#endif // LS_CONFIGURATION_H
#define LS_API
Macros that expands to dllexport, dllimport or nothing on non Windows platforms or in case of static ...
Definition APIDef.h:22
DeviceIDAlgorithm
Type of Device ID algorithm used by the SDK.
Definition PODTypes.h:108
Class for configuring application.
std::shared_ptr< Configuration > ptr_t
const std::string & getAirGapPublicKey() const
Getter for air gap public key.
bool isVM() const
Checker for whether the user is on a virtual machine.
bool isOAuth() const
Checker if authn is done with OAuth.
const std::string & getApiKey() const
Getter for API key (UUID).
const std::string & getIP() const
Getter for IP Address.
void setDeviceIdAlgorithm(DeviceIDAlgorithm algorithm)
Setter for DeviceIDAlgorithm.
const std::string & getAppName() const
Getter for application name.
bool isCollectNetworkInfoEnabled() const
Checker for if collection of network information is enabled in ExtendedOptions.
const NetworkInfo & getNetworkInfo() const
Getter for Network Information.
long getNetworkTimeout() const
Getter for network timeout.
uint32_t getGracePeriod() const
Getter for grace period.
long getConnectTimeout() const
Getter for connect timeout, used for CURLOPT_CONNECTTIMEOUT option.
CryptoProvider::ptr_t getCryptoProvider()
Getter for crypto provider.
const std::string & getClientId() const
Getter for OAuth client ID.
void setConnectTimeout(long timeoutValue)
Setter for connect timeout, used for CURLOPT_CONNECTTIMEOUT option.
const ProxySettings & getProxySettings() const
Getter for ProxySettings object.
const std::wstring & getLicenseFilePath() const
This method is obsolete! Return license file path that was set through ExtendedOptions or empty strin...
const std::string & getHardwareID()
Getter for device id.
bool isLoggingEnabled() const
Checker for if logging is enabled in ExtendedOptions.
const std::string & getSdkVersion() const
Getter for LicenseSpring SDK version.
Configuration()=default
Constructor for internal needs, use Create instead.
const std::string & getMAC() const
Getter for MAC Address.
void setUserInfo(const std::string &customInfo)
Set custom information to be passed to the backend with all API requests.
bool isGuardFileEnabled() const
Checker for whether guard file usage is enabled in ExtendedOptions.
const std::string & getOsVersion() const
Getter for Operating System version.
bool isLicenseCorruptionCheckEnabled() const
Checker for whether encrypted license data corruption checking is enabled or not.
void setHardwareID(const std::string &deviceId)
Setter for device id.
const std::string & getUserInfo() const
Returns custom information to be passed along with all API requests.
void setCustomerAccount(const std::string &accountCode)
Set customer group (account) code that is required for SSO.
const std::string & getSharedKey() const
Getter for shared key.
bool isNativeTLSEnabled() const
Checker for whether native TLS for curl enabled or not.
const std::string & getHostName() const
Getter for Host Name.
bool isSSLCheckEnabled() const
Checker for whether SSL certificate verification is enabled.
const std::string & getDetectedVMName() const
Getter for hypervisor name, calls isVM first if not yet called.
const std::string & getAlternateKey() const
Getter for alternate public key.
static ptr_t CreateOAuth(const std::string &clientId, const std::string &clientSecret, const std::string &productCode, const std::string &appName, const std::string &appVersion, const ExtendedOptions &extendedOptions=ExtendedOptions())
Creates shared pointer for configuration object, used for OAuth authentication.
bool isVMDetectionEnabled() const
Checker for whether Virtual Machine Detection is enabled.
const std::string & getAlternateServiceUrl() const
Getter for alternate service URL.
void setAirGapPublicKey(const std::string &key)
Setter for air gap public key.
const std::string & getAppVersion() const
Getter for application version.
const std::string & getCustomerAccount() const
Returns customer group (account) code that is required for SSO.
const std::string & getClientSecret() const
Getter for OAuth client secret.
static ptr_t Create(const std::string &apiKey, const std::string &sharedKey, const std::string &productCode, const std::string &appName, const std::string &appVersion, const ExtendedOptions &extendedOptions=ExtendedOptions())
Creates shared pointer for configuration object, used for standard authentication with API and shared...
void setNetworkTimeout(long timeoutValue)
Setter for network timeout.
uint32_t getLicenseSpringAPIVersion() const
Getter for LicenseSpring API version.
const std::string & getProductCode() const
Getter for product code.
std::shared_ptr< CryptoProvider > ptr_t
Class for storing useful settings that the Configuration object will inherit.
Class for storing a device's network information.
Class for storing settings when using a proxy server.