Enrollment 28.2.0
Loading...
Searching...
No Matches
ExtractedPrintEmbedding.h
Go to the documentation of this file.
1
9
10#pragma once
11
12#include "enrollment/Export.h"
17#include <mutex>
18
19// cppcoreguidelines-non-private-member-variables-in-classes,misc-non-private-member-variables-in-classes: This is not a
20// problem because we are using them only as read only.
21// cppcoreguidelines-avoid-const-or-ref-data-members: We design te API with const member variables instead of
22// implementing getter methods. This is nicely transformed in C# to properties. Usually our objects are immutable by
23// intention to have no problem in multithreaded applications.
24// NOLINTBEGIN(cppcoreguidelines-non-private-member-variables-in-classes,misc-non-private-member-variables-in-classes,cppcoreguidelines-avoid-const-or-ref-data-members)
25namespace inno
26{
30 */
32 {
33 public:
35 const std::shared_ptr<Print> print;
36
44 */
45 ExtractedPrintEmbedding(const std::vector<uint8_t>& serializedTmpl, std::shared_ptr<Print> fp)
46 : EmbeddingTemplate(serializedTmpl, GetSafePrintPosition(fp))
47 , print(std::move(fp))
48 {
49 }
50
59 */
60 ExtractedPrintEmbedding(const std::vector<uint8_t>& tmpl,
61 std::shared_ptr<Print> fp,
62 std::shared_ptr<PrintExecutor> executor)
63 : EmbeddingTemplate(tmpl, GetSafePrintPosition(fp), std::move(executor))
64 , print(std::move(fp))
65 {
66 }
67
75 */
76 ExtractedPrintEmbedding(std::vector<uint8_t>&& tmpl, std::shared_ptr<Print> fp)
77 : EmbeddingTemplate(std::move(tmpl), GetSafePrintPosition(fp))
78 , print(std::move(fp))
79 {
80 }
81
90 */
91 ExtractedPrintEmbedding(std::vector<uint8_t>&& tmpl,
92 std::shared_ptr<Print> fp,
93 std::shared_ptr<PrintExecutor> executor)
94 : EmbeddingTemplate(std::move(tmpl), GetSafePrintPosition(fp), std::move(executor))
95 , print(std::move(fp))
96 {
97 }
99 void WriteTo(Writer& w) const final
100 {
101 w.Write("p", print);
103 }
104
107 ExtractedPrintEmbedding& operator=(const ExtractedPrintEmbedding&) = delete;
109 ExtractedPrintEmbedding() = delete;
110 virtual ~ExtractedPrintEmbedding() = default;
111
112 private:
113 static PrintPosition GetSafePrintPosition(const std::shared_ptr<Print>& p)
114 {
115 if (p == nullptr)
116 {
117 throw EnrollmentRuntimeException("Print cannot be null in ExtractedPrint");
118 }
119
120 return p->position;
121 }
122 };
123} // namespace inno
124// NOLINTEND(cppcoreguidelines-non-private-member-variables-in-classes,misc-non-private-member-variables-in-classes,cppcoreguidelines-avoid-const-or-ref-data-members)
EmbeddingTemplate(std::vector< uint8_t > &&d)
Create EmbeddingTemplate object.
Definition EmbeddingTemplate.h:103
void WriteTo(Writer &w) const override
Write itself into writer.
Definition EmbeddingTemplate.h:265
Base exception for all enrollment-sdk runtime exceptions.
Definition EnrollmentException.h:84
Print template in proprietary embedding format used for biometric operations with Print that was extr...
Definition ExtractedPrintEmbedding.h:31
ExtractedPrintEmbedding(const std::vector< uint8_t > &tmpl, std::shared_ptr< Print > fp, std::shared_ptr< PrintExecutor > executor)
Create ExtractedPrintEmbedding object .
Definition ExtractedPrintEmbedding.h:59
ExtractedPrintEmbedding(std::vector< uint8_t > &&tmpl, std::shared_ptr< Print > fp, std::shared_ptr< PrintExecutor > executor)
Create ExtractedPrintEmbedding object .
Definition ExtractedPrintEmbedding.h:90
ExtractedPrintEmbedding(std::vector< uint8_t > &&tmpl, std::shared_ptr< Print > fp)
Create ExtractedPrintEmbedding object .
Definition ExtractedPrintEmbedding.h:75
ExtractedPrintEmbedding(const std::vector< uint8_t > &serializedTmpl, std::shared_ptr< Print > fp)
Create ExtractedPrintEmbedding object .
Definition ExtractedPrintEmbedding.h:44
void WriteTo(Writer &w) const final
Write itself into writer.
Definition ExtractedPrintEmbedding.h:98
const std::shared_ptr< Print > print
Print that was extracted.
Definition ExtractedPrintEmbedding.h:34
Provides interface for serialization of all classes.
Definition Writer.h:164
PrintPosition
It is position of finger on hands.
Definition PrintPosition.h:29