69# pragma warning(disable : 4251)
85 static constexpr const char *path{
"" };
88 static constexpr const char *name{
"FrameInfo" };
91 static constexpr const char *description{ R
"description(Various information for a frame)description" };
93 static constexpr size_t version{ 3 };
103 static constexpr std::array<uint8_t, 3> binaryId{
'f',
'i',
'f' };
117 static constexpr const char *path{
"SoftwareVersion" };
120 static constexpr const char *name{
"SoftwareVersion" };
123 static constexpr const char *description{
124 R
"description(The version information for installed software at the time of image capture)description"
137 static constexpr const char *path{
"SoftwareVersion/Core" };
140 static constexpr const char *name{
"Core" };
143 static constexpr const char *description{ R
"description(Core version)description" };
151 return { 0, std::numeric_limits<ValueType::size_type>::max() };
158 explicit Core(std::string value)
159 : m_value{ std::move(value) }
171 return m_value == other.m_value;
177 return m_value != other.m_value;
183 return m_value < other.m_value;
189 return m_value > other.m_value;
195 return m_value <= other.m_value;
201 return m_value >= other.m_value;
211 void setFromString(
const std::string &value);
213 std::string m_value{
"No-version" };
215 friend struct DataModel::Detail::Befriend<
Core>;
237 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
238 typename std::enable_if<
239 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
243 template<typename... Args>
247 using namespace Zivid::Detail::TypeTraits;
250 AllArgsDecayedAreUnique<Args...>::value,
251 "Found duplicate types among the arguments passed to SoftwareVersion(...). "
252 "Types should be listed at most once.");
254 set(std::forward<Args>(args)...);
268 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
270 template<typename... Args>
274 using namespace Zivid::Detail::TypeTraits;
276 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
278 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
281 AllArgsDecayedAreUnique<Args...>::value,
282 "Found duplicate types among the arguments passed to set(...). "
283 "Types should be listed at most once.");
285 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
300 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
302 template<typename... Args>
306 using namespace Zivid::Detail::TypeTraits;
308 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
310 AllArgsAreDescendantNodes::value,
311 "All arguments passed to copyWith(...) must be descendant nodes.");
314 AllArgsDecayedAreUnique<Args...>::value,
315 "Found duplicate types among the arguments passed to copyWith(...). "
316 "Types should be listed at most once.");
319 copy.
set(std::forward<Args>(args)...);
344 typename std::enable_if<std::is_same<T, FrameInfo::SoftwareVersion::Core>::value,
int>::type = 0>
350 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
386 void setFromString(
const std::string &value);
388 void setFromString(
const std::string &fullPath,
const std::string &value);
390 std::string getString(
const std::string &fullPath)
const;
407 static constexpr const char *path{
"SystemInfo" };
410 static constexpr const char *name{
"SystemInfo" };
413 static constexpr const char *description{
414 R
"description(Information about the system that captured this frame)description"
427 static constexpr const char *path{
"SystemInfo/CPU" };
430 static constexpr const char *name{
"CPU" };
433 static constexpr const char *description{ R
"description(CPU)description" };
445 static constexpr const char *path{
"SystemInfo/CPU/Model" };
448 static constexpr const char *name{
"Model" };
451 static constexpr const char *description{ R
"description(CPU model)description" };
459 return { 0, std::numeric_limits<ValueType::size_type>::max() };
467 : m_value{ std::move(value) }
479 return m_value == other.m_value;
485 return m_value != other.m_value;
491 return m_value < other.m_value;
497 return m_value > other.m_value;
503 return m_value <= other.m_value;
509 return m_value >= other.m_value;
519 void setFromString(
const std::string &value);
521 std::string m_value{};
523 friend struct DataModel::Detail::Befriend<
Model>;
526 using Descendants = std::tuple<FrameInfo::SystemInfo::CPU::Model>;
545 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
546 typename std::enable_if<
547 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
551 template<typename... Args>
553 explicit
CPU(Args &&...args)
555 using namespace Zivid::Detail::TypeTraits;
558 AllArgsDecayedAreUnique<Args...>::value,
559 "Found duplicate types among the arguments passed to CPU(...). "
560 "Types should be listed at most once.");
562 set(std::forward<Args>(args)...);
576 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
578 template<typename... Args>
582 using namespace Zivid::Detail::TypeTraits;
584 using AllArgsAreDescendantNodes =
585 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
587 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
590 AllArgsDecayedAreUnique<Args...>::value,
591 "Found duplicate types among the arguments passed to set(...). "
592 "Types should be listed at most once.");
594 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
609 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
611 template<typename... Args>
615 using namespace Zivid::Detail::TypeTraits;
617 using AllArgsAreDescendantNodes =
618 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
620 AllArgsAreDescendantNodes::value,
621 "All arguments passed to copyWith(...) must be descendant nodes.");
624 AllArgsDecayedAreUnique<Args...>::value,
625 "Found duplicate types among the arguments passed to copyWith(...). "
626 "Types should be listed at most once.");
629 copy.
set(std::forward<Args>(args)...);
654 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU::Model>::value,
int>::type = 0>
660 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
696 void setFromString(
const std::string &value);
698 void setFromString(
const std::string &fullPath,
const std::string &value);
700 std::string getString(
const std::string &fullPath)
const;
704 friend struct DataModel::Detail::Befriend<
CPU>;
717 static constexpr const char *path{
"SystemInfo/ComputeDevice" };
720 static constexpr const char *name{
"ComputeDevice" };
723 static constexpr const char *description{ R
"description(Compute device)description" };
735 static constexpr const char *path{
"SystemInfo/ComputeDevice/Model" };
738 static constexpr const char *name{
"Model" };
741 static constexpr const char *description{ R
"description(Compute device model)description" };
749 return { 0, std::numeric_limits<ValueType::size_type>::max() };
757 : m_value{ std::move(value) }
769 return m_value == other.m_value;
775 return m_value != other.m_value;
781 return m_value < other.m_value;
787 return m_value > other.m_value;
793 return m_value <= other.m_value;
799 return m_value >= other.m_value;
809 void setFromString(
const std::string &value);
811 std::string m_value{};
813 friend struct DataModel::Detail::Befriend<
Model>;
826 static constexpr const char *path{
"SystemInfo/ComputeDevice/Vendor" };
829 static constexpr const char *name{
"Vendor" };
832 static constexpr const char *description{ R
"description(Compute device vendor)description" };
840 return { 0, std::numeric_limits<ValueType::size_type>::max() };
848 : m_value{ std::move(value) }
860 return m_value == other.m_value;
866 return m_value != other.m_value;
872 return m_value < other.m_value;
878 return m_value > other.m_value;
884 return m_value <= other.m_value;
890 return m_value >= other.m_value;
900 void setFromString(
const std::string &value);
902 std::string m_value{};
904 friend struct DataModel::Detail::Befriend<
Vendor>;
908 tuple<FrameInfo::SystemInfo::ComputeDevice::Model, FrameInfo::SystemInfo::ComputeDevice::Vendor>;
928 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
929 typename std::enable_if<
930 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
934 template<typename... Args>
938 using namespace Zivid::Detail::TypeTraits;
941 AllArgsDecayedAreUnique<Args...>::value,
942 "Found duplicate types among the arguments passed to ComputeDevice(...). "
943 "Types should be listed at most once.");
945 set(std::forward<Args>(args)...);
960 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
962 template<typename... Args>
966 using namespace Zivid::Detail::TypeTraits;
968 using AllArgsAreDescendantNodes =
969 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
971 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
974 AllArgsDecayedAreUnique<Args...>::value,
975 "Found duplicate types among the arguments passed to set(...). "
976 "Types should be listed at most once.");
978 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
994 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
996 template<typename... Args>
1000 using namespace Zivid::Detail::TypeTraits;
1002 using AllArgsAreDescendantNodes =
1003 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1005 AllArgsAreDescendantNodes::value,
1006 "All arguments passed to copyWith(...) must be descendant nodes.");
1009 AllArgsDecayedAreUnique<Args...>::value,
1010 "Found duplicate types among the arguments passed to copyWith(...). "
1011 "Types should be listed at most once.");
1014 copy.
set(std::forward<Args>(args)...);
1058 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Model>::value,
int>::
1067 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Vendor>::value,
int>::
1074 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1080 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
1087 template<
typename F>
1095 template<
typename F>
1118 void setFromString(
const std::string &value);
1120 void setFromString(
const std::string &fullPath,
const std::string &value);
1122 std::string getString(
const std::string &fullPath)
const;
1140 static constexpr const char *path{
"SystemInfo/OperatingSystem" };
1143 static constexpr const char *name{
"OperatingSystem" };
1146 static constexpr const char *description{ R
"description(Operating system)description" };
1154 return { 0, std::numeric_limits<ValueType::size_type>::max() };
1162 : m_value{ std::move(value) }
1174 return m_value == other.m_value;
1180 return m_value != other.m_value;
1186 return m_value < other.m_value;
1192 return m_value > other.m_value;
1198 return m_value <= other.m_value;
1204 return m_value >= other.m_value;
1214 void setFromString(
const std::string &value);
1216 std::string m_value{};
1251 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1252 typename std::enable_if<
1253 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
1257 template<typename... Args>
1261 using namespace Zivid::Detail::TypeTraits;
1264 AllArgsDecayedAreUnique<Args...>::value,
1265 "Found duplicate types among the arguments passed to SystemInfo(...). "
1266 "Types should be listed at most once.");
1268 set(std::forward<Args>(args)...);
1287 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1289 template<typename... Args>
1293 using namespace Zivid::Detail::TypeTraits;
1295 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1297 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1300 AllArgsDecayedAreUnique<Args...>::value,
1301 "Found duplicate types among the arguments passed to set(...). "
1302 "Types should be listed at most once.");
1304 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1324 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1326 template<typename... Args>
1330 using namespace Zivid::Detail::TypeTraits;
1332 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1334 AllArgsAreDescendantNodes::value,
1335 "All arguments passed to copyWith(...) must be descendant nodes.");
1338 AllArgsDecayedAreUnique<Args...>::value,
1339 "Found duplicate types among the arguments passed to copyWith(...). "
1340 "Types should be listed at most once.");
1343 copy.
set(std::forward<Args>(args)...);
1376 return m_computeDevice;
1382 return m_computeDevice;
1388 m_computeDevice = value;
1395 m_computeDevice.
set(value);
1402 m_computeDevice.
set(value);
1409 return m_operatingSystem;
1415 return m_operatingSystem;
1421 m_operatingSystem = value;
1427 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU>::value,
int>::type = 0>
1435 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU::Model>::value,
int>::type = 0>
1443 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice>::value,
int>::type = 0>
1446 return m_computeDevice;
1451 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Model>::value,
int>::
1460 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Vendor>::value,
int>::
1469 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::OperatingSystem>::value,
int>::type = 0>
1472 return m_operatingSystem;
1475 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1481 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
1484 return m_computeDevice;
1487 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
1490 return m_operatingSystem;
1494 template<
typename F>
1499 f(m_operatingSystem);
1503 template<
typename F>
1508 f(m_operatingSystem);
1527 void setFromString(
const std::string &value);
1529 void setFromString(
const std::string &fullPath,
const std::string &value);
1531 std::string getString(
const std::string &fullPath)
const;
1537 friend struct DataModel::Detail::Befriend<
SystemInfo>;
1550 static constexpr const char *path{
"TimeStamp" };
1553 static constexpr const char *name{
"TimeStamp" };
1556 static constexpr const char *description{ R
"description(The time of frame capture)description" };
1564 return { std::chrono::system_clock::time_point::min(), std::chrono::system_clock::time_point::max() };
1571 explicit constexpr TimeStamp(std::chrono::system_clock::time_point value)
1576 std::chrono::system_clock::time_point
value()
const;
1584 return m_value == other.m_value;
1590 return m_value != other.m_value;
1596 return m_value < other.m_value;
1602 return m_value > other.m_value;
1608 return m_value <= other.m_value;
1614 return m_value >= other.m_value;
1624 void setFromString(
const std::string &value);
1626 std::chrono::system_clock::time_point m_value{};
1628 friend struct DataModel::Detail::Befriend<
TimeStamp>;
1686 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1687 typename std::enable_if<
1688 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
1691 template<typename... Args>
1695 using namespace Zivid::Detail::TypeTraits;
1698 AllArgsDecayedAreUnique<Args...>::value,
1699 "Found duplicate types among the arguments passed to FrameInfo(...). "
1700 "Types should be listed at most once.");
1702 set(std::forward<Args>(args)...);
1725 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1727 template<typename... Args>
1731 using namespace Zivid::Detail::TypeTraits;
1733 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1735 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1738 AllArgsDecayedAreUnique<Args...>::value,
1739 "Found duplicate types among the arguments passed to set(...). "
1740 "Types should be listed at most once.");
1742 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1766 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1768 template<typename... Args>
1772 using namespace Zivid::Detail::TypeTraits;
1774 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1776 AllArgsAreDescendantNodes::value,
"All arguments passed to copyWith(...) must be descendant nodes.");
1779 AllArgsDecayedAreUnique<Args...>::value,
1780 "Found duplicate types among the arguments passed to copyWith(...). "
1781 "Types should be listed at most once.");
1784 copy.
set(std::forward<Args>(args)...);
1791 return m_softwareVersion;
1797 return m_softwareVersion;
1803 m_softwareVersion = value;
1810 m_softwareVersion.
set(value);
1817 return m_systemInfo;
1823 return m_systemInfo;
1829 m_systemInfo = value;
1836 m_systemInfo.
set(value);
1843 m_systemInfo.
set(value);
1850 m_systemInfo.
set(value);
1857 m_systemInfo.
set(value);
1864 m_systemInfo.
set(value);
1871 m_systemInfo.
set(value);
1890 m_timeStamp = value;
1894 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::SoftwareVersion>::value,
int>::type = 0>
1897 return m_softwareVersion;
1902 typename std::enable_if<std::is_same<T, FrameInfo::SoftwareVersion::Core>::value,
int>::type = 0>
1908 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo>::value,
int>::type = 0>
1911 return m_systemInfo;
1914 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU>::value,
int>::type = 0>
1922 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU::Model>::value,
int>::type = 0>
1930 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice>::value,
int>::type = 0>
1938 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Model>::value,
int>::type = 0>
1946 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Vendor>::value,
int>::type =
1955 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::OperatingSystem>::value,
int>::type = 0>
1961 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::TimeStamp>::value,
int>::type = 0>
1967 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1970 return m_softwareVersion;
1973 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
1976 return m_systemInfo;
1979 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
1986 template<
typename F>
1989 f(m_softwareVersion);
1995 template<
typename F>
1998 f(m_softwareVersion);
2019 void save(
const std::string &fileName)
const;
2022 void load(
const std::string &fileName);
2025 void setFromString(
const std::string &value);
2027 void setFromString(
const std::string &fullPath,
const std::string &value);
2029 std::string getString(
const std::string &fullPath)
const;
2035 friend struct DataModel::Detail::Befriend<
FrameInfo>;
2049 struct FrameInfo::Version<3>
2051 using Type = FrameInfo;
2058# pragma warning(pop)
2062# if !(defined(_MSC_VER) && (_MSC_VER <= 1900))
2067 struct tuple_size<
Zivid::FrameInfo::SoftwareVersion> : integral_constant<size_t, 1>
2071 struct tuple_element<i,
Zivid::FrameInfo::SoftwareVersion>
2073 static_assert(i < tuple_size<Zivid::FrameInfo::SoftwareVersion>::value,
"Index must be less than 1");
2076 =
decltype(declval<Zivid::FrameInfo::SoftwareVersion>().get<i>());
2080 struct tuple_size<
Zivid::FrameInfo::SystemInfo> : integral_constant<size_t, 3>
2084 struct tuple_element<i,
Zivid::FrameInfo::SystemInfo>
2086 static_assert(i < tuple_size<Zivid::FrameInfo::SystemInfo>::value,
"Index must be less than 3");
2089 =
decltype(declval<Zivid::FrameInfo::SystemInfo>().get<i>());
2093 struct tuple_size<
Zivid::FrameInfo::SystemInfo::CPU> : integral_constant<size_t, 1>
2097 struct tuple_element<i,
Zivid::FrameInfo::SystemInfo::CPU>
2099 static_assert(i < tuple_size<Zivid::FrameInfo::SystemInfo::CPU>::value,
"Index must be less than 1");
2102 =
decltype(declval<Zivid::FrameInfo::SystemInfo::CPU>().get<i>());
2106 struct tuple_size<
Zivid::FrameInfo::SystemInfo::ComputeDevice> : integral_constant<size_t, 2>
2110 struct tuple_element<i,
Zivid::FrameInfo::SystemInfo::ComputeDevice>
2112 static_assert(i < tuple_size<Zivid::FrameInfo::SystemInfo::ComputeDevice>::value,
"Index must be less than 2");
2115 =
decltype(declval<Zivid::FrameInfo::SystemInfo::ComputeDevice>().get<i>());
2119 struct tuple_size<
Zivid::FrameInfo> : integral_constant<size_t, 3>
2123 struct tuple_element<i,
Zivid::FrameInfo>
2125 static_assert(i < tuple_size<Zivid::FrameInfo>::value,
"Index must be less than 3");
2128 =
decltype(declval<Zivid::FrameInfo>().get<i>());
2137#if defined(__has_include) && !defined(NO_DOC)
2138# if __has_include("Zivid/FrameInfoInternal.h") && __has_include("Zivid/DataModelNodeMetaData.h")
2139# include "Zivid/FrameInfoInternal.h"
#define ZIVID_NODISCARD
Definition Attributes.h:49
#define ZIVID_CORE_EXPORT
Definition CoreExport.h:56
Contains information about the compute device used by Zivid::Application.
Definition ComputeDevice.h:58
Core version.
Definition FrameInfo.h:131
std::string toString() const
Get the value as string.
bool operator>=(const Core &other) const
Comparison operator.
Definition FrameInfo.h:199
const std::string & value() const
Get the value.
bool operator!=(const Core &other) const
Comparison operator.
Definition FrameInfo.h:175
Core(std::string value)
Constructor.
Definition FrameInfo.h:158
bool operator==(const Core &other) const
Comparison operator.
Definition FrameInfo.h:169
Core()=default
Default constructor.
bool operator>(const Core &other) const
Comparison operator.
Definition FrameInfo.h:187
bool operator<(const Core &other) const
Comparison operator.
Definition FrameInfo.h:181
friend std::ostream & operator<<(std::ostream &stream, const Core &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:205
bool operator<=(const Core &other) const
Comparison operator.
Definition FrameInfo.h:193
std::string ValueType
The type of the underlying value.
Definition FrameInfo.h:146
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Core.
Definition FrameInfo.h:149
The version information for installed software at the time of image capture.
Definition FrameInfo.h:111
const Core & core() const
Get Core.
Definition FrameInfo.h:324
friend std::ostream & operator<<(std::ostream &stream, const SoftwareVersion &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:380
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:365
SoftwareVersion()
Default constructor.
const FrameInfo::SoftwareVersion::Core & get() const
Definition FrameInfo.h:345
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:304
Core & core()
Get Core.
Definition FrameInfo.h:330
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:358
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:272
std::tuple< FrameInfo::SoftwareVersion::Core > Descendants
Definition FrameInfo.h:218
SoftwareVersion & set(const Core &value)
Set Core.
Definition FrameInfo.h:336
std::string toString() const
Get the value as string.
CPU model.
Definition FrameInfo.h:439
const std::string & value() const
Get the value.
bool operator!=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:483
Model()=default
Default constructor.
bool operator<(const Model &other) const
Comparison operator.
Definition FrameInfo.h:489
std::string toString() const
Get the value as string.
bool operator==(const Model &other) const
Comparison operator.
Definition FrameInfo.h:477
bool operator>=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:507
friend std::ostream & operator<<(std::ostream &stream, const Model &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:513
bool operator<=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:501
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Model.
Definition FrameInfo.h:457
std::string ValueType
The type of the underlying value.
Definition FrameInfo.h:454
Model(std::string value)
Constructor.
Definition FrameInfo.h:466
bool operator>(const Model &other) const
Comparison operator.
Definition FrameInfo.h:495
CPU.
Definition FrameInfo.h:421
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:675
const Model & model() const
Get Model.
Definition FrameInfo.h:634
std::tuple< FrameInfo::SystemInfo::CPU::Model > Descendants
Definition FrameInfo.h:526
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:668
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.
CPU()
Default constructor.
friend std::ostream & operator<<(std::ostream &stream, const CPU &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:690
CPU & set(const Model &value)
Set Model.
Definition FrameInfo.h:646
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:580
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:613
Model & model()
Get Model.
Definition FrameInfo.h:640
const FrameInfo::SystemInfo::CPU::Model & get() const
Definition FrameInfo.h:655
Compute device model.
Definition FrameInfo.h:729
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Model.
Definition FrameInfo.h:747
std::string toString() const
Get the value as string.
bool operator<=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:791
Model(std::string value)
Constructor.
Definition FrameInfo.h:756
std::string ValueType
The type of the underlying value.
Definition FrameInfo.h:744
const std::string & value() const
Get the value.
bool operator==(const Model &other) const
Comparison operator.
Definition FrameInfo.h:767
bool operator!=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:773
bool operator>=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:797
bool operator>(const Model &other) const
Comparison operator.
Definition FrameInfo.h:785
friend std::ostream & operator<<(std::ostream &stream, const Model &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:803
bool operator<(const Model &other) const
Comparison operator.
Definition FrameInfo.h:779
Model()=default
Default constructor.
Compute device vendor.
Definition FrameInfo.h:820
bool operator>(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:876
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Vendor.
Definition FrameInfo.h:838
friend std::ostream & operator<<(std::ostream &stream, const Vendor &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:894
bool operator>=(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:888
bool operator<(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:870
bool operator==(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:858
std::string ValueType
The type of the underlying value.
Definition FrameInfo.h:835
Vendor()=default
Default constructor.
std::string toString() const
Get the value as string.
bool operator<=(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:882
const std::string & value() const
Get the value.
bool operator!=(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:864
Vendor(std::string value)
Constructor.
Definition FrameInfo.h:847
Compute device.
Definition FrameInfo.h:711
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:964
ComputeDevice & set(const Model &value)
Set Model.
Definition FrameInfo.h:1031
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:1088
const Vendor & vendor() const
Get Vendor.
Definition FrameInfo.h:1038
std:: tuple< FrameInfo::SystemInfo::ComputeDevice::Model, FrameInfo::SystemInfo::ComputeDevice::Vendor > Descendants
Definition FrameInfo.h:907
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:1096
Model & model()
Get Model.
Definition FrameInfo.h:1025
Vendor & vendor()
Get Vendor.
Definition FrameInfo.h:1044
bool operator==(const ComputeDevice &other) const
Equality operator.
const FrameInfo::SystemInfo::ComputeDevice::Vendor & get() const
Definition FrameInfo.h:1069
const Model & model() const
Get Model.
Definition FrameInfo.h:1019
friend std::ostream & operator<<(std::ostream &stream, const ComputeDevice &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:1112
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:1050
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:998
const FrameInfo::SystemInfo::ComputeDevice::Model & get() const
Definition FrameInfo.h:1060
Operating system.
Definition FrameInfo.h:1134
bool operator>(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:1190
OperatingSystem(std::string value)
Constructor.
Definition FrameInfo.h:1161
bool operator!=(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:1178
bool operator<(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:1184
bool operator>=(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:1202
bool operator==(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:1172
std::string ValueType
The type of the underlying value.
Definition FrameInfo.h:1149
OperatingSystem()=default
Default constructor.
bool operator<=(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:1196
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:1208
std::string toString() const
Get the value as string.
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for OperatingSystem.
Definition FrameInfo.h:1152
Information about the system that captured this frame.
Definition FrameInfo.h:401
SystemInfo & set(const CPU::Model &value)
Set CPU::Model.
Definition FrameInfo.h:1367
std::string toString() const
Get the value as string.
const FrameInfo::SystemInfo::CPU & get() const
Definition FrameInfo.h:1428
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:1495
ComputeDevice & computeDevice()
Get ComputeDevice.
Definition FrameInfo.h:1380
SystemInfo & set(const ComputeDevice &value)
Set ComputeDevice.
Definition FrameInfo.h:1386
const FrameInfo::SystemInfo::ComputeDevice::Vendor & get() const
Definition FrameInfo.h:1462
SystemInfo & set(const CPU &value)
Set CPU.
Definition FrameInfo.h:1360
bool operator==(const SystemInfo &other) const
Equality operator.
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:1291
friend std::ostream & operator<<(std::ostream &stream, const SystemInfo &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:1521
const ComputeDevice & computeDevice() const
Get ComputeDevice.
Definition FrameInfo.h:1374
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:1504
SystemInfo & set(const ComputeDevice::Vendor &value)
Set ComputeDevice::Vendor.
Definition FrameInfo.h:1400
SystemInfo & set(const OperatingSystem &value)
Set OperatingSystem.
Definition FrameInfo.h:1419
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:1328
bool operator!=(const SystemInfo &other) const
Inequality operator.
SystemInfo & set(const ComputeDevice::Model &value)
Set ComputeDevice::Model.
Definition FrameInfo.h:1393
const FrameInfo::SystemInfo::OperatingSystem & get() const
Definition FrameInfo.h:1470
CPU & cpu()
Get CPU.
Definition FrameInfo.h:1354
const FrameInfo::SystemInfo::ComputeDevice & get() const
Definition FrameInfo.h:1444
const OperatingSystem & operatingSystem() const
Get OperatingSystem.
Definition FrameInfo.h:1407
OperatingSystem & operatingSystem()
Get OperatingSystem.
Definition FrameInfo.h:1413
SystemInfo()
Default constructor.
const CPU & cpu() const
Get CPU.
Definition FrameInfo.h:1348
const FrameInfo::SystemInfo::ComputeDevice::Model & get() const
Definition FrameInfo.h:1453
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:1221
const FrameInfo::SystemInfo::CPU::Model & get() const
Definition FrameInfo.h:1436
The time of frame capture.
Definition FrameInfo.h:1544
std::chrono::system_clock::time_point value() const
Get the value.
bool operator>(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:1600
bool operator<(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:1594
bool operator<=(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:1606
static constexpr Range< std::chrono::system_clock::time_point > validRange()
The range of valid values for TimeStamp.
Definition FrameInfo.h:1562
bool operator>=(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:1612
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:1618
TimeStamp()=default
Default constructor.
constexpr TimeStamp(std::chrono::system_clock::time_point value)
Constructor.
Definition FrameInfo.h:1571
bool operator!=(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:1588
bool operator==(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:1582
std::chrono::system_clock::time_point ValueType
The type of the underlying value.
Definition FrameInfo.h:1559
Various information for a frame.
Definition FrameInfo.h:79
TimeStamp & timeStamp()
Get TimeStamp.
Definition FrameInfo.h:1882
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:1987
const FrameInfo::SoftwareVersion::Core & get() const
Definition FrameInfo.h:1903
FrameInfo & set(const SystemInfo::ComputeDevice &value)
Set SystemInfo::ComputeDevice.
Definition FrameInfo.h:1848
FrameInfo()
Default constructor.
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:1729
const FrameInfo::SystemInfo::ComputeDevice::Model & get() const
Definition FrameInfo.h:1939
FrameInfo & set(const SystemInfo::OperatingSystem &value)
Set SystemInfo::OperatingSystem.
Definition FrameInfo.h:1869
void save(const std::string &fileName) const
Save to the given file.
const SystemInfo & systemInfo() const
Get SystemInfo.
Definition FrameInfo.h:1815
FrameInfo & set(const SystemInfo &value)
Set SystemInfo.
Definition FrameInfo.h:1827
const TimeStamp & timeStamp() const
Get TimeStamp.
Definition FrameInfo.h:1876
SoftwareVersion & softwareVersion()
Get SoftwareVersion.
Definition FrameInfo.h:1795
FrameInfo(const std::string &fileName)
Construct FrameInfo by loading from file.
std::string serialize() const
Serialize to a string.
FrameInfo & set(const SystemInfo::ComputeDevice::Vendor &value)
Set SystemInfo::ComputeDevice::Vendor.
Definition FrameInfo.h:1862
const FrameInfo::SoftwareVersion & get() const
Definition FrameInfo.h:1895
friend std::ostream & operator<<(std::ostream &stream, const FrameInfo &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:2013
FrameInfo & set(const TimeStamp &value)
Set TimeStamp.
Definition FrameInfo.h:1888
FrameInfo(Args &&...args)
Constructor taking variadic number of arguments.
Definition FrameInfo.h:1693
const FrameInfo::TimeStamp & get() const
Definition FrameInfo.h:1962
const SoftwareVersion & softwareVersion() const
Get SoftwareVersion.
Definition FrameInfo.h:1789
FrameInfo & set(const SystemInfo::CPU::Model &value)
Set SystemInfo::CPU::Model.
Definition FrameInfo.h:1841
FrameInfo & set(const SystemInfo::ComputeDevice::Model &value)
Set SystemInfo::ComputeDevice::Model.
Definition FrameInfo.h:1855
const FrameInfo::SystemInfo::CPU::Model & get() const
Definition FrameInfo.h:1923
const FrameInfo::SystemInfo::ComputeDevice::Vendor & get() const
Definition FrameInfo.h:1948
FrameInfo & set(const SoftwareVersion &value)
Set SoftwareVersion.
Definition FrameInfo.h:1801
const FrameInfo::SystemInfo & get() const
Definition FrameInfo.h:1909
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:1631
static ZIVID_NODISCARD FrameInfo fromSerialized(const std::string &value)
Construct a new FrameInfo instance from a previously serialized string.
const FrameInfo::SystemInfo::ComputeDevice & get() const
Definition FrameInfo.h:1931
FrameInfo & set(const SoftwareVersion::Core &value)
Set SoftwareVersion::Core.
Definition FrameInfo.h:1808
SystemInfo & systemInfo()
Get SystemInfo.
Definition FrameInfo.h:1821
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:1996
bool operator==(const FrameInfo &other) const
Equality operator.
FrameInfo & set(const SystemInfo::CPU &value)
Set SystemInfo::CPU.
Definition FrameInfo.h:1834
const FrameInfo::SystemInfo::CPU & get() const
Definition FrameInfo.h:1915
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:1770
const FrameInfo::SystemInfo::OperatingSystem & get() const
Definition FrameInfo.h:1956
Class describing a range of values for a given type T.
Definition Range.h:73
NodeType
Definition NodeType.h:55
The main Zivid namespace. All Zivid code is found here.
Definition Application.h:56