LicenseSpring C++ SDK
Easily add Software Licensing to your application
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 
13 namespace LicenseSpring
14 {
19 {
20 public:
21  using ptr_t = std::shared_ptr<Configuration>;
22 
24  Configuration() = default;
25 
38  static ptr_t Create(const std::string &apiKey, const std::string &sharedKey,
39  const std::string &productCode, const std::string &appName, const std::string &appVersion,
40  const ExtendedOptions &extendedOptions = ExtendedOptions());
41 
53  static ptr_t CreateOAuth(const std::string &clientId, const std::string &clientSecret,
54  const std::string &productCode, const std::string &appName, const std::string &appVersion,
55  const ExtendedOptions &extendedOptions = ExtendedOptions());
56 
59  bool isOAuth() const;
60 
63  const std::string &getApiKey() const;
64 
67  const std::string &getSharedKey() const;
68 
71  const std::string &getClientId() const;
72 
75  const std::string &getClientSecret() const;
76 
79  const std::string &getProductCode() const;
80 
83  const std::string &getAppName() const;
84 
87  const std::string &getAppVersion() const;
88 
92  const std::string &getCustomerAccount() const;
93 
98  void setCustomerAccount(const std::string &accountCode);
99 
102  const std::string &getAirGapPublicKey() const;
103 
106  void setAirGapPublicKey(const std::string &key);
107 
113  const std::wstring &getLicenseFilePath() const;
114 
124  const std::string &getHardwareID();
125 
129  void setHardwareID(const std::string &deviceId);
130 
133  void setDeviceIdAlgorithm(DeviceIDAlgorithm algorithm);
134 
137  bool isCollectNetworkInfoEnabled() const;
138 
141  bool isLoggingEnabled() const;
142 
145  bool isGuardFileEnabled() const;
146 
150  bool isSSLCheckEnabled() const;
151 
155  bool isNativeTLSEnabled() const;
156 
160  bool isLicenseCorruptionCheckEnabled() const;
161 
165  bool isHardwareKeyEnabled() const;
166 
169  uint32_t getGracePeriod() const;
170 
174  long getNetworkTimeout() const;
175 
178  void setNetworkTimeout(long timeoutValue);
179 
183  long getConnectTimeout() const;
184 
187  void setConnectTimeout(long timeoutValue);
188 
191  const ProxySettings &getProxySettings() const;
192 
195  uint32_t getLicenseSpringAPIVersion() const;
196 
199  const std::string &getSdkVersion() const;
200 
203  const std::string &getOsVersion() const;
204 
207  const std::string &getHostName() const; // note: string is UTF-8 encoded
208 
211  const std::string &getIP() const;
212 
215  const std::string &getMAC() const;
216 
219  const NetworkInfo &getNetworkInfo() const;
220 
223  bool isVMDetectionEnabled() const;
224 
231  bool isVM() const;
232 
238  const std::string &getDetectedVMName() const;
239 
243  CryptoProvider::ptr_t getCryptoProvider();
244 
247  const std::string &getAlternateServiceUrl() const;
248 
251  const std::string &getAlternateKey() const;
252 
256  const std::string &getUserInfo() const;
257 
260  void setUserInfo(const std::string &customInfo);
261 
264  const std::string &getHardwareKeyTargetSerial() const;
265 
268  const std::string &getHardwareKeyPin() const;
269 
270 private:
271  bool m_isOAuth;
272  std::string m_apiKey;
273  std::string m_sharedKey;
274  std::string m_clientId;
275  std::string m_clientSecret;
276  std::string m_productCode;
277  std::string m_customerAccount;
278  std::string m_appName;
279  std::string m_appVersion;
280  std::string m_userInfo;
281  std::string m_airGapPublicKey;
282  ExtendedOptions m_extOptions;
283 };
284 } // namespace LicenseSpring
285 
286 #ifdef _MSC_VER
287 #pragma warning(pop)
288 #endif
289 
290 #endif // LS_CONFIGURATION_H
Class for storing a device&#39;s network information.
std::shared_ptr< Configuration > ptr_t
Definition: Configuration.h:21
std::shared_ptr< CryptoProvider > ptr_t
Class for storing useful settings that the Configuration object will inherit.
Class for configuring application.
Definition: Configuration.h:18
DeviceIDAlgorithm
Type of Device ID algorithm used by the SDK.
Definition: PODTypes.h:118
Class for storing settings when using a proxy server.
#define LS_API
Definition: APIDef.h:23