112# pragma warning(push)
113# pragma warning(disable : 4251)
129 static constexpr const char *path{
"" };
132 static constexpr const char *name{
"FrameInfo" };
135 static constexpr const char *description{ R
"description(Various information for a frame)description" };
137 static constexpr size_t version{ 3 };
147 static constexpr std::array<uint8_t, 3> binaryId{
'f',
'i',
'f' };
161 static constexpr const char *path{
"SoftwareVersion" };
164 static constexpr const char *name{
"SoftwareVersion" };
167 static constexpr const char *description{
168 R
"description(The version information for installed software at the time of image capture)description"
181 static constexpr const char *path{
"SoftwareVersion/Core" };
184 static constexpr const char *name{
"Core" };
187 static constexpr const char *description{ R
"description(Core version)description" };
195 return { 0, std::numeric_limits<ValueType::size_type>::max() };
202 explicit Core(std::string value)
203 : m_value{ std::move(value) }
215 return m_value == other.m_value;
221 return m_value != other.m_value;
227 return m_value < other.m_value;
233 return m_value > other.m_value;
239 return m_value <= other.m_value;
245 return m_value >= other.m_value;
255 void setFromString(
const std::string &value);
257 std::string m_value{
"No-version" };
259 friend struct DataModel::Detail::Befriend<
Core>;
281 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
282 typename std::enable_if<
283 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
287 template<typename... Args>
291 using namespace Zivid::Detail::TypeTraits;
294 AllArgsDecayedAreUnique<Args...>::value,
295 "Found duplicate types among the arguments passed to SoftwareVersion(...). "
296 "Types should be listed at most once.");
298 set(std::forward<Args>(args)...);
312 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
314 template<typename... Args>
318 using namespace Zivid::Detail::TypeTraits;
320 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
322 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
325 AllArgsDecayedAreUnique<Args...>::value,
326 "Found duplicate types among the arguments passed to set(...). "
327 "Types should be listed at most once.");
329 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
344 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
346 template<typename... Args>
350 using namespace Zivid::Detail::TypeTraits;
352 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
354 AllArgsAreDescendantNodes::value,
355 "All arguments passed to copyWith(...) must be descendant nodes.");
358 AllArgsDecayedAreUnique<Args...>::value,
359 "Found duplicate types among the arguments passed to copyWith(...). "
360 "Types should be listed at most once.");
363 copy.
set(std::forward<Args>(args)...);
388 typename std::enable_if<std::is_same<T, FrameInfo::SoftwareVersion::Core>::value,
int>::type = 0>
394 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
430 void setFromString(
const std::string &value);
432 void setFromString(
const std::string &fullPath,
const std::string &value);
434 std::string getString(
const std::string &fullPath)
const;
451 static constexpr const char *path{
"SystemInfo" };
454 static constexpr const char *name{
"SystemInfo" };
457 static constexpr const char *description{
458 R
"description(Information about the system that captured this frame)description"
471 static constexpr const char *path{
"SystemInfo/CPU" };
474 static constexpr const char *name{
"CPU" };
477 static constexpr const char *description{ R
"description(CPU)description" };
489 static constexpr const char *path{
"SystemInfo/CPU/Model" };
492 static constexpr const char *name{
"Model" };
495 static constexpr const char *description{ R
"description(CPU model)description" };
503 return { 0, std::numeric_limits<ValueType::size_type>::max() };
511 : m_value{ std::move(value) }
523 return m_value == other.m_value;
529 return m_value != other.m_value;
535 return m_value < other.m_value;
541 return m_value > other.m_value;
547 return m_value <= other.m_value;
553 return m_value >= other.m_value;
563 void setFromString(
const std::string &value);
565 std::string m_value{};
567 friend struct DataModel::Detail::Befriend<
Model>;
570 using Descendants = std::tuple<FrameInfo::SystemInfo::CPU::Model>;
589 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
590 typename std::enable_if<
591 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
595 template<typename... Args>
597 explicit CPU(Args &&...args)
599 using namespace Zivid::Detail::TypeTraits;
602 AllArgsDecayedAreUnique<Args...>::value,
603 "Found duplicate types among the arguments passed to CPU(...). "
604 "Types should be listed at most once.");
606 set(std::forward<Args>(args)...);
620 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
622 template<typename... Args>
626 using namespace Zivid::Detail::TypeTraits;
628 using AllArgsAreDescendantNodes =
629 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
631 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
634 AllArgsDecayedAreUnique<Args...>::value,
635 "Found duplicate types among the arguments passed to set(...). "
636 "Types should be listed at most once.");
638 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
653 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
655 template<typename... Args>
659 using namespace Zivid::Detail::TypeTraits;
661 using AllArgsAreDescendantNodes =
662 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
664 AllArgsAreDescendantNodes::value,
665 "All arguments passed to copyWith(...) must be descendant nodes.");
668 AllArgsDecayedAreUnique<Args...>::value,
669 "Found duplicate types among the arguments passed to copyWith(...). "
670 "Types should be listed at most once.");
673 copy.
set(std::forward<Args>(args)...);
698 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU::Model>::value,
int>::type = 0>
704 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
740 void setFromString(
const std::string &value);
742 void setFromString(
const std::string &fullPath,
const std::string &value);
744 std::string getString(
const std::string &fullPath)
const;
748 friend struct DataModel::Detail::Befriend<
CPU>;
761 static constexpr const char *path{
"SystemInfo/ComputeDevice" };
764 static constexpr const char *name{
"ComputeDevice" };
767 static constexpr const char *description{ R
"description(Compute device)description" };
779 static constexpr const char *path{
"SystemInfo/ComputeDevice/Model" };
782 static constexpr const char *name{
"Model" };
785 static constexpr const char *description{ R
"description(Compute device model)description" };
793 return { 0, std::numeric_limits<ValueType::size_type>::max() };
801 : m_value{ std::move(value) }
813 return m_value == other.m_value;
819 return m_value != other.m_value;
825 return m_value < other.m_value;
831 return m_value > other.m_value;
837 return m_value <= other.m_value;
843 return m_value >= other.m_value;
853 void setFromString(
const std::string &value);
855 std::string m_value{};
857 friend struct DataModel::Detail::Befriend<
Model>;
870 static constexpr const char *path{
"SystemInfo/ComputeDevice/Vendor" };
873 static constexpr const char *name{
"Vendor" };
876 static constexpr const char *description{ R
"description(Compute device vendor)description" };
884 return { 0, std::numeric_limits<ValueType::size_type>::max() };
892 : m_value{ std::move(value) }
904 return m_value == other.m_value;
910 return m_value != other.m_value;
916 return m_value < other.m_value;
922 return m_value > other.m_value;
928 return m_value <= other.m_value;
934 return m_value >= other.m_value;
944 void setFromString(
const std::string &value);
946 std::string m_value{};
948 friend struct DataModel::Detail::Befriend<
Vendor>;
952 tuple<FrameInfo::SystemInfo::ComputeDevice::Model, FrameInfo::SystemInfo::ComputeDevice::Vendor>;
972 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
973 typename std::enable_if<
974 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
978 template<typename... Args>
982 using namespace Zivid::Detail::TypeTraits;
985 AllArgsDecayedAreUnique<Args...>::value,
986 "Found duplicate types among the arguments passed to ComputeDevice(...). "
987 "Types should be listed at most once.");
989 set(std::forward<Args>(args)...);
1004 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1006 template<typename... Args>
1010 using namespace Zivid::Detail::TypeTraits;
1012 using AllArgsAreDescendantNodes =
1013 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1015 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1018 AllArgsDecayedAreUnique<Args...>::value,
1019 "Found duplicate types among the arguments passed to set(...). "
1020 "Types should be listed at most once.");
1022 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1038 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1040 template<typename... Args>
1044 using namespace Zivid::Detail::TypeTraits;
1046 using AllArgsAreDescendantNodes =
1047 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1049 AllArgsAreDescendantNodes::value,
1050 "All arguments passed to copyWith(...) must be descendant nodes.");
1053 AllArgsDecayedAreUnique<Args...>::value,
1054 "Found duplicate types among the arguments passed to copyWith(...). "
1055 "Types should be listed at most once.");
1058 copy.
set(std::forward<Args>(args)...);
1102 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Model>::value,
int>::
1111 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Vendor>::value,
int>::
1118 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1124 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
1131 template<
typename F>
1139 template<
typename F>
1162 void setFromString(
const std::string &value);
1164 void setFromString(
const std::string &fullPath,
const std::string &value);
1166 std::string getString(
const std::string &fullPath)
const;
1184 static constexpr const char *path{
"SystemInfo/OperatingSystem" };
1187 static constexpr const char *name{
"OperatingSystem" };
1190 static constexpr const char *description{ R
"description(Operating system)description" };
1198 return { 0, std::numeric_limits<ValueType::size_type>::max() };
1206 : m_value{ std::move(value) }
1218 return m_value == other.m_value;
1224 return m_value != other.m_value;
1230 return m_value < other.m_value;
1236 return m_value > other.m_value;
1242 return m_value <= other.m_value;
1248 return m_value >= other.m_value;
1258 void setFromString(
const std::string &value);
1260 std::string m_value{};
1295 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1296 typename std::enable_if<
1297 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
1301 template<typename... Args>
1305 using namespace Zivid::Detail::TypeTraits;
1308 AllArgsDecayedAreUnique<Args...>::value,
1309 "Found duplicate types among the arguments passed to SystemInfo(...). "
1310 "Types should be listed at most once.");
1312 set(std::forward<Args>(args)...);
1331 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1333 template<typename... Args>
1337 using namespace Zivid::Detail::TypeTraits;
1339 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1341 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1344 AllArgsDecayedAreUnique<Args...>::value,
1345 "Found duplicate types among the arguments passed to set(...). "
1346 "Types should be listed at most once.");
1348 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1368 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1370 template<typename... Args>
1374 using namespace Zivid::Detail::TypeTraits;
1376 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1378 AllArgsAreDescendantNodes::value,
1379 "All arguments passed to copyWith(...) must be descendant nodes.");
1382 AllArgsDecayedAreUnique<Args...>::value,
1383 "Found duplicate types among the arguments passed to copyWith(...). "
1384 "Types should be listed at most once.");
1387 copy.
set(std::forward<Args>(args)...);
1420 return m_computeDevice;
1426 return m_computeDevice;
1432 m_computeDevice = value;
1439 m_computeDevice.
set(value);
1446 m_computeDevice.
set(value);
1453 return m_operatingSystem;
1459 return m_operatingSystem;
1465 m_operatingSystem = value;
1471 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU>::value,
int>::type = 0>
1479 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU::Model>::value,
int>::type = 0>
1487 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice>::value,
int>::type = 0>
1490 return m_computeDevice;
1495 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Model>::value,
int>::
1504 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Vendor>::value,
int>::
1513 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::OperatingSystem>::value,
int>::type = 0>
1516 return m_operatingSystem;
1519 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1525 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
1528 return m_computeDevice;
1531 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
1534 return m_operatingSystem;
1538 template<
typename F>
1543 f(m_operatingSystem);
1547 template<
typename F>
1552 f(m_operatingSystem);
1571 void setFromString(
const std::string &value);
1573 void setFromString(
const std::string &fullPath,
const std::string &value);
1575 std::string getString(
const std::string &fullPath)
const;
1581 friend struct DataModel::Detail::Befriend<
SystemInfo>;
1594 static constexpr const char *path{
"TimeStamp" };
1597 static constexpr const char *name{
"TimeStamp" };
1600 static constexpr const char *description{ R
"description(The time of frame capture)description" };
1608 return { std::chrono::system_clock::time_point::min(), std::chrono::system_clock::time_point::max() };
1615 explicit constexpr TimeStamp(std::chrono::system_clock::time_point value)
1620 std::chrono::system_clock::time_point
value()
const;
1628 return m_value == other.m_value;
1634 return m_value != other.m_value;
1640 return m_value < other.m_value;
1646 return m_value > other.m_value;
1652 return m_value <= other.m_value;
1658 return m_value >= other.m_value;
1668 void setFromString(
const std::string &value);
1670 std::chrono::system_clock::time_point m_value{};
1672 friend struct DataModel::Detail::Befriend<
TimeStamp>;
1716 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1717 typename std::enable_if<
1718 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
1721 template<typename... Args>
1725 using namespace Zivid::Detail::TypeTraits;
1728 AllArgsDecayedAreUnique<Args...>::value,
1729 "Found duplicate types among the arguments passed to FrameInfo(...). "
1730 "Types should be listed at most once.");
1732 set(std::forward<Args>(args)...);
1755 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1757 template<typename... Args>
1761 using namespace Zivid::Detail::TypeTraits;
1763 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1765 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1768 AllArgsDecayedAreUnique<Args...>::value,
1769 "Found duplicate types among the arguments passed to set(...). "
1770 "Types should be listed at most once.");
1772 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1796 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1798 template<typename... Args>
1802 using namespace Zivid::Detail::TypeTraits;
1804 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1806 AllArgsAreDescendantNodes::value,
"All arguments passed to copyWith(...) must be descendant nodes.");
1809 AllArgsDecayedAreUnique<Args...>::value,
1810 "Found duplicate types among the arguments passed to copyWith(...). "
1811 "Types should be listed at most once.");
1814 copy.
set(std::forward<Args>(args)...);
1821 return m_softwareVersion;
1827 return m_softwareVersion;
1833 m_softwareVersion = value;
1840 m_softwareVersion.
set(value);
1847 return m_systemInfo;
1853 return m_systemInfo;
1859 m_systemInfo = value;
1866 m_systemInfo.
set(value);
1873 m_systemInfo.
set(value);
1880 m_systemInfo.
set(value);
1887 m_systemInfo.
set(value);
1894 m_systemInfo.
set(value);
1901 m_systemInfo.
set(value);
1920 m_timeStamp = value;
1924 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::SoftwareVersion>::value,
int>::type = 0>
1927 return m_softwareVersion;
1932 typename std::enable_if<std::is_same<T, FrameInfo::SoftwareVersion::Core>::value,
int>::type = 0>
1938 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo>::value,
int>::type = 0>
1941 return m_systemInfo;
1944 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU>::value,
int>::type = 0>
1952 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU::Model>::value,
int>::type = 0>
1960 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice>::value,
int>::type = 0>
1968 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Model>::value,
int>::type = 0>
1976 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Vendor>::value,
int>::type =
1985 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::OperatingSystem>::value,
int>::type = 0>
1991 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::TimeStamp>::value,
int>::type = 0>
1997 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2000 return m_softwareVersion;
2003 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
2006 return m_systemInfo;
2009 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
2016 template<
typename F>
2019 f(m_softwareVersion);
2025 template<
typename F>
2028 f(m_softwareVersion);
2049 void save(
const std::string &fileName)
const;
2052 void load(
const std::string &fileName);
2055 void setFromString(
const std::string &value);
2057 void setFromString(
const std::string &fullPath,
const std::string &value);
2059 std::string getString(
const std::string &fullPath)
const;
2065 friend struct DataModel::Detail::Befriend<
FrameInfo>;
2079 struct FrameInfo::Version<3>
2088# pragma warning(pop)
2092# if !(defined(_MSC_VER) && (_MSC_VER <= 1900))
2097 struct tuple_size<
Zivid::FrameInfo::SoftwareVersion> : integral_constant<size_t, 1>
2101 struct tuple_element<i,
Zivid::FrameInfo::SoftwareVersion>
2103 static_assert(i < tuple_size<Zivid::FrameInfo::SoftwareVersion>::value,
"Index must be less than 1");
2106 =
decltype(declval<Zivid::FrameInfo::SoftwareVersion>().get<i>());
2110 struct tuple_size<
Zivid::FrameInfo::SystemInfo> : integral_constant<size_t, 3>
2114 struct tuple_element<i,
Zivid::FrameInfo::SystemInfo>
2116 static_assert(i < tuple_size<Zivid::FrameInfo::SystemInfo>::value,
"Index must be less than 3");
2119 =
decltype(declval<Zivid::FrameInfo::SystemInfo>().get<i>());
2123 struct tuple_size<
Zivid::FrameInfo::SystemInfo::CPU> : integral_constant<size_t, 1>
2127 struct tuple_element<i,
Zivid::FrameInfo::SystemInfo::CPU>
2129 static_assert(i < tuple_size<Zivid::FrameInfo::SystemInfo::CPU>::value,
"Index must be less than 1");
2132 =
decltype(declval<Zivid::FrameInfo::SystemInfo::CPU>().get<i>());
2136 struct tuple_size<
Zivid::FrameInfo::SystemInfo::ComputeDevice> : integral_constant<size_t, 2>
2140 struct tuple_element<i,
Zivid::FrameInfo::SystemInfo::ComputeDevice>
2142 static_assert(i < tuple_size<Zivid::FrameInfo::SystemInfo::ComputeDevice>::value,
"Index must be less than 2");
2145 =
decltype(declval<Zivid::FrameInfo::SystemInfo::ComputeDevice>().get<i>());
2149 struct tuple_size<
Zivid::FrameInfo> : integral_constant<size_t, 3>
2153 struct tuple_element<i,
Zivid::FrameInfo>
2155 static_assert(i < tuple_size<Zivid::FrameInfo>::value,
"Index must be less than 3");
2158 =
decltype(declval<Zivid::FrameInfo>().get<i>());
2167#if defined(__has_include) && !defined(NO_DOC)
2168# if __has_include("Zivid/FrameInfoInternal.h") && __has_include("Zivid/DataModelNodeMetaData.h")
2169# include "Zivid/FrameInfoInternal.h"
#define ZIVID_CORE_EXPORT
Definition: CoreExport.h:101
Contains information about the compute device used by Zivid::Application.
Definition: ComputeDevice.h:103
Core version
Definition: FrameInfo.h:175
std::string toString() const
Get the value as string
bool operator>=(const Core &other) const
Comparison operator
Definition: FrameInfo.h:243
const std::string & value() const
Get the value
bool operator!=(const Core &other) const
Comparison operator
Definition: FrameInfo.h:219
Core(std::string value)
Constructor
Definition: FrameInfo.h:202
bool operator==(const Core &other) const
Comparison operator
Definition: FrameInfo.h:213
Core()=default
Default constructor
bool operator>(const Core &other) const
Comparison operator
Definition: FrameInfo.h:231
bool operator<(const Core &other) const
Comparison operator
Definition: FrameInfo.h:225
friend std::ostream & operator<<(std::ostream &stream, const Core &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:249
bool operator<=(const Core &other) const
Comparison operator
Definition: FrameInfo.h:237
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:190
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Core
Definition: FrameInfo.h:193
The version information for installed software at the time of image capture
Definition: FrameInfo.h:155
const Core & core() const
Get Core
Definition: FrameInfo.h:368
friend std::ostream & operator<<(std::ostream &stream, const SoftwareVersion &value)
Operator to send the value as string to a stream
Definition: FrameInfo.h:424
bool operator!=(const SoftwareVersion &other) const
Inequality operator
bool operator==(const SoftwareVersion &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: FrameInfo.h:409
SoftwareVersion()
Default constructor
const FrameInfo::SoftwareVersion::Core & get() const
Definition: FrameInfo.h:389
SoftwareVersion copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: FrameInfo.h:348
Core & core()
Get Core
Definition: FrameInfo.h:374
SoftwareVersion(Args &&...args)
Constructor taking variadic number of arguments
Definition: FrameInfo.h:289
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: FrameInfo.h:402
void set(Args &&...args)
Set multiple arguments
Definition: FrameInfo.h:316
std::tuple< FrameInfo::SoftwareVersion::Core > Descendants
Definition: FrameInfo.h:262
SoftwareVersion & set(const Core &value)
Set Core
Definition: FrameInfo.h:380
std::string toString() const
Get the value as string
CPU model
Definition: FrameInfo.h:483
const std::string & value() const
Get the value
bool operator!=(const Model &other) const
Comparison operator
Definition: FrameInfo.h:527
Model()=default
Default constructor
bool operator<(const Model &other) const
Comparison operator
Definition: FrameInfo.h:533
std::string toString() const
Get the value as string
bool operator==(const Model &other) const
Comparison operator
Definition: FrameInfo.h:521
bool operator>=(const Model &other) const
Comparison operator
Definition: FrameInfo.h:551
friend std::ostream & operator<<(std::ostream &stream, const Model &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:557
bool operator<=(const Model &other) const
Comparison operator
Definition: FrameInfo.h:545
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Model
Definition: FrameInfo.h:501
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:498
Model(std::string value)
Constructor
Definition: FrameInfo.h:510
bool operator>(const Model &other) const
Comparison operator
Definition: FrameInfo.h:539
CPU
Definition: FrameInfo.h:465
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: FrameInfo.h:719
const Model & model() const
Get Model
Definition: FrameInfo.h:678
std::tuple< FrameInfo::SystemInfo::CPU::Model > Descendants
Definition: FrameInfo.h:570
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: FrameInfo.h:712
bool operator!=(const CPU &other) const
Inequality operator
std::string toString() const
Get the value as string
bool operator==(const CPU &other) const
Equality operator
friend std::ostream & operator<<(std::ostream &stream, const CPU &value)
Operator to send the value as string to a stream
Definition: FrameInfo.h:734
CPU(Args &&...args)
Constructor taking variadic number of arguments
Definition: FrameInfo.h:597
CPU & set(const Model &value)
Set Model
Definition: FrameInfo.h:690
void set(Args &&...args)
Set multiple arguments
Definition: FrameInfo.h:624
CPU copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: FrameInfo.h:657
Model & model()
Get Model
Definition: FrameInfo.h:684
const FrameInfo::SystemInfo::CPU::Model & get() const
Definition: FrameInfo.h:699
Compute device model
Definition: FrameInfo.h:773
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Model
Definition: FrameInfo.h:791
std::string toString() const
Get the value as string
bool operator<=(const Model &other) const
Comparison operator
Definition: FrameInfo.h:835
Model(std::string value)
Constructor
Definition: FrameInfo.h:800
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:788
const std::string & value() const
Get the value
bool operator==(const Model &other) const
Comparison operator
Definition: FrameInfo.h:811
bool operator!=(const Model &other) const
Comparison operator
Definition: FrameInfo.h:817
bool operator>=(const Model &other) const
Comparison operator
Definition: FrameInfo.h:841
bool operator>(const Model &other) const
Comparison operator
Definition: FrameInfo.h:829
friend std::ostream & operator<<(std::ostream &stream, const Model &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:847
bool operator<(const Model &other) const
Comparison operator
Definition: FrameInfo.h:823
Model()=default
Default constructor
Compute device vendor
Definition: FrameInfo.h:864
bool operator>(const Vendor &other) const
Comparison operator
Definition: FrameInfo.h:920
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Vendor
Definition: FrameInfo.h:882
friend std::ostream & operator<<(std::ostream &stream, const Vendor &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:938
bool operator>=(const Vendor &other) const
Comparison operator
Definition: FrameInfo.h:932
bool operator<(const Vendor &other) const
Comparison operator
Definition: FrameInfo.h:914
bool operator==(const Vendor &other) const
Comparison operator
Definition: FrameInfo.h:902
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:879
Vendor()=default
Default constructor
std::string toString() const
Get the value as string
bool operator<=(const Vendor &other) const
Comparison operator
Definition: FrameInfo.h:926
const std::string & value() const
Get the value
bool operator!=(const Vendor &other) const
Comparison operator
Definition: FrameInfo.h:908
Vendor(std::string value)
Constructor
Definition: FrameInfo.h:891
Compute device
Definition: FrameInfo.h:755
void set(Args &&...args)
Set multiple arguments
Definition: FrameInfo.h:1008
ComputeDevice & set(const Model &value)
Set Model
Definition: FrameInfo.h:1075
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: FrameInfo.h:1132
const Vendor & vendor() const
Get Vendor
Definition: FrameInfo.h:1082
ComputeDevice(Args &&...args)
Constructor taking variadic number of arguments
Definition: FrameInfo.h:980
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: FrameInfo.h:1140
Model & model()
Get Model
Definition: FrameInfo.h:1069
Vendor & vendor()
Get Vendor
Definition: FrameInfo.h:1088
bool operator==(const ComputeDevice &other) const
Equality operator
const FrameInfo::SystemInfo::ComputeDevice::Vendor & get() const
Definition: FrameInfo.h:1113
const Model & model() const
Get Model
Definition: FrameInfo.h:1063
friend std::ostream & operator<<(std::ostream &stream, const ComputeDevice &value)
Operator to send the value as string to a stream
Definition: FrameInfo.h:1156
std::tuple< FrameInfo::SystemInfo::ComputeDevice::Model, FrameInfo::SystemInfo::ComputeDevice::Vendor > Descendants
Definition: FrameInfo.h:952
bool operator!=(const ComputeDevice &other) const
Inequality operator
std::string toString() const
Get the value as string
ComputeDevice()
Default constructor
ComputeDevice & set(const Vendor &value)
Set Vendor
Definition: FrameInfo.h:1094
ComputeDevice copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: FrameInfo.h:1042
const FrameInfo::SystemInfo::ComputeDevice::Model & get() const
Definition: FrameInfo.h:1104
Operating system
Definition: FrameInfo.h:1178
bool operator>(const OperatingSystem &other) const
Comparison operator
Definition: FrameInfo.h:1234
OperatingSystem(std::string value)
Constructor
Definition: FrameInfo.h:1205
bool operator!=(const OperatingSystem &other) const
Comparison operator
Definition: FrameInfo.h:1222
bool operator<(const OperatingSystem &other) const
Comparison operator
Definition: FrameInfo.h:1228
bool operator>=(const OperatingSystem &other) const
Comparison operator
Definition: FrameInfo.h:1246
bool operator==(const OperatingSystem &other) const
Comparison operator
Definition: FrameInfo.h:1216
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:1193
OperatingSystem()=default
Default constructor
bool operator<=(const OperatingSystem &other) const
Comparison operator
Definition: FrameInfo.h:1240
const std::string & value() const
Get the value
friend std::ostream & operator<<(std::ostream &stream, const OperatingSystem &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:1252
std::string toString() const
Get the value as string
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for OperatingSystem
Definition: FrameInfo.h:1196
Information about the system that captured this frame
Definition: FrameInfo.h:445
SystemInfo & set(const CPU::Model &value)
Set CPU::Model
Definition: FrameInfo.h:1411
std::string toString() const
Get the value as string
const FrameInfo::SystemInfo::CPU & get() const
Definition: FrameInfo.h:1472
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: FrameInfo.h:1539
ComputeDevice & computeDevice()
Get ComputeDevice
Definition: FrameInfo.h:1424
SystemInfo & set(const ComputeDevice &value)
Set ComputeDevice
Definition: FrameInfo.h:1430
const FrameInfo::SystemInfo::ComputeDevice::Vendor & get() const
Definition: FrameInfo.h:1506
SystemInfo & set(const CPU &value)
Set CPU
Definition: FrameInfo.h:1404
bool operator==(const SystemInfo &other) const
Equality operator
void set(Args &&...args)
Set multiple arguments
Definition: FrameInfo.h:1335
friend std::ostream & operator<<(std::ostream &stream, const SystemInfo &value)
Operator to send the value as string to a stream
Definition: FrameInfo.h:1565
const ComputeDevice & computeDevice() const
Get ComputeDevice
Definition: FrameInfo.h:1418
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: FrameInfo.h:1548
SystemInfo & set(const ComputeDevice::Vendor &value)
Set ComputeDevice::Vendor
Definition: FrameInfo.h:1444
SystemInfo & set(const OperatingSystem &value)
Set OperatingSystem
Definition: FrameInfo.h:1463
SystemInfo copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: FrameInfo.h:1372
bool operator!=(const SystemInfo &other) const
Inequality operator
SystemInfo & set(const ComputeDevice::Model &value)
Set ComputeDevice::Model
Definition: FrameInfo.h:1437
const FrameInfo::SystemInfo::OperatingSystem & get() const
Definition: FrameInfo.h:1514
CPU & cpu()
Get CPU
Definition: FrameInfo.h:1398
const FrameInfo::SystemInfo::ComputeDevice & get() const
Definition: FrameInfo.h:1488
SystemInfo(Args &&...args)
Constructor taking variadic number of arguments
Definition: FrameInfo.h:1303
const OperatingSystem & operatingSystem() const
Get OperatingSystem
Definition: FrameInfo.h:1451
OperatingSystem & operatingSystem()
Get OperatingSystem
Definition: FrameInfo.h:1457
SystemInfo()
Default constructor
const CPU & cpu() const
Get CPU
Definition: FrameInfo.h:1392
const FrameInfo::SystemInfo::ComputeDevice::Model & get() const
Definition: FrameInfo.h:1497
const FrameInfo::SystemInfo::CPU::Model & get() const
Definition: FrameInfo.h:1480
std::tuple< FrameInfo::SystemInfo::CPU, FrameInfo::SystemInfo::CPU::Model, FrameInfo::SystemInfo::ComputeDevice, FrameInfo::SystemInfo::ComputeDevice::Model, FrameInfo::SystemInfo::ComputeDevice::Vendor, FrameInfo::SystemInfo::OperatingSystem > Descendants
Definition: FrameInfo.h:1271
The time of frame capture
Definition: FrameInfo.h:1588
std::chrono::system_clock::time_point value() const
Get the value
bool operator>(const TimeStamp &other) const
Comparison operator
Definition: FrameInfo.h:1644
bool operator<(const TimeStamp &other) const
Comparison operator
Definition: FrameInfo.h:1638
bool operator<=(const TimeStamp &other) const
Comparison operator
Definition: FrameInfo.h:1650
static constexpr Range< std::chrono::system_clock::time_point > validRange()
The range of valid values for TimeStamp
Definition: FrameInfo.h:1606
bool operator>=(const TimeStamp &other) const
Comparison operator
Definition: FrameInfo.h:1656
std::string toString() const
Get the value as string
friend std::ostream & operator<<(std::ostream &stream, const TimeStamp &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:1662
TimeStamp()=default
Default constructor
constexpr TimeStamp(std::chrono::system_clock::time_point value)
Constructor
Definition: FrameInfo.h:1615
bool operator!=(const TimeStamp &other) const
Comparison operator
Definition: FrameInfo.h:1632
bool operator==(const TimeStamp &other) const
Comparison operator
Definition: FrameInfo.h:1626
std::chrono::system_clock::time_point ValueType
The type of the underlying value
Definition: FrameInfo.h:1603
Various information for a frame
Definition: FrameInfo.h:123
TimeStamp & timeStamp()
Get TimeStamp
Definition: FrameInfo.h:1912
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: FrameInfo.h:2017
const FrameInfo::SoftwareVersion::Core & get() const
Definition: FrameInfo.h:1933
FrameInfo & set(const SystemInfo::ComputeDevice &value)
Set SystemInfo::ComputeDevice
Definition: FrameInfo.h:1878
FrameInfo()
Default constructor
void set(Args &&...args)
Set multiple arguments
Definition: FrameInfo.h:1759
const FrameInfo::SystemInfo::ComputeDevice::Model & get() const
Definition: FrameInfo.h:1969
FrameInfo & set(const SystemInfo::OperatingSystem &value)
Set SystemInfo::OperatingSystem
Definition: FrameInfo.h:1899
void save(const std::string &fileName) const
Save to the given file
const SystemInfo & systemInfo() const
Get SystemInfo
Definition: FrameInfo.h:1845
FrameInfo & set(const SystemInfo &value)
Set SystemInfo
Definition: FrameInfo.h:1857
const TimeStamp & timeStamp() const
Get TimeStamp
Definition: FrameInfo.h:1906
SoftwareVersion & softwareVersion()
Get SoftwareVersion
Definition: FrameInfo.h:1825
FrameInfo(const std::string &fileName)
Construct FrameInfo by loading from file
FrameInfo & set(const SystemInfo::ComputeDevice::Vendor &value)
Set SystemInfo::ComputeDevice::Vendor
Definition: FrameInfo.h:1892
const FrameInfo::SoftwareVersion & get() const
Definition: FrameInfo.h:1925
friend std::ostream & operator<<(std::ostream &stream, const FrameInfo &value)
Operator to send the value as string to a stream
Definition: FrameInfo.h:2043
FrameInfo & set(const TimeStamp &value)
Set TimeStamp
Definition: FrameInfo.h:1918
FrameInfo(Args &&...args)
Constructor taking variadic number of arguments
Definition: FrameInfo.h:1723
const FrameInfo::TimeStamp & get() const
Definition: FrameInfo.h:1992
const SoftwareVersion & softwareVersion() const
Get SoftwareVersion
Definition: FrameInfo.h:1819
FrameInfo & set(const SystemInfo::CPU::Model &value)
Set SystemInfo::CPU::Model
Definition: FrameInfo.h:1871
FrameInfo & set(const SystemInfo::ComputeDevice::Model &value)
Set SystemInfo::ComputeDevice::Model
Definition: FrameInfo.h:1885
const FrameInfo::SystemInfo::CPU::Model & get() const
Definition: FrameInfo.h:1953
const FrameInfo::SystemInfo::ComputeDevice::Vendor & get() const
Definition: FrameInfo.h:1978
FrameInfo & set(const SoftwareVersion &value)
Set SoftwareVersion
Definition: FrameInfo.h:1831
const FrameInfo::SystemInfo & get() const
Definition: FrameInfo.h:1939
std::tuple< FrameInfo::SoftwareVersion, FrameInfo::SoftwareVersion::Core, FrameInfo::SystemInfo, FrameInfo::SystemInfo::CPU, FrameInfo::SystemInfo::CPU::Model, FrameInfo::SystemInfo::ComputeDevice, FrameInfo::SystemInfo::ComputeDevice::Model, FrameInfo::SystemInfo::ComputeDevice::Vendor, FrameInfo::SystemInfo::OperatingSystem, FrameInfo::TimeStamp > Descendants
Definition: FrameInfo.h:1685
const FrameInfo::SystemInfo::ComputeDevice & get() const
Definition: FrameInfo.h:1961
FrameInfo & set(const SoftwareVersion::Core &value)
Set SoftwareVersion::Core
Definition: FrameInfo.h:1838
SystemInfo & systemInfo()
Get SystemInfo
Definition: FrameInfo.h:1851
bool operator!=(const FrameInfo &other) const
Inequality operator
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: FrameInfo.h:2026
bool operator==(const FrameInfo &other) const
Equality operator
FrameInfo & set(const SystemInfo::CPU &value)
Set SystemInfo::CPU
Definition: FrameInfo.h:1864
const FrameInfo::SystemInfo::CPU & get() const
Definition: FrameInfo.h:1945
void load(const std::string &fileName)
Load from the given file
FrameInfo copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: FrameInfo.h:1800
const FrameInfo::SystemInfo::OperatingSystem & get() const
Definition: FrameInfo.h:1986
Class describing a range of values for a given type T
Definition: Range.h:118
NodeType
Definition: NodeType.h:100
The main Zivid namespace. All Zivid code is found here
Definition: Application.h:99