6 #pragma warning( push )
7 #pragma warning( disable : 4251 )
23 #pragma push_macro("check") // Workaround for Unreal Engine
26 namespace LicenseSpring
36 using ptr_t = std::shared_ptr<License>;
47 virtual const std::string& key()
const = 0;
51 virtual const std::string& user()
const = 0;
74 virtual std::string status()
const = 0;
78 virtual bool isActive()
const = 0;
82 virtual bool isEnabled()
const = 0;
86 virtual bool isValid()
const = 0;
90 virtual bool isTrial()
const = 0;
94 virtual bool isAirGapped()
const = 0;
99 virtual uint32_t policyId()
const = 0;
103 virtual bool isOfflineActivated()
const = 0;
108 virtual bool isVMAllowed()
const = 0;
112 virtual bool isFloating()
const = 0;
117 virtual bool isBorrowed()
const = 0;
122 virtual bool isSubscriptionGracePeriodStarted()
const = 0;
126 virtual bool isGracePeriodStarted()
const = 0;
130 virtual tm gracePeriodEndDateTime()
const = 0;
134 virtual tm gracePeriodEndDateTimeUTC()
const = 0;
138 virtual int gracePeriodHoursRemaining()
const = 0;
143 virtual uint32_t maxFloatingUsers()
const = 0;
149 virtual uint32_t floatingInUseCount()
const = 0;
153 virtual uint32_t floatingTimeout()
const = 0;
158 virtual const std::string& floatingClientId()
const = 0;
162 virtual tm validityPeriod()
const = 0;
166 virtual tm validityPeriodUtc()
const = 0;
171 virtual tm validityWithGracePeriod()
const = 0;
176 virtual tm validityWithGracePeriodUtc()
const = 0;
181 virtual uint32_t subscriptionGracePeriod()
const = 0;
186 virtual uint32_t maxBorrowTime()
const = 0;
190 virtual tm maintenancePeriod()
const = 0;
194 virtual tm maintenancePeriodUtc()
const = 0;
198 virtual tm lastCheckDate()
const = 0;
202 virtual tm lastCheckDateUtc()
const = 0;
207 virtual tm floatingEndDateTime()
const = 0;
212 virtual tm floatingEndDateTimeUtc()
const = 0;
217 virtual const std::string& startDate()
const = 0;
221 virtual const std::string& metadata()
const = 0;
226 virtual LicenseFeature feature(
const std::string& featureCode )
const = 0;
230 virtual std::vector<LicenseFeature> features()
const = 0;
234 virtual std::vector<CustomField> customFields()
const = 0;
239 virtual const std::vector<CustomField>& userData()
const = 0;
245 virtual std::string userData(
const std::string& key )
const = 0;
252 virtual void addUserData(
const CustomField& data,
bool saveLicense =
true ) = 0;
257 virtual void removeUserData(
const std::string& key = std::string(),
bool saveLicense =
true ) = 0;
261 virtual int32_t totalConsumption()
const = 0;
265 virtual int32_t maxConsumption()
const = 0;
269 virtual int32_t maxOverages()
const = 0;
273 virtual bool isOveragesAllowed()
const = 0;
277 virtual bool isUnlimitedConsumptionAllowed()
const = 0;
285 virtual bool isResetConsumptionEnabled()
const = 0;
289 virtual uint32_t timesActivated()
const = 0;
293 virtual uint32_t maxActivations()
const = 0;
297 virtual uint32_t transferCount()
const = 0;
302 virtual bool isAutoReleaseSet()
const = 0;
306 virtual void setAutoRelease(
bool autoRelease ) = 0;
313 virtual void updateConsumption( int32_t value = 1,
bool saveLicense =
true ) = 0;
321 virtual void updateFeatureConsumption(
const std::string& featureCode, int32_t value = 1,
bool saveLicense =
true ) = 0;
327 virtual bool isExpired()
const = 0;
331 virtual bool isMaintenancePeriodExpired()
const = 0;
336 virtual int daysRemainingUtc()
const = 0;
341 virtual int daysRemaining()
const = 0;
345 virtual int maintenanceDaysRemaining()
const = 0;
353 virtual int daysPassedSinceLastCheck()
const = 0;
362 virtual void localCheck() = 0;
378 virtual bool deactivate(
bool removeLocalData =
false ) = 0;
384 virtual bool changePassword(
const std::string& password,
const std::string& newPassword ) = 0;
411 virtual bool syncConsumption( int32_t requestOverage = -1 ) = 0;
425 virtual bool syncFeatureConsumption(
const std::string& featureCode = std::string() ) = 0;
436 virtual void addDeviceVariable(
const std::string& name,
const std::string& value,
437 bool saveLicense =
true ) = 0;
445 virtual void addDeviceVariable(
const DeviceVariable& variable,
bool saveLicense =
true ) = 0;
450 virtual void addDeviceVariables(
const std::vector<DeviceVariable>& variables ) = 0;
458 virtual bool sendDeviceVariables() = 0;
467 virtual std::vector<DeviceVariable> getDeviceVariables(
bool getFromBackend =
false ) = 0;
472 virtual DeviceVariable deviceVariable(
const std::string& name )
const = 0;
477 virtual const std::string& deviceVariableValue(
const std::string& name )
const = 0;
489 virtual void resumeLicenseWatchdog() = 0;
493 virtual void stopLicenseWatchdog() = 0;
500 virtual void registerFloatingLicense() = 0;
510 virtual void releaseFloatingLicense(
bool throwExceptions =
false ) = 0;
522 virtual void borrow( uint32_t hours, uint32_t days = 0 ) = 0;
533 virtual void borrow(
const std::string& borrowEndDateTime = std::string() ) = 0;
538 virtual std::wstring deactivateOffline(
const std::wstring& deactivationRequestFile = std::wstring() ) = 0;
548 virtual bool updateOffline(
const std::wstring& path,
bool resetConsumption =
false ) = 0;
554 virtual void unlinkFromDevice() = 0;
559 virtual std::string getAirGapDeactivationCode(
const std::string& initializationCode ) = 0;
564 virtual void deactivateAirGap(
const std::string& confirmationCode ) = 0;
568 virtual bool isLicenseBelongsToThisDevice(
DeviceIDAlgorithm deviceIDAlgorithm ) = 0;
571 virtual bool checkLicenseBelongsToThisDevice() = 0;
575 std::string
LS_API TmToString(
const tm& dateTime,
const std::string& format = std::string(
"%d-%m-%Y" ) );
579 #pragma pop_macro("check")
582 #pragma warning( pop )
585 #endif // LS_LICENSE_H
std::string LS_API TmToString(const tm &dateTime, const std::string &format=std::string("%d-%m-%Y"))
Helper function, converts datetime to string using given format. See strftime reference for format de...
Class for storing key-value device variable.
Class used for encapsulating LSConsumptionPeriod and converting cosumption period to/from string...
Class for storing key-value data field.
Class used for encapsulating the type of license, comparing types of licenses, and converting them to...
Class that encapsulates information about a customer.
std::shared_ptr< License > ptr_t
static const int MaxDaysRemainingValue
Maximum value for daysRemaining, e.g. in case of perpetual license.
Class that encapsulates information about license feature.
std::function< void(const LicenseSpringException &ex)> LicenseWatchdogCallback
Callback function which being called in case of error in background thread (watchdog thread)...
std::shared_ptr< LicenseUser > ptr_t
DeviceIDAlgorithm
Type of Device ID algorithm used by the SDK.
virtual ~License()
Destructor for license.
#define LS_API
Macros that expands to dllexport, dllimport or nothing on non Windows platforms or in case of static ...
Class that encapsulates license information.
Class that represents License identifier.
std::shared_ptr< InstallationFile > ptr_t
Helper struct for filtering installation files by environment and channel.
Class that encapsulates information about a product.