You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

94 lines
3.2 KiB

#pragma once
#include "IObject.h"
#include <fsdk/FSDKError.h>
namespace fsdk {
#ifndef DOXYGEN_SHOULD_SKIP_THIS
DECLARE_SMARTPTR(ILicense);
#endif
/**
* @brief License features.
*/
enum class LicenseFeature : uint32_t {
Detection = 1,
BestShot = 2,
Attributes = 3,
Emotions = 4,
FaceFeatures = 5,
Liveness = 6,
Descriptor = 7,
DescriptorIndex = 8,
LivenessEngine = 9,
TrackEngine = 10,
HumanDetection = 11,
PPEDetection = 17,
MobileLiveness = 18,
MedicalMaskDetection = 19,
ReIdDescriptor = 20,
ISOCheck = 21
};
/**
* @brief License objects interface.
* @note Use License objects to adopt FaceEngine functionality.
* */
struct ILicense : IRefCounted {
/**
* @brief Checks if the feature with featureId is available in this license.
* @param [in] feature LicenseFeature type.
* @return ResultValue with error code and true if feature is available, false if there is no such feature in this
* license or feature is expired or license was not activated.
* @see LicenseFeature, ResultValue and FSDKError for details.
*/
virtual ResultValue<FSDKError, bool> checkFeatureId(LicenseFeature feature) const noexcept = 0;
/**
* @brief Checks if current license object is activated and could be used by FaceEngine.
* @return ResultValue with error code and true if object is activated.
* @see ResultValue and FSDKError for details.
* @note License object which was not activated could not be used because all features are disabled by default.
*/
virtual ResultValue<FSDKError, bool> isActivated() const noexcept = 0;
/**
* @brief Loads license from file.
* @param [in] path path to the file.
* @return Result with error code.
* @see Result and FSDKError for details.
*/
virtual Result<FSDKError>
FSDK_DEPRECATED("loadFromFile is deprecated since v.5.5.0,"
" Use loadFromFile(const char* path, const ISettingsProvider* settings) instead")
loadFromFile(const char* path) noexcept = 0;
/**
* @brief Loads license from file.
* @param [in] path path to the file.
* @param [in] settings License settings provider.
* @return Result with error code.
* @see ISettingsProvider, Result and FSDKError for details.
*/
virtual Result<FSDKError> loadFromFile(const char* path, const ISettingsProvider* settings) noexcept = 0;
/**
* @brief Saves license as raw format to the file. This file could be used in the next run of the application.
* @param [in] path path to the file.
* @return Result with error code.
* @see Result and FSDKError for details.
*/
virtual Result<FSDKError> saveToFile(const char * path) const noexcept = 0;
/**
* @brief Gets license expiration date.
* @param [in] feature LicenseFeature type.
* @return ResultValue with error code and uint32_t Unix Timestamp.
* @see LicenseFeature, ResultValue and FSDKError for details.
* @note License settings should be set before using this method!
* @note License should be activated before calling this method!
*/
virtual ResultValue<FSDKError, uint32_t> getExpirationDate(LicenseFeature feature) const noexcept = 0;
};
}