13#include "enrollment/Export.h"
28 using inno_ICSTemplateBuilder = void (*)(
void*,
const inno_Template&, ErrorCallbacks);
29 INNO_ENROLLMENT_API
void inno_local_DeserializeModalitiesICSTemplate(
const unsigned char* serializedData,
30 size_t serializedDataSize,
31 inno_ICSTemplateBuilder printFactory,
33 inno_ICSTemplateBuilder faceFactory,
35 inno_ICSTemplateBuilder irisFactory,
37 ErrorCallbacks errorCallbacks);
50 [[nodiscard]] std::vector<std::shared_ptr<FaceTemplate>>
GetFaceTemplates()
const
58 [[nodiscard]] std::vector<std::shared_ptr<IrisTemplate>>
GetIrisTemplates()
const
66 [[nodiscard]] std::vector<std::shared_ptr<ICSTemplate>>
GetICSTemplates()
const
76 auto ft = inno_Template::FromTemplates(fs);
77 auto it = inno_Template::FromTemplates(is);
78 auto pt = inno_Template::FromTemplates(ps);
80 std::vector<uint8_t> userRecord;
81 auto userRecordAllocator = +[](
void* container,
size_t length) -> uint8_t*
87 std::vector<uint8_t>& vec = *
static_cast<std::vector<uint8_t>*
>(container);
93 exec->CreateUserRecord(log,
122 explicit ModalitiesICSTemplate(std::vector<uint8_t> data, std::shared_ptr<MultiModalityExecutor> executor)
123 : exec(std::move(executor))
125 auto printBuilder = +[](
void* container,
const inno_Template& tmpl, ErrorCallbacks err) ->
void
127 ForwardExceptionToCallbacks(err,
130 auto* printContainer =
131 static_cast<std::vector<std::shared_ptr<ICSTemplate>
>*>(container);
132 printContainer->push_back(inno_Template::ToICSTemplate(tmpl));
135 auto faceBuilder = +[](
void* container,
const inno_Template& tmpl, ErrorCallbacks err) ->
void
137 ForwardExceptionToCallbacks(err,
140 auto* faceContainer =
141 static_cast<std::vector<std::shared_ptr<FaceTemplate>
>*>(container);
142 faceContainer->push_back(inno_Template::ToFaceTemplate(tmpl));
145 auto irisBuilder = +[](
void* container,
const inno_Template& tmpl, ErrorCallbacks err) ->
void
147 ForwardExceptionToCallbacks(err,
150 auto* irisContainer =
151 static_cast<std::vector<std::shared_ptr<IrisTemplate>
>*>(container);
152 irisContainer->push_back(inno_Template::ToIrisTemplate(tmpl));
156 inno_local_DeserializeModalitiesICSTemplate(
157 data.data(), data.size(), printBuilder, &ps, faceBuilder, &fs, irisBuilder, &is, ThrowOnError{});
168 std::vector<std::shared_ptr<FaceTemplate>> faceTemplates,
169 std::vector<std::shared_ptr<IrisTemplate>> irisTemplates)
171 std::move(faceTemplates),
172 std::move(irisTemplates),
185 std::vector<std::shared_ptr<FaceTemplate>> faceTemplates,
186 std::vector<std::shared_ptr<IrisTemplate>> irisTemplates,
187 std::shared_ptr<MultiModalityExecutor> executor)
188 : exec(std::move(executor))
189 , ps(std::move(icsTemplates))
190 , fs(std::move(faceTemplates))
191 , is(std::move(irisTemplates))
210 bool operator!=(
const ModalitiesICSTemplate& right)
const
212 return !((*this) == right);
216 std::shared_ptr<MultiModalityExecutor> exec;
217 std::vector<std::shared_ptr<ICSTemplate>> ps;
218 std::vector<std::shared_ptr<FaceTemplate>> fs;
219 std::vector<std::shared_ptr<IrisTemplate>> is;
static std::shared_ptr< Logger > Get()
Provides current logger.
Definition Logger.h:281
Holds instance of MultiModalityExecutor.
Definition MultiModalityExecutor.h:434
Applicant template in ICS format used for biometric operations.
Definition ModalitiesICSTemplate.h:43
ModalitiesICSTemplate(std::vector< uint8_t > data)
Create ModalitiesICSTemplate object It uses default executor.
Definition ModalitiesICSTemplate.h:111
std::vector< uint8_t > GetModalitiesICSTemplateData() const
It provides ICS template data.
Definition ModalitiesICSTemplate.h:73
ModalitiesICSTemplate(std::vector< uint8_t > data, std::shared_ptr< MultiModalityExecutor > executor)
Create ModalitiesICSTemplate object.
Definition ModalitiesICSTemplate.h:121
std::vector< std::shared_ptr< FaceTemplate > > GetFaceTemplates() const
Provides FaceTemplate objects.
Definition ModalitiesICSTemplate.h:49
ModalitiesICSTemplate(std::vector< std::shared_ptr< ICSTemplate > > icsTemplates, std::vector< std::shared_ptr< FaceTemplate > > faceTemplates, std::vector< std::shared_ptr< IrisTemplate > > irisTemplates, std::shared_ptr< MultiModalityExecutor > executor)
Create ModalitiesICSTemplate object.
Definition ModalitiesICSTemplate.h:183
ModalitiesICSTemplate(std::vector< std::shared_ptr< ICSTemplate > > icsTemplates, std::vector< std::shared_ptr< FaceTemplate > > faceTemplates, std::vector< std::shared_ptr< IrisTemplate > > irisTemplates)
Create ModalitiesICSTemplate object It uses default executor.
Definition ModalitiesICSTemplate.h:166
std::vector< std::shared_ptr< ICSTemplate > > GetICSTemplates() const
Provides PrintTemplate objects.
Definition ModalitiesICSTemplate.h:65
std::vector< std::shared_ptr< IrisTemplate > > GetIrisTemplates() const
Provides IrisTemplate objects.
Definition ModalitiesICSTemplate.h:57
void WriteTo(Writer &w) const override
Write itself into writer.
Definition ModalitiesICSTemplate.h:194
Provides interface for serialization of all classes.
Definition Writer.h:164
void WriteArray(const char *name, const std::vector< uint8_t > &value)
Serialize bytes from vector.
Definition Writer.h:233