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;
418 virtual void localCheck(
bool verifySignature =
false) = 0;
439 virtual bool deactivate(
bool removeLocalData =
false) = 0;
445 virtual bool changePassword(
446 const std::string &password,
const std::string &newPassword) = 0;
468 bool includeExpiredFeatures =
false) = 0;
489 virtual bool syncConsumption(int32_t requestOverage = -1) = 0;
511 virtual bool syncFeatureConsumption(
const std::string &featureCode = std::string()) = 0;
524 virtual void addDeviceVariable(
525 const std::string &name,
const std::string &value,
bool saveLicense =
true) = 0;
534 virtual void addDeviceVariable(
const DeviceVariable &variable,
bool saveLicense =
true) = 0;
539 virtual void addDeviceVariables(
const std::vector<DeviceVariable> &variables) = 0;
551 virtual bool sendDeviceVariables() = 0;
564 virtual std::vector<DeviceVariable> getDeviceVariables(
bool getFromBackend =
false) = 0;
569 virtual DeviceVariable deviceVariable(
const std::string &name)
const = 0;
574 virtual const std::string &deviceVariableValue(
const std::string &name)
const = 0;
588 virtual void resumeLicenseWatchdog() = 0;
592 virtual void stopLicenseWatchdog() = 0;
605 virtual void resumeFeatureWatchdog() = 0;
609 virtual void stopFeatureWatchdog() = 0;
617 virtual void registerFloatingLicense() = 0;
630 virtual void releaseFloatingLicense(
bool throwExceptions =
false) = 0;
648 virtual void borrow(uint32_t hours, uint32_t days = 0,
const std::string &password = std::string()) = 0;
664 virtual void borrow(
const std::string &borrowEndDateTime = std::string(),
const std::string &password = std::string()) = 0;
671 virtual std::wstring deactivateOffline(
672 const std::wstring &deactivationRequestFile = std::wstring()) = 0;
685 virtual bool updateOffline(
const std::wstring &path,
bool resetConsumption =
false) = 0;
693 virtual void unlinkFromDevice() = 0;
698 virtual std::string getAirGapDeactivationCode(
const std::string &initializationCode) = 0;
704 virtual void deactivateAirGap(
const std::string &confirmationCode) = 0;
708 virtual bool isLicenseBelongsToThisDevice(
DeviceIDAlgorithm deviceIDAlgorithm) = 0;
711 virtual bool checkLicenseBelongsToThisDevice() = 0;
720 virtual void registerFloatingFeature(
721 const std::string &featureCode,
bool addToWatchdog =
true) = 0;
731 virtual void releaseFloatingFeature(
const std::string &featureCode) = 0;
737 const tm &dateTime,
const std::string &format = std::string(
"%d-%m-%Y"));
741 #pragma pop_macro("check")
747 #endif // LS_LICENSE_H