LicenseSpring C++ SDK  7.31.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 {
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 
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 
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::CryptoProvider::ptr_t
std::shared_ptr< CryptoProvider > ptr_t
Definition: CryptoProvider.h:22
LicenseSpring
Definition: BaseManager.h:15
DeviceIDAlgorithm
DeviceIDAlgorithm
Type of Device ID algorithm used by the SDK.
Definition: PODTypes.h:103
LicenseSpring::NetworkInfo
Class for storing a device's network information.
Definition: ExtendedOptions.h:19
APIDef.h
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
CryptoProvider.h
LicenseSpring::ExtendedOptions
Class for storing useful settings that the Configuration object will inherit.
Definition: ExtendedOptions.h:110
LicenseSpring::ProxySettings
Class for storing settings when using a proxy server.
Definition: ExtendedOptions.h:59