68 #    pragma warning(push) 
   69 #    pragma warning(disable : 4251)  
   82         static constexpr 
const char *path{ 
"" };
 
   85         static constexpr 
const char *name{ 
"CameraInfo" };
 
   88         static constexpr 
const char *description{
 
   89             R
"description(Information about camera model, serial number etc.)description" 
   92         static constexpr 
size_t version{ 1 };
 
  102         static constexpr std::array<uint8_t, 3> binaryId{ 
'n', 
'f', 
'o' };
 
  114             static constexpr 
const char *path{ 
"FirmwareVersion" };
 
  117             static constexpr 
const char *name{ 
"FirmwareVersion" };
 
  120             static constexpr 
const char *description{ R
"description(The firmware version on the camera)description" }; 
  128                 return { 0, std::numeric_limits<ValueType::size_type>::max() };
 
  136                 : m_value{ std::move(value) }
 
  148                 return m_value == other.m_value;
 
  154                 return m_value != other.m_value;
 
  160                 return m_value < other.m_value;
 
  166                 return m_value > other.m_value;
 
  176             void setFromString(
const std::string &value);
 
  178             std::string m_value{};
 
  191             static constexpr 
const char *path{ 
"ModelName" };
 
  194             static constexpr 
const char *name{ 
"ModelName" };
 
  197             static constexpr 
const char *description{ R
"description(The model name of the camera)description" }; 
  205                 return { 0, std::numeric_limits<ValueType::size_type>::max() };
 
  213                 : m_value{ std::move(value) }
 
  225                 return m_value == other.m_value;
 
  231                 return m_value != other.m_value;
 
  237                 return m_value < other.m_value;
 
  243                 return m_value > other.m_value;
 
  253             void setFromString(
const std::string &value);
 
  255             std::string m_value{};
 
  257             friend struct DataModel::Detail::Befriend<
ModelName>;
 
  268             static constexpr 
const char *path{ 
"Revision" };
 
  271             static constexpr 
const char *name{ 
"Revision" };
 
  274             static constexpr 
const char *description{ R
"description(The hardware revision of the camera)description" }; 
  284                 static constexpr 
const char *path{ 
"Revision/Major" };
 
  287                 static constexpr 
const char *name{ 
"Major" };
 
  290                 static constexpr 
const char *description{ R
"description(Major hardware revision number)description" }; 
  298                     return { std::numeric_limits<uint32_t>::lowest(), std::numeric_limits<uint32_t>::max() };
 
  305                 explicit constexpr 
Major(uint32_t value)
 
  318                     return m_value == other.m_value;
 
  324                     return m_value != other.m_value;
 
  330                     return m_value < other.m_value;
 
  336                     return m_value > other.m_value;
 
  346                 void setFromString(
const std::string &value);
 
  348                 uint32_t m_value{ 0 };
 
  350                 friend struct DataModel::Detail::Befriend<
Major>;
 
  361                 static constexpr 
const char *path{ 
"Revision/Minor" };
 
  364                 static constexpr 
const char *name{ 
"Minor" };
 
  367                 static constexpr 
const char *description{ R
"description(Minor hardware revision number)description" }; 
  375                     return { std::numeric_limits<uint32_t>::lowest(), std::numeric_limits<uint32_t>::max() };
 
  382                 explicit constexpr 
Minor(uint32_t value)
 
  395                     return m_value == other.m_value;
 
  401                     return m_value != other.m_value;
 
  407                     return m_value < other.m_value;
 
  413                     return m_value > other.m_value;
 
  423                 void setFromString(
const std::string &value);
 
  425                 uint32_t m_value{ 0 };
 
  427                 friend struct DataModel::Detail::Befriend<
Minor>;
 
  430             using Descendants = std::tuple<CameraInfo::Revision::Major, CameraInfo::Revision::Minor>;
 
  448             template<
typename... Args,
 
  449                      typename std::enable_if<
sizeof...(Args) >= 1, 
int>::type = 0,
 
  450                      typename std::enable_if<
 
  451                          Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
 
  452                                                                       typename std::decay<Args>::type...>::value,
 
  455             template<typename... Args>
 
  459                 using namespace Zivid::Detail::TypeTraits;
 
  461                 static_assert(AllArgsDecayedAreUnique<Args...>::value,
 
  462                               "Found duplicate types among the arguments passed to Revision(...). " 
  463                               "Types should be listed at most once.");
 
  465                 set(std::forward<Args>(args)...);
 
  480             template<
typename... Args, 
typename std::enable_if<
sizeof...(Args) >= 2, 
int>::type = 0>
 
  482             template<typename... Args>
 
  486                 using namespace Zivid::Detail::TypeTraits;
 
  488                 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
 
  489                 static_assert(AllArgsAreDescendantNodes::value,
 
  490                               "All arguments passed to set(...) must be descendant nodes.");
 
  492                 static_assert(AllArgsDecayedAreUnique<Args...>::value,
 
  493                               "Found duplicate types among the arguments passed to set(...). " 
  494                               "Types should be listed at most once.");
 
  496                 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
 
  512             template<
typename... Args, 
typename std::enable_if<
sizeof...(Args) >= 1, 
int>::type = 0>
 
  514             template<typename... Args>
 
  518                 using namespace Zivid::Detail::TypeTraits;
 
  520                 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
 
  521                 static_assert(AllArgsAreDescendantNodes::value,
 
  522                               "All arguments passed to copyWith(...) must be descendant nodes.");
 
  524                 static_assert(AllArgsDecayedAreUnique<Args...>::value,
 
  525                               "Found duplicate types among the arguments passed to copyWith(...). " 
  526                               "Types should be listed at most once.");
 
  529                 copy.set(std::forward<Args>(args)...);
 
  572                      typename std::enable_if<std::is_same<T, CameraInfo::Revision::Major>::value, 
int>::type = 0>
 
  579                      typename std::enable_if<std::is_same<T, CameraInfo::Revision::Minor>::value, 
int>::type = 0>
 
  585             template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
 
  591             template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
 
  629             void setFromString(
const std::string &value);
 
  631             void setFromString(
const std::string &fullPath, 
const std::string &value);
 
  633             std::string getString(
const std::string &fullPath) 
const;
 
  638             friend struct DataModel::Detail::Befriend<
Revision>;
 
  649             static constexpr 
const char *path{ 
"SerialNumber" };
 
  652             static constexpr 
const char *name{ 
"SerialNumber" };
 
  655             static constexpr 
const char *description{ R
"description(The serial number of the camera)description" }; 
  663                 return { 0, std::numeric_limits<ValueType::size_type>::max() };
 
  671                 : m_value{ std::move(value) }
 
  683                 return m_value == other.m_value;
 
  689                 return m_value != other.m_value;
 
  695                 return m_value < other.m_value;
 
  701                 return m_value > other.m_value;
 
  711             void setFromString(
const std::string &value);
 
  713             std::string m_value{};
 
  715             friend struct DataModel::Detail::Befriend<
SerialNumber>;
 
  726             static constexpr 
const char *path{ 
"UserData" };
 
  729             static constexpr 
const char *name{ 
"UserData" };
 
  732             static constexpr 
const char *description{
 
  733                 R
"description(Information about user data capabilities of the camera)description" 
  744                 static constexpr 
const char *path{ 
"UserData/MaxSizeBytes" };
 
  747                 static constexpr 
const char *name{ 
"MaxSizeBytes" };
 
  750                 static constexpr 
const char *description{
 
  751                     R
"description(The maximum number of bytes of user data that can be stored in the camera)description" 
  760                     return { std::numeric_limits<uint64_t>::lowest(), std::numeric_limits<uint64_t>::max() };
 
  780                     return m_value == other.m_value;
 
  786                     return m_value != other.m_value;
 
  792                     return m_value < other.m_value;
 
  798                     return m_value > other.m_value;
 
  808                 void setFromString(
const std::string &value);
 
  810                 uint64_t m_value{ 0 };
 
  812                 friend struct DataModel::Detail::Befriend<
MaxSizeBytes>;
 
  815             using Descendants = std::tuple<CameraInfo::UserData::MaxSizeBytes>;
 
  832             template<
typename... Args,
 
  833                      typename std::enable_if<
sizeof...(Args) >= 1, 
int>::type = 0,
 
  834                      typename std::enable_if<
 
  835                          Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
 
  836                                                                       typename std::decay<Args>::type...>::value,
 
  839             template<typename... Args>
 
  843                 using namespace Zivid::Detail::TypeTraits;
 
  845                 static_assert(AllArgsDecayedAreUnique<Args...>::value,
 
  846                               "Found duplicate types among the arguments passed to UserData(...). " 
  847                               "Types should be listed at most once.");
 
  849                 set(std::forward<Args>(args)...);
 
  863             template<
typename... Args, 
typename std::enable_if<
sizeof...(Args) >= 2, 
int>::type = 0>
 
  865             template<typename... Args>
 
  869                 using namespace Zivid::Detail::TypeTraits;
 
  871                 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
 
  872                 static_assert(AllArgsAreDescendantNodes::value,
 
  873                               "All arguments passed to set(...) must be descendant nodes.");
 
  875                 static_assert(AllArgsDecayedAreUnique<Args...>::value,
 
  876                               "Found duplicate types among the arguments passed to set(...). " 
  877                               "Types should be listed at most once.");
 
  879                 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
 
  894             template<
typename... Args, 
typename std::enable_if<
sizeof...(Args) >= 1, 
int>::type = 0>
 
  896             template<typename... Args>
 
  900                 using namespace Zivid::Detail::TypeTraits;
 
  902                 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
 
  903                 static_assert(AllArgsAreDescendantNodes::value,
 
  904                               "All arguments passed to copyWith(...) must be descendant nodes.");
 
  906                 static_assert(AllArgsDecayedAreUnique<Args...>::value,
 
  907                               "Found duplicate types among the arguments passed to copyWith(...). " 
  908                               "Types should be listed at most once.");
 
  911                 copy.set(std::forward<Args>(args)...);
 
  918                 return m_maxSizeBytes;
 
  924                 return m_maxSizeBytes;
 
  930                 m_maxSizeBytes = value;
 
  935                      typename std::enable_if<std::is_same<T, CameraInfo::UserData::MaxSizeBytes>::value, 
int>::type = 0>
 
  938                 return m_maxSizeBytes;
 
  941             template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
 
  944                 return m_maxSizeBytes;
 
  977             void setFromString(
const std::string &value);
 
  979             void setFromString(
const std::string &fullPath, 
const std::string &value);
 
  981             std::string getString(
const std::string &fullPath) 
const;
 
  985             friend struct DataModel::Detail::Befriend<
UserData>;
 
 1024             typename std::enable_if<
sizeof...(Args) >= 1, 
int>::type = 0,
 
 1025             typename std::enable_if<
 
 1026                 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants, 
typename std::decay<Args>::type...>::value,
 
 1029         template<typename... Args>
 
 1033             using namespace Zivid::Detail::TypeTraits;
 
 1035             static_assert(AllArgsDecayedAreUnique<Args...>::value,
 
 1036                           "Found duplicate types among the arguments passed to CameraInfo(...). " 
 1037                           "Types should be listed at most once.");
 
 1039             set(std::forward<Args>(args)...);
 
 1060         template<
typename... Args, 
typename std::enable_if<
sizeof...(Args) >= 2, 
int>::type = 0>
 
 1062         template<typename... Args>
 
 1066             using namespace Zivid::Detail::TypeTraits;
 
 1068             using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
 
 1069             static_assert(AllArgsAreDescendantNodes::value,
 
 1070                           "All arguments passed to set(...) must be descendant nodes.");
 
 1072             static_assert(AllArgsDecayedAreUnique<Args...>::value,
 
 1073                           "Found duplicate types among the arguments passed to set(...). " 
 1074                           "Types should be listed at most once.");
 
 1076             Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
 
 1098         template<
typename... Args, 
typename std::enable_if<
sizeof...(Args) >= 1, 
int>::type = 0>
 
 1100         template<typename... Args>
 
 1104             using namespace Zivid::Detail::TypeTraits;
 
 1106             using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
 
 1107             static_assert(AllArgsAreDescendantNodes::value,
 
 1108                           "All arguments passed to copyWith(...) must be descendant nodes.");
 
 1110             static_assert(AllArgsDecayedAreUnique<Args...>::value,
 
 1111                           "Found duplicate types among the arguments passed to copyWith(...). " 
 1112                           "Types should be listed at most once.");
 
 1115             copy.set(std::forward<Args>(args)...);
 
 1122             return m_firmwareVersion;
 
 1128             return m_firmwareVersion;
 
 1134             m_firmwareVersion = value;
 
 1153             m_modelName = value;
 
 1179             m_revision.
set(value);
 
 1186             m_revision.
set(value);
 
 1193             return m_serialNumber;
 
 1199             return m_serialNumber;
 
 1205             m_serialNumber = value;
 
 1231             m_userData.
set(value);
 
 1235         template<
typename T,
 
 1236                  typename std::enable_if<std::is_same<T, CameraInfo::FirmwareVersion>::value, 
int>::type = 0>
 
 1239             return m_firmwareVersion;
 
 1242         template<typename T, typename std::enable_if<std::is_same<T, CameraInfo::ModelName>::value, 
int>::type = 0>
 
 1248         template<typename T, typename std::enable_if<std::is_same<T, CameraInfo::Revision>::value, 
int>::type = 0>
 
 1254         template<
typename T,
 
 1255                  typename std::enable_if<std::is_same<T, CameraInfo::Revision::Major>::value, 
int>::type = 0>
 
 1261         template<
typename T,
 
 1262                  typename std::enable_if<std::is_same<T, CameraInfo::Revision::Minor>::value, 
int>::type = 0>
 
 1268         template<typename T, typename std::enable_if<std::is_same<T, CameraInfo::SerialNumber>::value, 
int>::type = 0>
 
 1271             return m_serialNumber;
 
 1274         template<typename T, typename std::enable_if<std::is_same<T, CameraInfo::UserData>::value, 
int>::type = 0>
 
 1280         template<
typename T,
 
 1281                  typename std::enable_if<std::is_same<T, CameraInfo::UserData::MaxSizeBytes>::value, 
int>::type = 0>
 
 1287         template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
 
 1290             return m_firmwareVersion;
 
 1293         template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
 
 1299         template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
 
 1305         template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
 
 1308             return m_serialNumber;
 
 1311         template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
 
 1318         template<
typename F>
 
 1321             f(m_firmwareVersion);
 
 1329         template<
typename F>
 
 1332             f(m_firmwareVersion);
 
 1355         void save(
const std::string &fileName) 
const;
 
 1358         void load(
const std::string &fileName);
 
 1361         void setFromString(
const std::string &value);
 
 1363         void setFromString(
const std::string &fullPath, 
const std::string &value);
 
 1365         std::string getString(
const std::string &fullPath) 
const;
 
 1373         friend struct DataModel::Detail::Befriend<
CameraInfo>;
 
 1378     struct CameraInfo::Version<1>
 
 1387 #    pragma warning(pop) 
 1391 #    if !(defined(_MSC_VER) && (_MSC_VER <= 1900)) 
 1395     struct tuple_size<
Zivid::CameraInfo::Revision> : integral_constant<size_t, 2>
 
 1399     struct tuple_element<i, 
Zivid::CameraInfo::Revision>
 
 1401         static_assert(i < tuple_size<Zivid::CameraInfo::Revision>::value, 
"Index must be less than 2");
 
 1404             = decltype(declval<Zivid::CameraInfo::Revision>().get<i>());
 
 1408     struct tuple_size<
Zivid::CameraInfo::UserData> : integral_constant<size_t, 1>
 
 1412     struct tuple_element<i, 
Zivid::CameraInfo::UserData>
 
 1414         static_assert(i < tuple_size<Zivid::CameraInfo::UserData>::value, 
"Index must be less than 1");
 
 1417             = decltype(declval<Zivid::CameraInfo::UserData>().get<i>());
 
 1421     struct tuple_size<
Zivid::CameraInfo> : integral_constant<size_t, 5>
 
 1425     struct tuple_element<i, 
Zivid::CameraInfo>
 
 1427         static_assert(i < tuple_size<Zivid::CameraInfo>::value, 
"Index must be less than 5");
 
 1430             = decltype(declval<Zivid::CameraInfo>().get<i>());
 
#define ZIVID_CORE_EXPORT
Definition: CoreExport.h:57
The firmware version on the camera
Definition: CameraInfo.h:108
std::string toString() const
Get the value as string
bool operator==(const FirmwareVersion &other) const
Comparison operator
Definition: CameraInfo.h:146
FirmwareVersion(std::string value)
Constructor
Definition: CameraInfo.h:135
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for FirmwareVersion
Definition: CameraInfo.h:126
const std::string & value() const
Get the value
bool operator<(const FirmwareVersion &other) const
Comparison operator
Definition: CameraInfo.h:158
friend std::ostream & operator<<(std::ostream &stream, const FirmwareVersion &value)
Operator to serialize the value to a stream
Definition: CameraInfo.h:170
bool operator>(const FirmwareVersion &other) const
Comparison operator
Definition: CameraInfo.h:164
bool operator!=(const FirmwareVersion &other) const
Comparison operator
Definition: CameraInfo.h:152
std::string ValueType
The type of the underlying value
Definition: CameraInfo.h:123
FirmwareVersion()=default
Default constructor
The model name of the camera
Definition: CameraInfo.h:185
bool operator==(const ModelName &other) const
Comparison operator
Definition: CameraInfo.h:223
ModelName()=default
Default constructor
const std::string & value() const
Get the value
std::string toString() const
Get the value as string
ModelName(std::string value)
Constructor
Definition: CameraInfo.h:212
std::string ValueType
The type of the underlying value
Definition: CameraInfo.h:200
bool operator<(const ModelName &other) const
Comparison operator
Definition: CameraInfo.h:235
bool operator>(const ModelName &other) const
Comparison operator
Definition: CameraInfo.h:241
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for ModelName
Definition: CameraInfo.h:203
bool operator!=(const ModelName &other) const
Comparison operator
Definition: CameraInfo.h:229
friend std::ostream & operator<<(std::ostream &stream, const ModelName &value)
Operator to serialize the value to a stream
Definition: CameraInfo.h:247
Major hardware revision number
Definition: CameraInfo.h:278
std::string toString() const
Get the value as string
bool operator!=(const Major &other) const
Comparison operator
Definition: CameraInfo.h:322
uint32_t ValueType
The type of the underlying value
Definition: CameraInfo.h:293
static constexpr Range< uint32_t > validRange()
The range of valid values for Major
Definition: CameraInfo.h:296
bool operator>(const Major &other) const
Comparison operator
Definition: CameraInfo.h:334
uint32_t value() const
Get the value
friend std::ostream & operator<<(std::ostream &stream, const Major &value)
Operator to serialize the value to a stream
Definition: CameraInfo.h:340
constexpr Major(uint32_t value)
Constructor
Definition: CameraInfo.h:305
bool operator<(const Major &other) const
Comparison operator
Definition: CameraInfo.h:328
Major()=default
Default constructor
bool operator==(const Major &other) const
Comparison operator
Definition: CameraInfo.h:316
Minor hardware revision number
Definition: CameraInfo.h:355
bool operator>(const Minor &other) const
Comparison operator
Definition: CameraInfo.h:411
bool operator!=(const Minor &other) const
Comparison operator
Definition: CameraInfo.h:399
constexpr Minor(uint32_t value)
Constructor
Definition: CameraInfo.h:382
uint32_t ValueType
The type of the underlying value
Definition: CameraInfo.h:370
friend std::ostream & operator<<(std::ostream &stream, const Minor &value)
Operator to serialize the value to a stream
Definition: CameraInfo.h:417
bool operator==(const Minor &other) const
Comparison operator
Definition: CameraInfo.h:393
std::string toString() const
Get the value as string
static constexpr Range< uint32_t > validRange()
The range of valid values for Minor
Definition: CameraInfo.h:373
Minor()=default
Default constructor
bool operator<(const Minor &other) const
Comparison operator
Definition: CameraInfo.h:405
uint32_t value() const
Get the value
The hardware revision of the camera
Definition: CameraInfo.h:262
const CameraInfo::Revision::Minor & get() const
Definition: CameraInfo.h:580
Revision copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: CameraInfo.h:516
friend std::ostream & operator<<(std::ostream &stream, const Revision &value)
Operator to send the value as string to a stream
Definition: CameraInfo.h:623
Revision & set(const Minor &value)
Set Minor
Definition: CameraInfo.h:565
std::tuple< CameraInfo::Revision::Major, CameraInfo::Revision::Minor > Descendants
Definition: CameraInfo.h:430
bool operator==(const Revision &other) const
Equality operator
std::string toString() const
Get the value as string
Revision & set(const Major &value)
Set Major
Definition: CameraInfo.h:546
Minor & minor()
Get Minor
Definition: CameraInfo.h:559
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: CameraInfo.h:607
const CameraInfo::Revision::Major & get() const
Definition: CameraInfo.h:573
Revision()
Default constructor
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: CameraInfo.h:599
Revision(Args &&...args)
Constructor taking variadic number of arguments
Definition: CameraInfo.h:457
Major & major()
Get Major
Definition: CameraInfo.h:540
void set(Args &&...args)
Set multiple arguments
Definition: CameraInfo.h:484
const Minor & minor() const
Get Minor
Definition: CameraInfo.h:553
bool operator!=(const Revision &other) const
Inequality operator
const Major & major() const
Get Major
Definition: CameraInfo.h:534
The serial number of the camera
Definition: CameraInfo.h:643
SerialNumber(std::string value)
Constructor
Definition: CameraInfo.h:670
friend std::ostream & operator<<(std::ostream &stream, const SerialNumber &value)
Operator to serialize the value to a stream
Definition: CameraInfo.h:705
bool operator==(const SerialNumber &other) const
Comparison operator
Definition: CameraInfo.h:681
std::string ValueType
The type of the underlying value
Definition: CameraInfo.h:658
const std::string & value() const
Get the value
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for SerialNumber
Definition: CameraInfo.h:661
SerialNumber()=default
Default constructor
std::string toString() const
Get the value as string
bool operator>(const SerialNumber &other) const
Comparison operator
Definition: CameraInfo.h:699
bool operator<(const SerialNumber &other) const
Comparison operator
Definition: CameraInfo.h:693
bool operator!=(const SerialNumber &other) const
Comparison operator
Definition: CameraInfo.h:687
The maximum number of bytes of user data that can be stored in the camera
Definition: CameraInfo.h:738
friend std::ostream & operator<<(std::ostream &stream, const MaxSizeBytes &value)
Operator to serialize the value to a stream
Definition: CameraInfo.h:802
bool operator!=(const MaxSizeBytes &other) const
Comparison operator
Definition: CameraInfo.h:784
bool operator>(const MaxSizeBytes &other) const
Comparison operator
Definition: CameraInfo.h:796
MaxSizeBytes()=default
Default constructor
constexpr MaxSizeBytes(uint64_t value)
Constructor
Definition: CameraInfo.h:767
uint64_t value() const
Get the value
bool operator<(const MaxSizeBytes &other) const
Comparison operator
Definition: CameraInfo.h:790
bool operator==(const MaxSizeBytes &other) const
Comparison operator
Definition: CameraInfo.h:778
std::string toString() const
Get the value as string
static constexpr Range< uint64_t > validRange()
The range of valid values for MaxSizeBytes
Definition: CameraInfo.h:758
uint64_t ValueType
The type of the underlying value
Definition: CameraInfo.h:755
Information about user data capabilities of the camera
Definition: CameraInfo.h:720
bool operator==(const UserData &other) const
Equality operator
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: CameraInfo.h:956
UserData copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: CameraInfo.h:898
UserData & set(const MaxSizeBytes &value)
Set MaxSizeBytes
Definition: CameraInfo.h:928
const CameraInfo::UserData::MaxSizeBytes & get() const
Definition: CameraInfo.h:936
std::string toString() const
Get the value as string
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: CameraInfo.h:949
std::tuple< CameraInfo::UserData::MaxSizeBytes > Descendants
Definition: CameraInfo.h:815
bool operator!=(const UserData &other) const
Inequality operator
MaxSizeBytes & maxSizeBytes()
Get MaxSizeBytes
Definition: CameraInfo.h:922
const MaxSizeBytes & maxSizeBytes() const
Get MaxSizeBytes
Definition: CameraInfo.h:916
UserData()
Default constructor
UserData(Args &&...args)
Constructor taking variadic number of arguments
Definition: CameraInfo.h:841
void set(Args &&...args)
Set multiple arguments
Definition: CameraInfo.h:867
friend std::ostream & operator<<(std::ostream &stream, const UserData &value)
Operator to send the value as string to a stream
Definition: CameraInfo.h:971
Information about camera model, serial number etc.
Definition: CameraInfo.h:76
CameraInfo & set(const UserData &value)
Set UserData
Definition: CameraInfo.h:1222
bool operator==(const CameraInfo &other) const
Equality operator
const ModelName & modelName() const
Get ModelName
Definition: CameraInfo.h:1139
const CameraInfo::FirmwareVersion & get() const
Definition: CameraInfo.h:1237
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: CameraInfo.h:1330
const CameraInfo::SerialNumber & get() const
Definition: CameraInfo.h:1269
CameraInfo & set(const SerialNumber &value)
Set SerialNumber
Definition: CameraInfo.h:1203
const CameraInfo::Revision::Minor & get() const
Definition: CameraInfo.h:1263
bool operator!=(const CameraInfo &other) const
Inequality operator
CameraInfo & set(const UserData::MaxSizeBytes &value)
Set UserData::MaxSizeBytes
Definition: CameraInfo.h:1229
FirmwareVersion & firmwareVersion()
Get FirmwareVersion
Definition: CameraInfo.h:1126
UserData & userData()
Get UserData
Definition: CameraInfo.h:1216
CameraInfo(const std::string &fileName)
Construct CameraInfo by loading from file
CameraInfo copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: CameraInfo.h:1102
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: CameraInfo.h:1319
CameraInfo & set(const FirmwareVersion &value)
Set FirmwareVersion
Definition: CameraInfo.h:1132
CameraInfo(Args &&...args)
Constructor taking variadic number of arguments
Definition: CameraInfo.h:1031
const CameraInfo::Revision::Major & get() const
Definition: CameraInfo.h:1256
const FirmwareVersion & firmwareVersion() const
Get FirmwareVersion
Definition: CameraInfo.h:1120
const UserData & userData() const
Get UserData
Definition: CameraInfo.h:1210
CameraInfo & set(const Revision::Major &value)
Set Revision::Major
Definition: CameraInfo.h:1177
CameraInfo & set(const Revision::Minor &value)
Set Revision::Minor
Definition: CameraInfo.h:1184
CameraInfo & set(const ModelName &value)
Set ModelName
Definition: CameraInfo.h:1151
void load(const std::string &fileName)
Load from the given file
friend std::ostream & operator<<(std::ostream &stream, const CameraInfo &value)
Operator to send the value as string to a stream
Definition: CameraInfo.h:1349
Revision & revision()
Get Revision
Definition: CameraInfo.h:1164
const Revision & revision() const
Get Revision
Definition: CameraInfo.h:1158
const CameraInfo::Revision & get() const
Definition: CameraInfo.h:1249
void set(Args &&...args)
Set multiple arguments
Definition: CameraInfo.h:1064
const CameraInfo::ModelName & get() const
Definition: CameraInfo.h:1243
CameraInfo & set(const Revision &value)
Set Revision
Definition: CameraInfo.h:1170
ModelName & modelName()
Get ModelName
Definition: CameraInfo.h:1145
const CameraInfo::UserData::MaxSizeBytes & get() const
Definition: CameraInfo.h:1282
std::tuple< CameraInfo::FirmwareVersion, CameraInfo::ModelName, CameraInfo::Revision, CameraInfo::Revision::Major, CameraInfo::Revision::Minor, CameraInfo::SerialNumber, CameraInfo::UserData, CameraInfo::UserData::MaxSizeBytes > Descendants
Definition: CameraInfo.h:995
std::string toString() const
Get the value as string
const SerialNumber & serialNumber() const
Get SerialNumber
Definition: CameraInfo.h:1191
CameraInfo()
Default constructor
const CameraInfo::UserData & get() const
Definition: CameraInfo.h:1275
void save(const std::string &fileName) const
Save to the given file
SerialNumber & serialNumber()
Get SerialNumber
Definition: CameraInfo.h:1197
Class describing a range of values for a given type T
Definition: Range.h:58
NodeType
Definition: NodeType.h:56
The main Zivid namespace. All Zivid code is found here
Definition: Application.h:55