| LicenseSpring C++ SDK 7.27.0 Easily add Software Licensing to your application

ExtendedOptions.h
Go to the documentation of this file.
1 #ifndef LS_EXTENDED_OPTIONS_H
2 #define LS_EXTENDED_OPTIONS_H
3
4 #ifdef _MSC_VER
5 #pragma once
6 #pragma warning( push )
7 #pragma warning( disable : 4251 )
8 #endif
9
10 #include <vector>
11 #include "APIDef.h"
12 #include "CryptoProvider.h"
13 #include "PODTypes.h"
14
15 namespace LicenseSpring
16 {
19 class LS_API NetworkInfo
20 {
21 public:
23 NetworkInfo() = default;
24
26 ~NetworkInfo();
27
30 void setIp( const std::string& ip );
31
34 const std::string& ip() const;
35
38 void setMac( const std::string& mac );
39
42 const std::string& mac() const;
43
46 void setHostName( const std::string& hostName );
47
50 const std::string& hostName() const;
51
52 private:
53 std::string m_localIP;
54 std::string m_hostName;
55 std::string m_macAddress;
56 };
57
59 class LS_API ProxySettings
60 {
61 public:
62
64 ProxySettings() = default;
65
70 ProxySettings( const std::string& proxy, const std::string& user, const std::string& password );
71
73 ~ProxySettings();
74
77 void setProxyUri( const std::string& uri );
78
81 const std::string& getProxyUri() const;
82
85 void setUser( const std::string& user );
86
89 const std::string& getUser() const;
90
93 void setPassword( const std::string& password );
94
97 const std::string& getPassword() const;
98
101 bool isValid() const;
102
103 private:
104 std::string m_proxyUri; // e.g. "http://local.example.com:1080"
105 std::string m_user;
106 std::string m_password;
107 };
108
110 class LS_API ExtendedOptions
111 {
112 public:
113
115 ExtendedOptions();
116
119 ExtendedOptions( const std::wstring& licenseFilePath );
120
125 ExtendedOptions( const std::wstring& licenseFilePath,
126 const std::string& hardwareID,
127 const ProxySettings& proxy = ProxySettings() );
128
130 ~ExtendedOptions();
131
135 void setLicenseFilePath( const std::wstring& filePath );
136
140 const std::wstring& getLicenseFilePath() const;
141
144 void setHardwareID( const std::string& ID );
145
148 const std::string& getHardwareID() const;
149
152 DeviceIDAlgorithm getDeviceIdAlgorithm() const;
153
157 void setDeviceIdAlgorithm( DeviceIDAlgorithm algorithm );
158
163 void collectNetworkInfo( bool collect );
164
167 bool isCollectNetworkInfoEnabled() const;
168
175 void enableLogging( bool enable );
176
179 bool isLoggingEnabled() const;
180
185 void enableGuardFile( bool enable );
186
189 bool isGuardFileEnabled() const;
190
195 void enableVMDetection( bool enable );
196
199 bool isVMDetectionEnabled() const;
200
205 void enableSSLCheck( bool enable );
206
209 bool isSSLCheckEnabled() const;
210
217 void setUseNativeTLS( bool value );
218
222 bool isNativeTLSEnabled() const;
223
228 void setGracePeriod( uint32_t value );
229
232 uint32_t getGracePeriod() const;
233
237 void setNetworkTimeout( long timeout );
238
241 long getNetworkTimeout() const;
242
246 void setProxySettings( const ProxySettings& settings );
247
250 const ProxySettings& getProxySettings() const;
251
254 void overrideNetworkInfo( const NetworkInfo& networkInfo );
255
258 const NetworkInfo& getNetworkInfo() const;
259
263 void overrideCryptoProvider( CryptoProvider::ptr_t cryptoProvider );
264
267 CryptoProvider::ptr_t getCryptoProvider();
268
273 void setAlternateServiceURL( const std::string& URL );
274
277 const std::string& getAlternateServiceURL() const;
278
282 void setAlternateKey( const std::string& key );
283
287 void setAlternateKey( const std::vector<int32_t>& key );
288
293 void setAlternateKey( const int32_t* key, std::size_t size );
294
297 const std::string& getAlternateKey() const;
298
299 private:
300 std::wstring m_licenseFilePath;
301 std::string m_hardwareID;
302 std::string m_serviceURL;
303 std::string m_key;
304 bool m_collectNetworkInfo; // false by default
305 bool m_enableVMDetection; // false by default
306 bool m_enableGuardFile; // true by default
307 bool m_enableSSLCheck; // false by default
308 bool m_useNativeTLS; // see isNativeTLSEnabled
309 uint32_t m_gracePeriod; // in hours, default value is 48
310 long m_networkTimeout; // in seconds, default is 5 seconds
311 ProxySettings m_proxySettings; // by default doesn't use any proxy
312 NetworkInfo m_networkInfo;
313 DeviceIDAlgorithm m_deviceIDAlgorithm;
314 CryptoProvider::ptr_t m_cryptoProvider;
315 };
316
317 } // namespace LicenseSpring
318
319 #ifdef _MSC_VER
320 #pragma warning( pop )
321 #endif
322
323 #endif // LS_EXTENDED_OPTIONS_H
LicenseSpring::NetworkInfo
Class for storing a device&#39;s network information.
Definition: ExtendedOptions.h:19
LicenseSpring
Definition: BaseManager.h:15
APIDef.h
LicenseSpring::CryptoProvider::ptr_t
std::shared_ptr< CryptoProvider > ptr_t
Definition: CryptoProvider.h:22
LicenseSpring::ExtendedOptions
Class for storing useful settings that the Configuration object will inherit.
Definition: ExtendedOptions.h:110
CryptoProvider.h
DeviceIDAlgorithm
DeviceIDAlgorithm
Type of Device ID algorithm used by the SDK.
Definition: PODTypes.h:100
LicenseSpring::ProxySettings
Class for storing settings when using a proxy server.
Definition: ExtendedOptions.h:59
LS_API
#define LS_API
Macros that expands to dllexport, dllimport or nothing on non Windows platforms or in case of static ...
Definition: APIDef.h:22
PODTypes.h