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 trialPeriod()
const = 0;
148 virtual uint32_t maxFloatingUsers()
const = 0;
154 virtual uint32_t floatingInUseCount()
const = 0;
158 virtual uint32_t floatingTimeout()
const = 0;
163 virtual const std::string& floatingClientId()
const = 0;
167 virtual tm validityPeriod()
const = 0;
171 virtual tm validityPeriodUtc()
const = 0;
176 virtual tm validityWithGracePeriod()
const = 0;
181 virtual tm validityWithGracePeriodUtc()
const = 0;
186 virtual uint32_t subscriptionGracePeriod()
const = 0;
191 virtual uint32_t maxBorrowTime()
const = 0;
195 virtual tm maintenancePeriod()
const = 0;
199 virtual tm maintenancePeriodUtc()
const = 0;
203 virtual tm lastCheckDate()
const = 0;
207 virtual tm lastCheckDateUtc()
const = 0;
212 virtual tm floatingEndDateTime()
const = 0;
217 virtual tm floatingEndDateTimeUtc()
const = 0;
222 virtual const std::string& startDate()
const = 0;
226 virtual const std::string& metadata()
const = 0;
232 virtual LicenseFeature feature(
const std::string& featureCode )
const = 0;
236 virtual std::vector<LicenseFeature> features()
const = 0;
240 virtual std::vector<CustomField> customFields()
const = 0;
245 virtual const std::vector<CustomField>& userData()
const = 0;
251 virtual std::string userData(
const std::string& key )
const = 0;
258 virtual void addUserData(
const CustomField& data,
bool saveLicense =
true ) = 0;
263 virtual void removeUserData(
const std::string& key = std::string(),
bool saveLicense =
true ) = 0;
267 virtual int32_t totalConsumption()
const = 0;
271 virtual int32_t maxConsumption()
const = 0;
275 virtual int32_t maxOverages()
const = 0;
279 virtual bool isOveragesAllowed()
const = 0;
283 virtual bool isUnlimitedConsumptionAllowed()
const = 0;
291 virtual bool isResetConsumptionEnabled()
const = 0;
295 virtual uint32_t timesActivated()
const = 0;
299 virtual uint32_t maxActivations()
const = 0;
303 virtual uint32_t transferCount()
const = 0;
307 virtual int32_t transferLimit()
const = 0;
311 virtual bool isDeviceTransferAllowed()
const = 0;
315 virtual bool isDeviceTransferLimited()
const = 0;
320 virtual bool isAutoReleaseSet()
const = 0;
324 virtual void setAutoRelease(
bool autoRelease ) = 0;
331 virtual void updateConsumption( int32_t value = 1,
bool saveLicense =
true ) = 0;
339 virtual void updateFeatureConsumption(
const std::string& featureCode, int32_t value = 1,
bool saveLicense =
true ) = 0;
345 virtual bool isExpired()
const = 0;
349 virtual bool isMaintenancePeriodExpired()
const = 0;
354 virtual int daysRemainingUtc()
const = 0;
359 virtual int daysRemaining()
const = 0;
363 virtual int maintenanceDaysRemaining()
const = 0;
371 virtual int daysPassedSinceLastCheck()
const = 0;
380 virtual void localCheck() = 0;
396 virtual bool deactivate(
bool removeLocalData =
false ) = 0;
402 virtual bool changePassword(
const std::string& password,
const std::string& newPassword ) = 0;
430 virtual bool syncConsumption( int32_t requestOverage = -1 ) = 0;
444 virtual bool syncFeatureConsumption(
const std::string& featureCode = std::string() ) = 0;
455 virtual void addDeviceVariable(
const std::string& name,
const std::string& value,
456 bool saveLicense =
true ) = 0;
464 virtual void addDeviceVariable(
const DeviceVariable& variable,
bool saveLicense =
true ) = 0;
469 virtual void addDeviceVariables(
const std::vector<DeviceVariable>& variables ) = 0;
477 virtual bool sendDeviceVariables() = 0;
486 virtual std::vector<DeviceVariable> getDeviceVariables(
bool getFromBackend =
false ) = 0;
491 virtual DeviceVariable deviceVariable(
const std::string& name )
const = 0;
496 virtual const std::string& deviceVariableValue(
const std::string& name )
const = 0;
508 virtual void resumeLicenseWatchdog() = 0;
512 virtual void stopLicenseWatchdog() = 0;
523 virtual void resumeFeatureWatchdog() = 0;
527 virtual void stopFeatureWatchdog() = 0;
534 virtual void registerFloatingLicense() = 0;
544 virtual void releaseFloatingLicense(
bool throwExceptions =
false ) = 0;
556 virtual void borrow( uint32_t hours, uint32_t days = 0 ) = 0;
567 virtual void borrow(
const std::string& borrowEndDateTime = std::string() ) = 0;
572 virtual std::wstring deactivateOffline(
const std::wstring& deactivationRequestFile = std::wstring() ) = 0;
582 virtual bool updateOffline(
const std::wstring& path,
bool resetConsumption =
false ) = 0;
588 virtual void unlinkFromDevice() = 0;
593 virtual std::string getAirGapDeactivationCode(
const std::string& initializationCode ) = 0;
598 virtual void deactivateAirGap(
const std::string& confirmationCode ) = 0;
602 virtual bool isLicenseBelongsToThisDevice(
DeviceIDAlgorithm deviceIDAlgorithm ) = 0;
605 virtual bool checkLicenseBelongsToThisDevice() = 0;
611 virtual void registerFloatingFeature(
const std::string& featureCode,
bool addToWatchdog =
true ) = 0;
618 virtual void releaseFloatingFeature(
const std::string& featureCode ) = 0;
622 std::string
LS_API TmToString(
const tm& dateTime,
const std::string& format = std::string(
"%d-%m-%Y" ) );
626 #pragma pop_macro("check")
629 #pragma warning( pop )
632 #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.