11#include "enrollment/Export.h"
23 INNO_ENROLLMENT_API
void inno_InitializerConfig_GetLicenseContent(
void* impl,
24 uint8_t* (*allocator)(
void*,
size_t),
26 ErrorCallbacks errorCallbacks);
27 INNO_ENROLLMENT_API
void inno_InitializerConfig_GetModelsPath(
void* impl,
28 char* (*allocator)(
void*,
size_t),
30 ErrorCallbacks errorCallbacks);
31 INNO_ENROLLMENT_API
int inno_InitializerConfig_GetFaceIrisOpencvThreads(
void* impl,
32 ErrorCallbacks errorCallbacks);
33 INNO_ENROLLMENT_API
int inno_InitializerConfig_GetFaceIrisOrtIntraThreads(
void* impl,
34 ErrorCallbacks errorCallbacks);
35 INNO_ENROLLMENT_API
int inno_InitializerConfig_GetFaceIrisOrtInterThreads(
void* impl,
36 ErrorCallbacks errorCallbacks);
50 struct InitializerConfig
58 std::vector<uint8_t> content;
59 impl::inno_InitializerConfig_GetLicenseContent(
61 +[](
void* container,
size_t size) -> uint8_t*
63 auto* data = static_cast<std::vector<uint8_t>*>(container);
79 impl::inno_InitializerConfig_GetModelsPath(
81 +[](
void* container,
size_t size) ->
char*
83 auto* data = static_cast<std::string*>(container);
98 return impl::inno_InitializerConfig_GetFaceIrisOpencvThreads(impl.get(), ThrowOnError{});
107 return impl::inno_InitializerConfig_GetFaceIrisOrtIntraThreads(impl.get(), ThrowOnError{});
116 return impl::inno_InitializerConfig_GetFaceIrisOrtInterThreads(impl.get(), ThrowOnError{});
134 std::unique_ptr<void, void (*)(
void*)> impl;
137 inline void* GetInitializerConfigPimpl(
const InitializerConfig& obj)
139 return obj.impl.get();
146 INNO_ENROLLMENT_API
void inno_InitializerConfigBuilder_UseAllAvailableCores(
void* impl,
147 ErrorCallbacks errorCallbacks);
148 INNO_ENROLLMENT_API
void inno_InitializerConfigBuilder_UseSingleCore(
void* impl,
149 ErrorCallbacks errorCallbacks);
150 INNO_ENROLLMENT_API
void inno_InitializerConfigBuilder_SetLicenseContent(
void* impl,
153 ErrorCallbacks errorCallbacks);
154 INNO_ENROLLMENT_API
void inno_InitializerConfigBuilder_SetLicensePath(
void* impl,
157 ErrorCallbacks errorCallbacks);
158 INNO_ENROLLMENT_API
void inno_InitializerConfigBuilder_SetModelsPath(
void* impl,
161 ErrorCallbacks errorCallbacks);
162 INNO_ENROLLMENT_API
void inno_InitializerConfigBuilder_SetFaceIrisOpencvThreads(
165 ErrorCallbacks errorCallbacks);
166 INNO_ENROLLMENT_API
void inno_InitializerConfigBuilder_SetFaceIrisOrtIntraThreads(
169 ErrorCallbacks errorCallbacks);
170 INNO_ENROLLMENT_API
void inno_InitializerConfigBuilder_SetFaceIrisOrtInterThreads(
173 ErrorCallbacks errorCallbacks);
174 INNO_ENROLLMENT_API
void* inno_InitializerConfigBuilder_Build(
void* impl,
175 void (**deleter)(
void*),
176 ErrorCallbacks errorCallbacks);
177 INNO_ENROLLMENT_API
void* inno_InitializerConfigBuilder_Create(
void (**deleter)(
void*),
178 ErrorCallbacks errorCallbacks);
190 class InitializerConfigBuilder
199 impl::inno_InitializerConfigBuilder_UseAllAvailableCores(impl.get(), ThrowOnError{});
209 impl::inno_InitializerConfigBuilder_UseSingleCore(impl.get(), ThrowOnError{});
220 impl::inno_InitializerConfigBuilder_SetLicenseContent(
221 impl.get(), content.data(), content.size(), ThrowOnError{});
232 impl::inno_InitializerConfigBuilder_SetLicensePath(impl.get(), path.data(), path.size(), ThrowOnError{});
243 impl::inno_InitializerConfigBuilder_SetModelsPath(impl.get(), path.data(), path.size(), ThrowOnError{});
254 impl::inno_InitializerConfigBuilder_SetFaceIrisOpencvThreads(impl.get(), count, ThrowOnError{});
265 impl::inno_InitializerConfigBuilder_SetFaceIrisOrtIntraThreads(impl.get(), count, ThrowOnError{});
276 impl::inno_InitializerConfigBuilder_SetFaceIrisOrtInterThreads(impl.get(), count, ThrowOnError{});
291 void (*deleter)(
void*) =
nullptr;
292 auto* cfgImpl = impl::inno_InitializerConfigBuilder_Build(impl.get(), &deleter, ThrowOnError{});
294 return { cfgImpl, deleter };
301 InitializerConfigBuilder(
const InitializerConfigBuilder&) =
delete;
302 InitializerConfigBuilder& operator=(
const InitializerConfigBuilder&) =
delete;
303 InitializerConfigBuilder(InitializerConfigBuilder&&) noexcept = default;
304 InitializerConfigBuilder& operator=(InitializerConfigBuilder&&) noexcept = default;
305 ~InitializerConfigBuilder() = default;
308 std::unique_ptr<
void,
void (*)(
void*)> impl;
310 static std::unique_ptr<
void,
void (*)(
void*)> Create()
312 void (*deleter)(
void*) =
nullptr;
313 auto* p = impl::inno_InitializerConfigBuilder_Create(&deleter, ThrowOnError{});
314 return { p, deleter };
Fluent builder for InitializerConfig.
Definition InitializerConfig.h:190
InitializerConfigBuilder & SetFaceIrisOpencvThreads(int count)
Sets the OpenCV thread count for face and iris processing.
Definition InitializerConfig.h:251
InitializerConfigBuilder & SetModelsPath(std::string path)
Sets the IFace models directory path.
Definition InitializerConfig.h:240
InitializerConfigBuilder & SetLicensePath(const std::string &path)
Sets license content from given license file.
Definition InitializerConfig.h:229
InitializerConfigBuilder & UseAllAvailableCores()
Use all available CPU cores for each face/iris thread pool.
Definition InitializerConfig.h:196
InitializerConfigBuilder & SetFaceIrisOrtIntraThreads(int count)
Sets the ONNX Runtime intra-op thread count for face and iris processing.
Definition InitializerConfig.h:262
InitializerConfigBuilder & UseSingleCore()
Limit each face/iris thread pool to a single thread.
Definition InitializerConfig.h:206
InitializerConfigBuilder & SetLicenseContent(std::vector< uint8_t > content)
Sets embedded license bytes.
Definition InitializerConfig.h:217
InitializerConfig Build()
Builds and returns the configuration.
Definition InitializerConfig.h:288
InitializerConfigBuilder & SetFaceIrisOrtInterThreads(int count)
Sets the ONNX Runtime inter-op thread count for face and iris processing.
Definition InitializerConfig.h:273
SDK initialisation configuration for manual init.
Definition InitializerConfig.h:50
int GetFaceIrisOrtInterThreads() const
Returns the configured ONNX Runtime inter-op thread count for face and iris processing.
Definition InitializerConfig.h:113
int GetFaceIrisOrtIntraThreads() const
Returns the configured ONNX Runtime intra-op thread count for face and iris processing.
Definition InitializerConfig.h:104
int GetFaceIrisOpencvThreads() const
Returns the configured OpenCV thread count for face and iris processing.
Definition InitializerConfig.h:95
std::string GetModelsPath() const
Returns the IFace models directory path.
Definition InitializerConfig.h:75
std::vector< uint8_t > GetLicenseContent() const
Returns license content.
Definition InitializerConfig.h:55