Enrollment 28.2.0
Loading...
Searching...
No Matches
PrintAttributes.h
Go to the documentation of this file.
1
9
10#pragma once
11#include "enrollment/Export.h"
17#include <mutex>
18#include <ostream>
19
20namespace inno
21{
22
33 */
34 class PrintAttributes : public Serializable
35 {
36 public:
40 */
41 void WriteTo(Writer& writer) const final
42 {
43 const std::scoped_lock lock(printAttributeMutex);
44
45 writer.Write("i", static_cast<unsigned int>(impression));
46 writer.Write("c", static_cast<unsigned int>(captureDeviceTechnology));
47 writer.Write("v", static_cast<unsigned int>(captureDeviceVendor));
48 writer.Write("t", static_cast<unsigned int>(captureDeviceType));
49 writer.Write("f", static_cast<int>(certificationFlag));
50 }
54 PrintAttributes() = default;
55
59 */
61 : impression(pa.GetImpression())
62 , captureDeviceTechnology(pa.GetCaptureDeviceTechnology())
63 , captureDeviceVendor(pa.GetCaptureDeviceVendorID())
64 , captureDeviceType(pa.GetCaptureDeviceTypeID())
65 , certificationFlag(pa.GetCertificationFlag())
66 {
67 }
68
72 */
73 PrintAttributes(PrintAttributes&& pa) noexcept
74 : impression(pa.GetImpression())
75 , captureDeviceTechnology(pa.GetCaptureDeviceTechnology())
76 , captureDeviceVendor(pa.GetCaptureDeviceVendorID())
77 , captureDeviceType(pa.GetCaptureDeviceTypeID())
78 , certificationFlag(pa.GetCertificationFlag())
79 {
80 }
81
86 */
88 {
89 // Checks for self-assignment of operator.
90 if (&pa == this)
91 {
92 return *this;
93 }
94
95 const std::scoped_lock lock(printAttributeMutex, pa.printAttributeMutex);
96
97 impression = pa.impression;
98 captureDeviceTechnology = pa.captureDeviceTechnology;
99 captureDeviceVendor = pa.captureDeviceVendor;
100 captureDeviceType = pa.captureDeviceType;
101 certificationFlag = pa.certificationFlag;
102
103 return *this;
104 }
105
110 */
112 {
113 const std::scoped_lock lock(printAttributeMutex, pa.printAttributeMutex);
114
115 impression = pa.impression;
116 captureDeviceTechnology = pa.captureDeviceTechnology;
117 captureDeviceVendor = pa.captureDeviceVendor;
118 captureDeviceType = pa.captureDeviceType;
119 certificationFlag = pa.certificationFlag;
120
121 return *this;
122 }
123
124 virtual ~PrintAttributes() = default;
125
131 */
132 constexpr bool operator==(const PrintAttributes& pa) const
133 {
134 return impression == pa.impression && captureDeviceTechnology == pa.captureDeviceTechnology &&
135 captureDeviceVendor == pa.captureDeviceVendor && captureDeviceType == pa.captureDeviceType &&
136 certificationFlag == pa.certificationFlag;
137 }
138
142 */
144 {
145 const std::scoped_lock lock(printAttributeMutex);
146 impression = imp;
147 }
148
152 */
153 [[nodiscard]] PrintImpression GetImpression() const
154 {
155 const std::scoped_lock lock(printAttributeMutex);
156 return impression;
157 }
158
162 */
164 {
165 const std::scoped_lock lock(printAttributeMutex);
166 captureDeviceTechnology = technology;
167 }
168
172 */
174 {
175 const std::scoped_lock lock(printAttributeMutex);
176 return captureDeviceTechnology;
177 }
178
182 */
184 {
185 const std::scoped_lock lock(printAttributeMutex);
186 captureDeviceVendor = vendor;
187 }
188
192 */
194 {
195 const std::scoped_lock lock(printAttributeMutex);
196 return captureDeviceVendor;
197 }
198
202 */
204 {
205 const std::scoped_lock lock(printAttributeMutex);
206 captureDeviceType = type;
207 }
208
212 */
214 {
215 const std::scoped_lock lock(printAttributeMutex);
216 return captureDeviceType;
217 }
218
224 */
225 void SetCertificationFlag(bool deviceCertified)
226 {
227 const std::scoped_lock lock(printAttributeMutex);
228 certificationFlag = deviceCertified;
229 }
230
237 */
238 [[nodiscard]] bool GetCertificationFlag() const
239 {
240 const std::scoped_lock lock(printAttributeMutex);
241 return certificationFlag;
242 }
243
244 private:
245 mutable std::mutex printAttributeMutex;
246
249 PrintCaptureDeviceVendorID captureDeviceVendor{ 0 };
250 PrintCaptureDeviceTypeID captureDeviceType{ 0 };
251 bool certificationFlag{ false };
252 };
253
254} // namespace inno
Print attributes Holds the print attributes.
Definition PrintAttributes.h:34
void SetImpression(PrintImpression imp)
Sets impression of print.
Definition PrintAttributes.h:142
void WriteTo(Writer &writer) const final
Serialize attributes in writer.
Definition PrintAttributes.h:40
PrintAttributes()=default
Default constructor of print attributes.
PrintAttributes(PrintAttributes &&pa) noexcept
Move constructor of print attributes.
Definition PrintAttributes.h:72
bool GetCertificationFlag() const
Provides certification flag Indicates that the equipment was certified to comply with Appendix F (IAF...
Definition PrintAttributes.h:237
PrintImpression GetImpression() const
Provides impression of print.
Definition PrintAttributes.h:152
void SetCaptureDeviceVendorID(PrintCaptureDeviceVendorID vendor)
Sets capture device vendor ID.
Definition PrintAttributes.h:182
void SetCaptureDeviceTypeID(PrintCaptureDeviceTypeID type)
Sets capture device type ID.
Definition PrintAttributes.h:202
PrintAttributes & operator=(const PrintAttributes &pa)
Assign the print attributes.
Definition PrintAttributes.h:86
constexpr bool operator==(const PrintAttributes &pa) const
Compares the print attributes.
Definition PrintAttributes.h:131
void SetCertificationFlag(bool deviceCertified)
Sets the certification flag.
Definition PrintAttributes.h:224
void SetCaptureDeviceTechnology(PrintCaptureDeviceTechnology technology)
Sets capture device technology.
Definition PrintAttributes.h:162
PrintCaptureDeviceTypeID GetCaptureDeviceTypeID() const
Provides capture device type ID.
Definition PrintAttributes.h:212
PrintAttributes(const PrintAttributes &pa)
Copy constructor of print attributes.
Definition PrintAttributes.h:59
PrintAttributes & operator=(PrintAttributes &&pa) noexcept
Assign the print attributes.
Definition PrintAttributes.h:110
PrintCaptureDeviceTechnology GetCaptureDeviceTechnology() const
Provides capture device technology.
Definition PrintAttributes.h:172
PrintCaptureDeviceVendorID GetCaptureDeviceVendorID() const
Provides capture device vendor ID.
Definition PrintAttributes.h:192
Capture device type identifier The capture device type identifier shall identify the biometric organi...
Definition PrintCaptureDeviceTypeID.h:24
Capture device vendor identifier The capture device vendor identifier shall identify the biometric or...
Definition PrintCaptureDeviceVendorID.h:24
Provides interface for serialization of all classes.
Definition Writer.h:164
PrintCaptureDeviceTechnology
It shall indicate the class of capture device technology used to acquire the captured biometric sampl...
Definition PrintCaptureDeviceTechnology.h:22
PrintImpression
It is impression of prints iso_19794-4_2011.
Definition PrintImpression.h:40
@ UNKNOWN
Unknown or unspecified.
Definition PrintCaptureDeviceTechnology.h:24
@ UNKNOWN
Unknown.
Definition PrintImpression.h:78