6 #pragma warning( push )
7 #pragma warning( disable : 4251 )
23 #pragma push_macro("check") // Workaround for Unreal Engine
36 using ptr_t = std::shared_ptr<License>;
47 virtual const std::string& key()
const = 0;
51 virtual const std::string& user()
const = 0;
55 virtual const uint64_t serverId()
const = 0;
78 virtual std::string status()
const = 0;
82 virtual bool isActive()
const = 0;
86 virtual bool isEnabled()
const = 0;
90 virtual bool isValid()
const = 0;
94 virtual bool isTrial()
const = 0;
98 virtual bool isAirGapped()
const = 0;
103 virtual uint32_t policyId()
const = 0;
107 virtual bool isOfflineActivated()
const = 0;
112 virtual bool isVMAllowed()
const = 0;
116 virtual bool isFloating()
const = 0;
121 virtual bool isBorrowed()
const = 0;
126 virtual bool isSubscriptionGracePeriodStarted()
const = 0;
130 virtual bool isGracePeriodStarted()
const = 0;
134 virtual tm gracePeriodEndDateTime()
const = 0;
138 virtual tm gracePeriodEndDateTimeUTC()
const = 0;
142 virtual int gracePeriodHoursRemaining()
const = 0;
147 virtual uint32_t trialPeriod()
const = 0;
152 virtual uint32_t maxFloatingUsers()
const = 0;
158 virtual uint32_t floatingInUseCount()
const = 0;
162 virtual uint32_t floatingTimeout()
const = 0;
167 virtual const std::string& floatingClientId()
const = 0;
171 virtual tm validityPeriod()
const = 0;
175 virtual tm validityPeriodUtc()
const = 0;
180 virtual tm validityWithGracePeriod()
const = 0;
185 virtual tm validityWithGracePeriodUtc()
const = 0;
190 virtual uint32_t subscriptionGracePeriod()
const = 0;
195 virtual uint32_t maxBorrowTime()
const = 0;
199 virtual tm maintenancePeriod()
const = 0;
203 virtual tm maintenancePeriodUtc()
const = 0;
207 virtual tm lastCheckDate()
const = 0;
211 virtual tm lastCheckDateUtc()
const = 0;
216 virtual tm floatingEndDateTime()
const = 0;
221 virtual tm floatingEndDateTimeUtc()
const = 0;
226 virtual const std::string& startDate()
const = 0;
230 virtual const std::string& metadata()
const = 0;
234 virtual const std::string& orderStoreId()
const = 0;
240 virtual LicenseFeature feature(
const std::string& featureCode )
const = 0;
244 virtual std::vector<LicenseFeature> features()
const = 0;
248 virtual std::vector<CustomField> customFields()
const = 0;
253 virtual const std::vector<CustomField>& userData()
const = 0;
259 virtual std::string userData(
const std::string& key )
const = 0;
266 virtual void addUserData(
const CustomField& data,
bool saveLicense =
true ) = 0;
271 virtual void removeUserData(
const std::string& key = std::string(),
bool saveLicense =
true ) = 0;
275 virtual int32_t totalConsumption()
const = 0;
279 virtual int32_t maxConsumption()
const = 0;
283 virtual int32_t maxOverages()
const = 0;
287 virtual bool isOveragesAllowed()
const = 0;
291 virtual bool isUnlimitedConsumptionAllowed()
const = 0;
295 virtual bool isNegativeConsumptionAllowed()
const = 0;
303 virtual bool isResetConsumptionEnabled()
const = 0;
307 virtual uint32_t timesActivated()
const = 0;
311 virtual uint32_t maxActivations()
const = 0;
315 virtual uint32_t transferCount()
const = 0;
319 virtual int32_t transferLimit()
const = 0;
323 virtual bool isDeviceTransferAllowed()
const = 0;
327 virtual bool isDeviceTransferLimited()
const = 0;
332 virtual bool isAutoReleaseSet()
const = 0;
336 virtual void setAutoRelease(
bool autoRelease ) = 0;
343 virtual void updateConsumption( int32_t value = 1,
bool saveLicense =
true ) = 0;
351 virtual void updateFeatureConsumption(
const std::string& featureCode, int32_t value = 1,
bool saveLicense =
true ) = 0;
357 virtual bool isExpired()
const = 0;
361 virtual bool isMaintenancePeriodExpired()
const = 0;
366 virtual int daysRemainingUtc()
const = 0;
371 virtual int daysRemaining()
const = 0;
375 virtual int maintenanceDaysRemaining()
const = 0;
383 virtual int daysPassedSinceLastCheck()
const = 0;
395 virtual void localCheck(
bool verifySignature =
false ) = 0;
412 virtual bool deactivate(
bool removeLocalData =
false ) = 0;
418 virtual bool changePassword(
const std::string& password,
const std::string& newPassword ) = 0;
448 virtual bool syncConsumption( int32_t requestOverage = -1 ) = 0;
463 virtual bool syncFeatureConsumption(
const std::string& featureCode = std::string() ) = 0;
474 virtual void addDeviceVariable(
const std::string& name,
const std::string& value,
475 bool saveLicense =
true ) = 0;
483 virtual void addDeviceVariable(
const DeviceVariable& variable,
bool saveLicense =
true ) = 0;
488 virtual void addDeviceVariables(
const std::vector<DeviceVariable>& variables ) = 0;
497 virtual bool sendDeviceVariables() = 0;
507 virtual std::vector<DeviceVariable> getDeviceVariables(
bool getFromBackend =
false ) = 0;
512 virtual DeviceVariable deviceVariable(
const std::string& name )
const = 0;
517 virtual const std::string& deviceVariableValue(
const std::string& name )
const = 0;
529 virtual void resumeLicenseWatchdog() = 0;
533 virtual void stopLicenseWatchdog() = 0;
544 virtual void resumeFeatureWatchdog() = 0;
548 virtual void stopFeatureWatchdog() = 0;
555 virtual void registerFloatingLicense() = 0;
565 virtual void releaseFloatingLicense(
bool throwExceptions =
false ) = 0;
578 virtual void borrow( uint32_t hours, uint32_t days = 0 ) = 0;
590 virtual void borrow(
const std::string& borrowEndDateTime = std::string() ) = 0;
595 virtual std::wstring deactivateOffline(
const std::wstring& deactivationRequestFile = std::wstring() ) = 0;
605 virtual bool updateOffline(
const std::wstring& path,
bool resetConsumption =
false ) = 0;
611 virtual void unlinkFromDevice() = 0;
616 virtual std::string getAirGapDeactivationCode(
const std::string& initializationCode ) = 0;
621 virtual void deactivateAirGap(
const std::string& confirmationCode ) = 0;
625 virtual bool isLicenseBelongsToThisDevice(
DeviceIDAlgorithm deviceIDAlgorithm ) = 0;
628 virtual bool checkLicenseBelongsToThisDevice() = 0;
635 virtual void registerFloatingFeature(
const std::string& featureCode,
bool addToWatchdog =
true ) = 0;
643 virtual void releaseFloatingFeature(
const std::string& featureCode ) = 0;
647 std::string
LS_API TmToString(
const tm& dateTime,
const std::string& format = std::string(
"%d-%m-%Y" ) );
651 #pragma pop_macro("check")
654 #pragma warning( pop )
657 #endif // LS_LICENSE_H