|
#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;
|
|
};
|
|
}
|