7 #pragma warning(disable : 4251)
23 #pragma push_macro("check") // Workaround for Unreal Engine
37 using ptr_t = std::shared_ptr<License>;
48 virtual const std::string &key()
const = 0;
52 virtual const std::string &user()
const = 0;
56 virtual const uint64_t serverId()
const = 0;
81 virtual std::string status()
const = 0;
85 virtual bool isActive()
const = 0;
89 virtual bool isEnabled()
const = 0;
93 virtual bool isValid()
const = 0;
97 virtual bool isTrial()
const = 0;
101 virtual bool isAirGapped()
const = 0;
106 virtual uint32_t policyId()
const = 0;
110 virtual bool isOfflineActivated()
const = 0;
115 virtual bool isVMAllowed()
const = 0;
119 virtual bool isFloating()
const = 0;
124 virtual bool isBorrowed()
const = 0;
129 virtual bool isSubscriptionGracePeriodStarted()
const = 0;
133 virtual bool isGracePeriodStarted()
const = 0;
137 virtual tm gracePeriodEndDateTime()
const = 0;
141 virtual tm gracePeriodEndDateTimeUTC()
const = 0;
145 virtual int gracePeriodHoursRemaining()
const = 0;
151 virtual uint32_t trialPeriod()
const = 0;
156 virtual uint32_t maxFloatingUsers()
const = 0;
163 virtual uint32_t floatingInUseCount()
const = 0;
167 virtual uint32_t floatingTimeout()
const = 0;
173 virtual const std::string &floatingClientId()
const = 0;
177 virtual tm validityPeriod()
const = 0;
181 virtual tm validityPeriodUtc()
const = 0;
186 virtual tm validityWithGracePeriod()
const = 0;
191 virtual tm validityWithGracePeriodUtc()
const = 0;
196 virtual uint32_t subscriptionGracePeriod()
const = 0;
201 virtual uint32_t maxBorrowTime()
const = 0;
205 virtual tm maintenancePeriod()
const = 0;
209 virtual tm maintenancePeriodUtc()
const = 0;
213 virtual tm lastCheckDate()
const = 0;
217 virtual tm lastCheckDateUtc()
const = 0;
222 virtual tm floatingEndDateTime()
const = 0;
227 virtual tm floatingEndDateTimeUtc()
const = 0;
233 virtual const std::string &startDate()
const = 0;
237 virtual const std::string &metadata()
const = 0;
241 virtual const std::string &orderStoreId()
const = 0;
247 virtual LicenseFeature feature(
const std::string &featureCode)
const = 0;
251 virtual std::vector<LicenseFeature> features()
const = 0;
255 virtual std::vector<CustomField> customFields()
const = 0;
260 virtual const std::vector<CustomField> &userData()
const = 0;
266 virtual std::string userData(
const std::string &key)
const = 0;
276 virtual void addUserData(
const CustomField &data,
bool saveLicense =
true) = 0;
283 virtual void removeUserData(
284 const std::string &key = std::string(),
bool saveLicense =
true) = 0;
288 virtual int32_t totalConsumption()
const = 0;
292 virtual int32_t maxConsumption()
const = 0;
297 virtual int32_t maxOverages()
const = 0;
301 virtual bool isOveragesAllowed()
const = 0;
305 virtual bool isUnlimitedConsumptionAllowed()
const = 0;
309 virtual bool isNegativeConsumptionAllowed()
const = 0;
317 virtual bool isResetConsumptionEnabled()
const = 0;
321 virtual uint32_t timesActivated()
const = 0;
325 virtual uint32_t maxActivations()
const = 0;
329 virtual uint32_t transferCount()
const = 0;
334 virtual int32_t transferLimit()
const = 0;
338 virtual bool isDeviceTransferAllowed()
const = 0;
342 virtual bool isDeviceTransferLimited()
const = 0;
348 virtual bool isAutoReleaseSet()
const = 0;
353 virtual void setAutoRelease(
bool autoRelease) = 0;
361 virtual void updateConsumption(int32_t value = 1,
bool saveLicense =
true) = 0;
370 virtual void updateFeatureConsumption(
371 const std::string &featureCode, int32_t value = 1,
bool saveLicense =
true) = 0;
377 virtual bool isExpired()
const = 0;
382 virtual bool isMaintenancePeriodExpired()
const = 0;
387 virtual int daysRemainingUtc()
const = 0;
393 virtual int daysRemaining()
const = 0;
397 virtual int maintenanceDaysRemaining()
const = 0;
405 virtual int daysPassedSinceLastCheck()
const = 0;
417 virtual void localCheck(
bool verifySignature =
false) = 0;
437 virtual bool deactivate(
bool removeLocalData =
false) = 0;
443 virtual bool changePassword(
444 const std::string &password,
const std::string &newPassword) = 0;
465 bool includeExpiredFeatures =
false) = 0;
485 virtual bool syncConsumption(int32_t requestOverage = -1) = 0;
506 virtual bool syncFeatureConsumption(
const std::string &featureCode = std::string()) = 0;
519 virtual void addDeviceVariable(
520 const std::string &name,
const std::string &value,
bool saveLicense =
true) = 0;
529 virtual void addDeviceVariable(
const DeviceVariable &variable,
bool saveLicense =
true) = 0;
534 virtual void addDeviceVariables(
const std::vector<DeviceVariable> &variables) = 0;
545 virtual bool sendDeviceVariables() = 0;
557 virtual std::vector<DeviceVariable> getDeviceVariables(
bool getFromBackend =
false) = 0;
562 virtual DeviceVariable deviceVariable(
const std::string &name)
const = 0;
567 virtual const std::string &deviceVariableValue(
const std::string &name)
const = 0;
581 virtual void resumeLicenseWatchdog() = 0;
585 virtual void stopLicenseWatchdog() = 0;
598 virtual void resumeFeatureWatchdog() = 0;
602 virtual void stopFeatureWatchdog() = 0;
610 virtual void registerFloatingLicense() = 0;
622 virtual void releaseFloatingLicense(
bool throwExceptions =
false) = 0;
637 virtual void borrow(uint32_t hours, uint32_t days = 0) = 0;
652 virtual void borrow(
const std::string &borrowEndDateTime = std::string()) = 0;
659 virtual std::wstring deactivateOffline(
660 const std::wstring &deactivationRequestFile = std::wstring()) = 0;
673 virtual bool updateOffline(
const std::wstring &path,
bool resetConsumption =
false) = 0;
681 virtual void unlinkFromDevice() = 0;
686 virtual std::string getAirGapDeactivationCode(
const std::string &initializationCode) = 0;
692 virtual void deactivateAirGap(
const std::string &confirmationCode) = 0;
696 virtual bool isLicenseBelongsToThisDevice(
DeviceIDAlgorithm deviceIDAlgorithm) = 0;
699 virtual bool checkLicenseBelongsToThisDevice() = 0;
707 virtual void registerFloatingFeature(
708 const std::string &featureCode,
bool addToWatchdog =
true) = 0;
717 virtual void releaseFloatingFeature(
const std::string &featureCode) = 0;
723 const tm &dateTime,
const std::string &format = std::string(
"%d-%m-%Y"));
727 #pragma pop_macro("check")
733 #endif // LS_LICENSE_H