CVB++ 14.0
reader_common_1d_config_base.hpp
1#pragma once
2
3#include "reader_with_quietzone_config_base.hpp"
4
5namespace Cvb
6{
7 CVB_BEGIN_INLINE_NS
8
9 namespace Barcode
10 {
11 using namespace Internal;
12
13 namespace Config
14 {
16
19 {
20 public:
21
23
28 virtual int AbsoluteMaxDigits() const
29 {
30 return absoluteMaxDigits_;
31 }
32
34
39 virtual int AbsoluteMinDigits() const
40 {
41 return absoluteMinDigits_;
42 }
43
44
50 virtual void SetMinDigits(int minDigits)
51 {
52 if (minDigits < absoluteMinDigits_ ||
53 minDigits > absoluteMaxDigits_ ||
54 minDigits > maxDigits_)
55 throw std::runtime_error("MinDigits out of range [1, 50] or higher then MaxDigits");
56 if (minDigits_ != minDigits)
57 SetDirty();
58 minDigits_ = static_cast<short>(minDigits);
59 }
60
62
67 virtual int MinDigits() const
68 {
69 return minDigits_;
70 }
71
72
74
79 virtual void SetMaxDigits(int maxDigits)
80 {
81 if (maxDigits < absoluteMinDigits_ ||
82 maxDigits > absoluteMaxDigits_ ||
83 maxDigits < minDigits_)
84 throw std::runtime_error("MaxDigits out of range [1, 50] or less then MinDigits");
85 if (maxDigits_ != maxDigits)
86 SetDirty();
87 maxDigits_ = static_cast<short>(maxDigits);
88 }
89
91
96 virtual int MaxDigits() const
97 {
98 return maxDigits_;
99 }
100
102
107 virtual void SetTransmitCheckDigit(bool transmitCheckDigit)
108 {
109 if (transmitCheckDigit_ != transmitCheckDigit)
110 SetDirty();
111 transmitCheckDigit_ = transmitCheckDigit;
112 }
113
115
120 virtual bool TransmitCheckDigit() const
121 {
122 return transmitCheckDigit_;
123 }
124
125
126
127 protected:
128 short maxDigits_;
129 short minDigits_;
130 SmartBool transmitCheckDigit_;
131
132
133 short absoluteMinDigits_ = 1;
134 const short absoluteMaxDigits_ = 50;
135
136 protected:
139 {
140 }
141
142 };
143 }
144
145 using ReaderCommon1DConfigBase = Config::ReaderCommon1DConfigBase;
146 using ReaderCommon1DConfigBasePtr = std::shared_ptr<ReaderCommon1DConfigBase>;
147 }
148
149 CVB_END_INLINE_NS
150}
Configuration to access parameters of ReaderCommon1DConfigBase.
Definition: reader_common_1d_config_base.hpp:19
virtual int MinDigits() const
Returns the minimum number of Codabar code words.
Definition: reader_common_1d_config_base.hpp:67
virtual int AbsoluteMaxDigits() const
Absolute maximum number of digits.
Definition: reader_common_1d_config_base.hpp:28
virtual bool TransmitCheckDigit() const
Returns whether to append check digit to data.
Definition: reader_common_1d_config_base.hpp:120
virtual void SetTransmitCheckDigit(bool transmitCheckDigit)
Append/do not append check digit to data.
Definition: reader_common_1d_config_base.hpp:107
virtual int AbsoluteMinDigits() const
Absolute minimum number digits.
Definition: reader_common_1d_config_base.hpp:39
virtual void SetMinDigits(int minDigits)
Definition: reader_common_1d_config_base.hpp:50
virtual void SetMaxDigits(int maxDigits)
Sets the maximum number of Codabar code words.
Definition: reader_common_1d_config_base.hpp:79
virtual int MaxDigits() const
Returns the maximum number of Codabar code words.
Definition: reader_common_1d_config_base.hpp:96
Configuration to access parameters of ReaderWithQuietzoneConfigBase.
Definition: reader_with_quietzone_config_base.hpp:20
Root namespace for the Image Manager interface.
Definition: c_barcode.h:24