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" };
103 static constexpr std::array<uint8_t, 3> binaryId{
'f',
'i',
'f' };
117 static constexpr const char *
path{
"Metrics" };
120 static constexpr const char *
name{
"Metrics" };
123 static constexpr const char *
description{ R
"description(Metrics related to this capture.)description" };
139 static constexpr const char *
path{
"Metrics/AcquisitionTime" };
142 static constexpr const char *
name{
"AcquisitionTime" };
146 R
"description(Acquisition Time is the duration from the start of the capture to when the camera has acquired the
147last image. After this time, the camera has finished its acquisition and you can move the robot,
148or capture with another camera with overlapping field of view. Acquisition Time is equal to the
149time it takes for the Camera::capture(settings) API function call to return.
159 return { std::chrono::microseconds::min(), std::chrono::microseconds::max() };
171 std::chrono::microseconds
value()
const;
179 return m_value == other.m_value;
185 return m_value != other.m_value;
191 return m_value < other.m_value;
197 return m_value > other.m_value;
203 return m_value <= other.m_value;
209 return m_value >= other.m_value;
215 return stream <<
value.toString();
219 void setFromString(
const std::string &value);
221 std::chrono::microseconds m_value{ -1 };
239 static constexpr const char *
path{
"Metrics/CaptureTime" };
242 static constexpr const char *
name{
"CaptureTime" };
246 R
"description(Capture Time is the duration from the start of the capture to when all of the data transfer and
247processing has completed. After this time the 3D point cloud and/or 2D color image is ready and
248available on the GPU memory, and can be copied to the system memory (RAM).
258 return { std::chrono::microseconds::min(), std::chrono::microseconds::max() };
270 std::chrono::microseconds
value()
const;
278 return m_value == other.m_value;
284 return m_value != other.m_value;
290 return m_value < other.m_value;
296 return m_value > other.m_value;
302 return m_value <= other.m_value;
308 return m_value >= other.m_value;
314 return stream <<
value.toString();
318 void setFromString(
const std::string &value);
320 std::chrono::microseconds m_value{ -1 };
322 friend struct DataModel::Detail::Befriend<
CaptureTime>;
350 static constexpr const char *
path{
"Metrics/ReprocessingTime" };
353 static constexpr const char *
name{
"ReprocessingTime" };
357 R
"description(Reprocessing re-runs the entire processing pipeline (including filters, color balance etc.) on a
358previously acquired frame. Reprocessing is available in Zivid Studio for captures with Diagnostics Mode
359enabled. The ReprocessingTime field is only set if this frame was reprocessed after it was initially
360captured, otherwise it will be unset.
362Reprocessing Time is the duration from the start of the reprocessing action and until all processing
363of the new frame has finished. After this time the 3D point cloud and/or 2D color image is ready and
364available on the GPU memory and can be copied to the system memory (RAM).
366Reprocessing Time depends on the processing settings that are enabled, which capture engine that was
367used, the pixel sampling setting and the number of acquisitions used. Reprocessing Time also depends on
368the compute power of the compute device.
370Note that for a frame that has been re-processed, the Acquisition Time and Capture Time refers to
371the originally captured frame. Only Reprocessing Time is updated in a reprocessed frame.
381 return { std::chrono::microseconds::min(), std::chrono::microseconds::max() };
396 std::chrono::microseconds
value()
const;
410 return m_opt == other.m_opt;
416 return m_opt != other.m_opt;
422 return m_opt < other.m_opt;
428 return m_opt > other.m_opt;
434 return m_opt <= other.m_opt;
440 return m_opt >= other.m_opt;
446 return stream <<
value.toString();
450 void setFromString(
const std::string &value);
452 std::optional<std::chrono::microseconds> m_opt;
473 static constexpr const char *
path{
"Metrics/ThrottlingTime" };
476 static constexpr const char *
name{
"ThrottlingTime" };
480 R
"description(Throttling Time is the duration that the capture was paused due to thermal or other constraints on the
481camera's components while it was capturing this frame. This duration is part of the overall Acquisition
482Time. If the camera throttled during a capture, it will result in a longer Acquisition Time.
484Whether or not the camera will throttle depends on the ambient temperature, the capture settings, and
485the how frequently the camera is capturing.
495 return { std::chrono::microseconds::min(), std::chrono::microseconds::max() };
507 std::chrono::microseconds
value()
const;
515 return m_value == other.m_value;
521 return m_value != other.m_value;
527 return m_value < other.m_value;
533 return m_value > other.m_value;
539 return m_value <= other.m_value;
545 return m_value >= other.m_value;
551 return stream <<
value.toString();
555 void setFromString(
const std::string &value);
557 std::chrono::microseconds m_value{ -1 };
588 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
589 typename std::enable_if<
590 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
594 template<typename... Args>
598 using namespace Zivid::Detail::TypeTraits;
601 AllArgsDecayedAreUnique<Args...>::value,
602 "Found duplicate types among the arguments passed to Metrics(...). "
603 "Types should be listed at most once.");
605 set(std::forward<Args>(args)...);
622 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
624 template<typename... Args>
628 using namespace Zivid::Detail::TypeTraits;
630 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
632 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
635 AllArgsDecayedAreUnique<Args...>::value,
636 "Found duplicate types among the arguments passed to set(...). "
637 "Types should be listed at most once.");
639 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
657 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
659 template<typename... Args>
663 using namespace Zivid::Detail::TypeTraits;
665 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
667 AllArgsAreDescendantNodes::value,
668 "All arguments passed to copyWith(...) must be descendant nodes.");
671 AllArgsDecayedAreUnique<Args...>::value,
672 "Found duplicate types among the arguments passed to copyWith(...). "
673 "Types should be listed at most once.");
676 copy.set(std::forward<Args>(args)...);
683 return m_acquisitionTime;
689 return m_acquisitionTime;
695 m_acquisitionTime = value;
702 return m_captureTime;
708 return m_captureTime;
714 m_captureTime = value;
721 return m_reprocessingTime;
727 return m_reprocessingTime;
733 m_reprocessingTime = value;
740 return m_throttlingTime;
746 return m_throttlingTime;
752 m_throttlingTime = value;
758 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::AcquisitionTime>::value,
int>::type = 0>
761 return m_acquisitionTime;
766 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::CaptureTime>::value,
int>::type = 0>
769 return m_captureTime;
774 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::ReprocessingTime>::value,
int>::type = 0>
777 return m_reprocessingTime;
782 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::ThrottlingTime>::value,
int>::type = 0>
785 return m_throttlingTime;
788 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
791 return m_acquisitionTime;
794 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
797 return m_captureTime;
800 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
803 return m_reprocessingTime;
806 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
809 return m_throttlingTime;
816 f(m_acquisitionTime);
818 f(m_reprocessingTime);
826 f(m_acquisitionTime);
828 f(m_reprocessingTime);
848 void setFromString(
const std::string &value);
850 void setFromString(
const std::string &fullPath,
const std::string &value);
852 std::string getString(
const std::string &fullPath)
const;
854 AcquisitionTime m_acquisitionTime;
855 CaptureTime m_captureTime;
856 ReprocessingTime m_reprocessingTime;
859 friend struct DataModel::Detail::Befriend<
Metrics>;
872 static constexpr const char *
path{
"SoftwareVersion" };
875 static constexpr const char *
name{
"SoftwareVersion" };
879 R
"description(The version information for installed software at the time of image capture)description"
892 static constexpr const char *
path{
"SoftwareVersion/Core" };
895 static constexpr const char *
name{
"Core" };
898 static constexpr const char *
description{ R
"description(Core version)description" };
906 return { 0, std::numeric_limits<ValueType::size_type>::max() };
914 : m_value{ std::move(
value) }
926 return m_value == other.m_value;
932 return m_value != other.m_value;
938 return m_value < other.m_value;
944 return m_value > other.m_value;
950 return m_value <= other.m_value;
956 return m_value >= other.m_value;
962 return stream <<
value.toString();
966 void setFromString(
const std::string &value);
968 std::string m_value{
"No-version" };
970 friend struct DataModel::Detail::Befriend<
Core>;
992 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
993 typename std::enable_if<
994 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
998 template<typename... Args>
1002 using namespace Zivid::Detail::TypeTraits;
1005 AllArgsDecayedAreUnique<Args...>::value,
1006 "Found duplicate types among the arguments passed to SoftwareVersion(...). "
1007 "Types should be listed at most once.");
1009 set(std::forward<Args>(args)...);
1023 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1025 template<typename... Args>
1029 using namespace Zivid::Detail::TypeTraits;
1031 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1033 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1036 AllArgsDecayedAreUnique<Args...>::value,
1037 "Found duplicate types among the arguments passed to set(...). "
1038 "Types should be listed at most once.");
1040 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1055 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1057 template<typename... Args>
1061 using namespace Zivid::Detail::TypeTraits;
1063 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1065 AllArgsAreDescendantNodes::value,
1066 "All arguments passed to copyWith(...) must be descendant nodes.");
1069 AllArgsDecayedAreUnique<Args...>::value,
1070 "Found duplicate types among the arguments passed to copyWith(...). "
1071 "Types should be listed at most once.");
1074 copy.set(std::forward<Args>(args)...);
1099 typename std::enable_if<std::is_same<T, FrameInfo::SoftwareVersion::Core>::value,
int>::type = 0>
1105 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1112 template<
typename F>
1119 template<
typename F>
1141 void setFromString(
const std::string &value);
1143 void setFromString(
const std::string &fullPath,
const std::string &value);
1145 std::string getString(
const std::string &fullPath)
const;
1162 static constexpr const char *
path{
"SystemInfo" };
1165 static constexpr const char *
name{
"SystemInfo" };
1169 R
"description(Information about the system that captured this frame)description"
1182 static constexpr const char *
path{
"SystemInfo/CPU" };
1185 static constexpr const char *
name{
"CPU" };
1188 static constexpr const char *
description{ R
"description(CPU)description" };
1200 static constexpr const char *
path{
"SystemInfo/CPU/Model" };
1203 static constexpr const char *
name{
"Model" };
1206 static constexpr const char *
description{ R
"description(CPU model)description" };
1214 return { 0, std::numeric_limits<ValueType::size_type>::max() };
1222 : m_value{ std::move(
value) }
1234 return m_value == other.m_value;
1240 return m_value != other.m_value;
1246 return m_value < other.m_value;
1252 return m_value > other.m_value;
1258 return m_value <= other.m_value;
1264 return m_value >= other.m_value;
1270 return stream <<
value.toString();
1274 void setFromString(
const std::string &value);
1276 std::string m_value{};
1278 friend struct DataModel::Detail::Befriend<
Model>;
1300 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1301 typename std::enable_if<
1302 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
1306 template<typename... Args>
1310 using namespace Zivid::Detail::TypeTraits;
1313 AllArgsDecayedAreUnique<Args...>::value,
1314 "Found duplicate types among the arguments passed to CPU(...). "
1315 "Types should be listed at most once.");
1317 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 =
1340 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1342 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1345 AllArgsDecayedAreUnique<Args...>::value,
1346 "Found duplicate types among the arguments passed to set(...). "
1347 "Types should be listed at most once.");
1349 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1364 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1366 template<typename... Args>
1370 using namespace Zivid::Detail::TypeTraits;
1372 using AllArgsAreDescendantNodes =
1373 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1375 AllArgsAreDescendantNodes::value,
1376 "All arguments passed to copyWith(...) must be descendant nodes.");
1379 AllArgsDecayedAreUnique<Args...>::value,
1380 "Found duplicate types among the arguments passed to copyWith(...). "
1381 "Types should be listed at most once.");
1384 copy.set(std::forward<Args>(args)...);
1409 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU::Model>::value,
int>::type = 0>
1415 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1422 template<
typename F>
1429 template<
typename F>
1451 void setFromString(
const std::string &value);
1453 void setFromString(
const std::string &fullPath,
const std::string &value);
1455 std::string getString(
const std::string &fullPath)
const;
1459 friend struct DataModel::Detail::Befriend<
CPU>;
1472 static constexpr const char *
path{
"SystemInfo/ComputeDevice" };
1475 static constexpr const char *
name{
"ComputeDevice" };
1478 static constexpr const char *
description{ R
"description(Compute device)description" };
1490 static constexpr const char *
path{
"SystemInfo/ComputeDevice/Model" };
1493 static constexpr const char *
name{
"Model" };
1496 static constexpr const char *
description{ R
"description(Compute device model)description" };
1504 return { 0, std::numeric_limits<ValueType::size_type>::max() };
1512 : m_value{ std::move(
value) }
1524 return m_value == other.m_value;
1530 return m_value != other.m_value;
1536 return m_value < other.m_value;
1542 return m_value > other.m_value;
1548 return m_value <= other.m_value;
1554 return m_value >= other.m_value;
1560 return stream <<
value.toString();
1564 void setFromString(
const std::string &value);
1566 std::string m_value{};
1568 friend struct DataModel::Detail::Befriend<
Model>;
1581 static constexpr const char *
path{
"SystemInfo/ComputeDevice/Vendor" };
1584 static constexpr const char *
name{
"Vendor" };
1587 static constexpr const char *
description{ R
"description(Compute device vendor)description" };
1595 return { 0, std::numeric_limits<ValueType::size_type>::max() };
1603 : m_value{ std::move(
value) }
1615 return m_value == other.m_value;
1621 return m_value != other.m_value;
1627 return m_value < other.m_value;
1633 return m_value > other.m_value;
1639 return m_value <= other.m_value;
1645 return m_value >= other.m_value;
1651 return stream <<
value.toString();
1655 void setFromString(
const std::string &value);
1657 std::string m_value{};
1659 friend struct DataModel::Detail::Befriend<
Vendor>;
1663 tuple<FrameInfo::SystemInfo::ComputeDevice::Model, FrameInfo::SystemInfo::ComputeDevice::Vendor>;
1683 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1684 typename std::enable_if<
1685 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
1689 template<typename... Args>
1693 using namespace Zivid::Detail::TypeTraits;
1696 AllArgsDecayedAreUnique<Args...>::value,
1697 "Found duplicate types among the arguments passed to ComputeDevice(...). "
1698 "Types should be listed at most once.");
1700 set(std::forward<Args>(args)...);
1715 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1717 template<typename... Args>
1721 using namespace Zivid::Detail::TypeTraits;
1723 using AllArgsAreDescendantNodes =
1724 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1726 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1729 AllArgsDecayedAreUnique<Args...>::value,
1730 "Found duplicate types among the arguments passed to set(...). "
1731 "Types should be listed at most once.");
1733 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1749 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1751 template<typename... Args>
1755 using namespace Zivid::Detail::TypeTraits;
1757 using AllArgsAreDescendantNodes =
1758 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1760 AllArgsAreDescendantNodes::value,
1761 "All arguments passed to copyWith(...) must be descendant nodes.");
1764 AllArgsDecayedAreUnique<Args...>::value,
1765 "Found duplicate types among the arguments passed to copyWith(...). "
1766 "Types should be listed at most once.");
1769 copy.set(std::forward<Args>(args)...);
1813 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Model>::value,
int>::
1822 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Vendor>::value,
int>::
1829 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1835 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
1842 template<
typename F>
1850 template<
typename F>
1873 void setFromString(
const std::string &value);
1875 void setFromString(
const std::string &fullPath,
const std::string &value);
1877 std::string getString(
const std::string &fullPath)
const;
1895 static constexpr const char *
path{
"SystemInfo/OperatingSystem" };
1898 static constexpr const char *
name{
"OperatingSystem" };
1901 static constexpr const char *
description{ R
"description(Operating system)description" };
1909 return { 0, std::numeric_limits<ValueType::size_type>::max() };
1917 : m_value{ std::move(
value) }
1929 return m_value == other.m_value;
1935 return m_value != other.m_value;
1941 return m_value < other.m_value;
1947 return m_value > other.m_value;
1953 return m_value <= other.m_value;
1959 return m_value >= other.m_value;
1965 return stream <<
value.toString();
1969 void setFromString(
const std::string &value);
1971 std::string m_value{};
2006 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2007 typename std::enable_if<
2008 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
2012 template<typename... Args>
2016 using namespace Zivid::Detail::TypeTraits;
2019 AllArgsDecayedAreUnique<Args...>::value,
2020 "Found duplicate types among the arguments passed to SystemInfo(...). "
2021 "Types should be listed at most once.");
2023 set(std::forward<Args>(args)...);
2042 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2044 template<typename... Args>
2048 using namespace Zivid::Detail::TypeTraits;
2050 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2052 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
2055 AllArgsDecayedAreUnique<Args...>::value,
2056 "Found duplicate types among the arguments passed to set(...). "
2057 "Types should be listed at most once.");
2059 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2079 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2081 template<typename... Args>
2085 using namespace Zivid::Detail::TypeTraits;
2087 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2089 AllArgsAreDescendantNodes::value,
2090 "All arguments passed to copyWith(...) must be descendant nodes.");
2093 AllArgsDecayedAreUnique<Args...>::value,
2094 "Found duplicate types among the arguments passed to copyWith(...). "
2095 "Types should be listed at most once.");
2098 copy.set(std::forward<Args>(args)...);
2131 return m_computeDevice;
2137 return m_computeDevice;
2143 m_computeDevice = value;
2150 m_computeDevice.
set(value);
2157 m_computeDevice.
set(value);
2164 return m_operatingSystem;
2170 return m_operatingSystem;
2176 m_operatingSystem = value;
2182 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU>::value,
int>::type = 0>
2190 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU::Model>::value,
int>::type = 0>
2198 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice>::value,
int>::type = 0>
2201 return m_computeDevice;
2206 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Model>::value,
int>::
2215 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Vendor>::value,
int>::
2224 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::OperatingSystem>::value,
int>::type = 0>
2227 return m_operatingSystem;
2230 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2236 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
2239 return m_computeDevice;
2242 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
2245 return m_operatingSystem;
2249 template<
typename F>
2254 f(m_operatingSystem);
2258 template<
typename F>
2263 f(m_operatingSystem);
2282 void setFromString(
const std::string &value);
2284 void setFromString(
const std::string &fullPath,
const std::string &value);
2286 std::string getString(
const std::string &fullPath)
const;
2292 friend struct DataModel::Detail::Befriend<
SystemInfo>;
2305 static constexpr const char *
path{
"TimeStamp" };
2308 static constexpr const char *
name{
"TimeStamp" };
2311 static constexpr const char *
description{ R
"description(The time of frame capture)description" };
2319 return { std::chrono::system_clock::time_point::min(), std::chrono::system_clock::time_point::max() };
2331 std::chrono::system_clock::time_point
value()
const;
2339 return m_value == other.m_value;
2345 return m_value != other.m_value;
2351 return m_value < other.m_value;
2357 return m_value > other.m_value;
2363 return m_value <= other.m_value;
2369 return m_value >= other.m_value;
2375 return stream <<
value.toString();
2379 void setFromString(
const std::string &value);
2381 std::chrono::system_clock::time_point m_value{};
2383 friend struct DataModel::Detail::Befriend<
TimeStamp>;
2451 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2452 typename std::enable_if<
2453 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
2456 template<typename... Args>
2460 using namespace Zivid::Detail::TypeTraits;
2463 AllArgsDecayedAreUnique<Args...>::value,
2464 "Found duplicate types among the arguments passed to FrameInfo(...). "
2465 "Types should be listed at most once.");
2467 set(std::forward<Args>(args)...);
2495 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2497 template<typename... Args>
2501 using namespace Zivid::Detail::TypeTraits;
2503 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2505 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
2508 AllArgsDecayedAreUnique<Args...>::value,
2509 "Found duplicate types among the arguments passed to set(...). "
2510 "Types should be listed at most once.");
2512 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2541 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2543 template<typename... Args>
2547 using namespace Zivid::Detail::TypeTraits;
2549 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2551 AllArgsAreDescendantNodes::value,
"All arguments passed to copyWith(...) must be descendant nodes.");
2554 AllArgsDecayedAreUnique<Args...>::value,
2555 "Found duplicate types among the arguments passed to copyWith(...). "
2556 "Types should be listed at most once.");
2559 copy.set(std::forward<Args>(args)...);
2585 m_metrics.
set(value);
2592 m_metrics.
set(value);
2599 m_metrics.
set(value);
2606 m_metrics.
set(value);
2613 return m_softwareVersion;
2619 return m_softwareVersion;
2625 m_softwareVersion = value;
2632 m_softwareVersion.
set(value);
2639 return m_systemInfo;
2645 return m_systemInfo;
2651 m_systemInfo = value;
2658 m_systemInfo.
set(value);
2665 m_systemInfo.
set(value);
2672 m_systemInfo.
set(value);
2679 m_systemInfo.
set(value);
2686 m_systemInfo.
set(value);
2693 m_systemInfo.
set(value);
2712 m_timeStamp = value;
2716 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::Metrics>::value,
int>::type = 0>
2724 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::AcquisitionTime>::value,
int>::type = 0>
2732 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::CaptureTime>::value,
int>::type = 0>
2740 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::ReprocessingTime>::value,
int>::type = 0>
2748 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::ThrottlingTime>::value,
int>::type = 0>
2754 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::SoftwareVersion>::value,
int>::type = 0>
2757 return m_softwareVersion;
2762 typename std::enable_if<std::is_same<T, FrameInfo::SoftwareVersion::Core>::value,
int>::type = 0>
2768 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo>::value,
int>::type = 0>
2771 return m_systemInfo;
2774 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU>::value,
int>::type = 0>
2782 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU::Model>::value,
int>::type = 0>
2790 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice>::value,
int>::type = 0>
2798 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Model>::value,
int>::type = 0>
2806 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Vendor>::value,
int>::type =
2815 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::OperatingSystem>::value,
int>::type = 0>
2821 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::TimeStamp>::value,
int>::type = 0>
2827 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2833 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
2836 return m_softwareVersion;
2839 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
2842 return m_systemInfo;
2845 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
2852 template<
typename F>
2856 f(m_softwareVersion);
2862 template<
typename F>
2866 f(m_softwareVersion);
2887 void save(
const std::string &fileName)
const;
2890 void load(
const std::string &fileName);
2893 void setFromString(
const std::string &value);
2895 void setFromString(
const std::string &fullPath,
const std::string &value);
2897 std::string getString(
const std::string &fullPath)
const;
2904 friend struct DataModel::Detail::Befriend<
FrameInfo>;
2909 struct FrameInfo::Version<6>
2922 ZIVID_CORE_EXPORT void save(
const Zivid::FrameInfo &dataModel, std::ostream &ostream);
2923 ZIVID_CORE_EXPORT void load(Zivid::FrameInfo &dataModel, std::istream &istream);
2925 ZIVID_CORE_EXPORT std::vector<uint8_t> serializeToBinaryVector(
const Zivid::FrameInfo &source);
2926 ZIVID_CORE_EXPORT void deserializeFromBinaryVector(Zivid::FrameInfo &dest,
const std::vector<uint8_t> &data);
2932# pragma warning(pop)
2936# if !(defined(_MSC_VER) && (_MSC_VER <= 1900))
2941 struct tuple_size<Zivid::FrameInfo::Metrics> : integral_constant<size_t, 4>
2945 struct tuple_element<i, Zivid::FrameInfo::Metrics>
2947 static_assert(i < tuple_size<Zivid::FrameInfo::Metrics>::value,
"Index must be less than 4");
2950 =
decltype(declval<Zivid::FrameInfo::Metrics>().get<i>());
2954 struct tuple_size<Zivid::FrameInfo::SoftwareVersion> : integral_constant<size_t, 1>
2958 struct tuple_element<i, Zivid::FrameInfo::SoftwareVersion>
2960 static_assert(i < tuple_size<Zivid::FrameInfo::SoftwareVersion>::value,
"Index must be less than 1");
2963 =
decltype(declval<Zivid::FrameInfo::SoftwareVersion>().get<i>());
2967 struct tuple_size<Zivid::FrameInfo::SystemInfo> : integral_constant<size_t, 3>
2971 struct tuple_element<i, Zivid::FrameInfo::SystemInfo>
2973 static_assert(i < tuple_size<Zivid::FrameInfo::SystemInfo>::value,
"Index must be less than 3");
2976 =
decltype(declval<Zivid::FrameInfo::SystemInfo>().get<i>());
2980 struct tuple_size<Zivid::FrameInfo::SystemInfo::CPU> : integral_constant<size_t, 1>
2984 struct tuple_element<i, Zivid::FrameInfo::SystemInfo::CPU>
2986 static_assert(i < tuple_size<Zivid::FrameInfo::SystemInfo::CPU>::value,
"Index must be less than 1");
2989 =
decltype(declval<Zivid::FrameInfo::SystemInfo::CPU>().get<i>());
2993 struct tuple_size<Zivid::FrameInfo::SystemInfo::ComputeDevice> : integral_constant<size_t, 2>
2997 struct tuple_element<i, Zivid::FrameInfo::SystemInfo::ComputeDevice>
2999 static_assert(i < tuple_size<Zivid::FrameInfo::SystemInfo::ComputeDevice>::value,
"Index must be less than 2");
3002 =
decltype(declval<Zivid::FrameInfo::SystemInfo::ComputeDevice>().get<i>());
3006 struct tuple_size<Zivid::FrameInfo> : integral_constant<size_t, 4>
3010 struct tuple_element<i, Zivid::FrameInfo>
3012 static_assert(i < tuple_size<Zivid::FrameInfo>::value,
"Index must be less than 4");
3015 =
decltype(declval<Zivid::FrameInfo>().get<i>());
3024#if defined(__has_include) && !defined(NO_DOC)
3025# if __has_include("Zivid/FrameInfoInternal.h") && __has_include("Zivid/DataModelNodeMetaData.h")
3026# include "Zivid/FrameInfoInternal.h"
#define ZIVID_CORE_EXPORT
Definition CoreExport.h:56
Contains information about the compute device used by Zivid::Application.
Definition ComputeDevice.h:58
Acquisition Time is the duration from the start of the capture to when the camera has acquired the la...
Definition FrameInfo.h:133
AcquisitionTime()=default
Default constructor.
bool operator<(const AcquisitionTime &other) const
Comparison operator.
Definition FrameInfo.h:189
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:145
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:139
bool operator<=(const AcquisitionTime &other) const
Comparison operator.
Definition FrameInfo.h:201
std::chrono::microseconds ValueType
The type of the underlying value.
Definition FrameInfo.h:154
bool operator>=(const AcquisitionTime &other) const
Comparison operator.
Definition FrameInfo.h:207
std::chrono::microseconds value() const
Get the value.
bool operator>(const AcquisitionTime &other) const
Comparison operator.
Definition FrameInfo.h:195
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:142
bool operator==(const AcquisitionTime &other) const
Comparison operator.
Definition FrameInfo.h:177
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:136
bool operator!=(const AcquisitionTime &other) const
Comparison operator.
Definition FrameInfo.h:183
constexpr AcquisitionTime(std::chrono::microseconds value)
Constructor.
Definition FrameInfo.h:166
static constexpr Range< std::chrono::microseconds > validRange()
The range of valid values for AcquisitionTime.
Definition FrameInfo.h:157
std::string toString() const
Get the value as string.
friend std::ostream & operator<<(std::ostream &stream, const AcquisitionTime &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:213
Capture Time is the duration from the start of the capture to when all of the data transfer and proce...
Definition FrameInfo.h:233
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:245
constexpr CaptureTime(std::chrono::microseconds value)
Constructor.
Definition FrameInfo.h:265
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:236
std::string toString() const
Get the value as string.
CaptureTime()=default
Default constructor.
bool operator<(const CaptureTime &other) const
Comparison operator.
Definition FrameInfo.h:288
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:239
std::chrono::microseconds ValueType
The type of the underlying value.
Definition FrameInfo.h:253
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:242
bool operator>(const CaptureTime &other) const
Comparison operator.
Definition FrameInfo.h:294
bool operator==(const CaptureTime &other) const
Comparison operator.
Definition FrameInfo.h:276
bool operator<=(const CaptureTime &other) const
Comparison operator.
Definition FrameInfo.h:300
bool operator>=(const CaptureTime &other) const
Comparison operator.
Definition FrameInfo.h:306
static constexpr Range< std::chrono::microseconds > validRange()
The range of valid values for CaptureTime.
Definition FrameInfo.h:256
bool operator!=(const CaptureTime &other) const
Comparison operator.
Definition FrameInfo.h:282
std::chrono::microseconds value() const
Get the value.
friend std::ostream & operator<<(std::ostream &stream, const CaptureTime &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:312
Reprocessing re-runs the entire processing pipeline (including filters, color balance etc....
Definition FrameInfo.h:344
bool operator<(const ReprocessingTime &other) const
Comparison operator.
Definition FrameInfo.h:420
constexpr ReprocessingTime(std::chrono::microseconds value)
Constructor.
Definition FrameInfo.h:388
static constexpr Range< std::chrono::microseconds > validRange()
The range of valid values for ReprocessingTime.
Definition FrameInfo.h:379
bool operator>=(const ReprocessingTime &other) const
Comparison operator.
Definition FrameInfo.h:438
bool hasValue() const
Check if the value is set.
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:356
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:350
bool operator>(const ReprocessingTime &other) const
Comparison operator.
Definition FrameInfo.h:426
std::string toString() const
Get the value as string.
void reset()
Reset the node to unset state.
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:353
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:347
std::chrono::microseconds value() const
Get the value.
bool operator<=(const ReprocessingTime &other) const
Comparison operator.
Definition FrameInfo.h:432
friend std::ostream & operator<<(std::ostream &stream, const ReprocessingTime &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:444
std::chrono::microseconds ValueType
The type of the underlying value.
Definition FrameInfo.h:376
bool operator==(const ReprocessingTime &other) const
Comparison operator.
Definition FrameInfo.h:408
ReprocessingTime()=default
Default constructor.
bool operator!=(const ReprocessingTime &other) const
Comparison operator.
Definition FrameInfo.h:414
Throttling Time is the duration that the capture was paused due to thermal or other constraints on th...
Definition FrameInfo.h:467
ThrottlingTime()=default
Default constructor.
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:470
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:473
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:479
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:476
bool operator==(const ThrottlingTime &other) const
Comparison operator.
Definition FrameInfo.h:513
static constexpr Range< std::chrono::microseconds > validRange()
The range of valid values for ThrottlingTime.
Definition FrameInfo.h:493
bool operator<=(const ThrottlingTime &other) const
Comparison operator.
Definition FrameInfo.h:537
std::chrono::microseconds ValueType
The type of the underlying value.
Definition FrameInfo.h:490
bool operator<(const ThrottlingTime &other) const
Comparison operator.
Definition FrameInfo.h:525
constexpr ThrottlingTime(std::chrono::microseconds value)
Constructor.
Definition FrameInfo.h:502
friend std::ostream & operator<<(std::ostream &stream, const ThrottlingTime &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:549
bool operator>(const ThrottlingTime &other) const
Comparison operator.
Definition FrameInfo.h:531
std::chrono::microseconds value() const
Get the value.
std::string toString() const
Get the value as string.
bool operator>=(const ThrottlingTime &other) const
Comparison operator.
Definition FrameInfo.h:543
bool operator!=(const ThrottlingTime &other) const
Comparison operator.
Definition FrameInfo.h:519
Metrics related to this capture.
Definition FrameInfo.h:111
const FrameInfo::Metrics::ThrottlingTime & get() const
Definition FrameInfo.h:783
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:120
const ThrottlingTime & throttlingTime() const
Get ThrottlingTime.
Definition FrameInfo.h:738
friend std::ostream & operator<<(std::ostream &stream, const Metrics &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:842
bool operator!=(const Metrics &other) const
Inequality operator.
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:123
Metrics()
Default constructor.
std::tuple< FrameInfo::Metrics::AcquisitionTime, FrameInfo::Metrics::CaptureTime, FrameInfo::Metrics::ReprocessingTime, FrameInfo::Metrics::ThrottlingTime > Descendants
Definition FrameInfo.h:562
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:114
const FrameInfo::Metrics::ReprocessingTime & get() const
Definition FrameInfo.h:775
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:814
Metrics copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition FrameInfo.h:661
const CaptureTime & captureTime() const
Get CaptureTime.
Definition FrameInfo.h:700
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:824
CaptureTime & captureTime()
Get CaptureTime.
Definition FrameInfo.h:706
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:117
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:626
Metrics & set(const CaptureTime &value)
Set CaptureTime.
Definition FrameInfo.h:712
const AcquisitionTime & acquisitionTime() const
Get AcquisitionTime.
Definition FrameInfo.h:681
const ReprocessingTime & reprocessingTime() const
Get ReprocessingTime.
Definition FrameInfo.h:719
const FrameInfo::Metrics::CaptureTime & get() const
Definition FrameInfo.h:767
Metrics & set(const ThrottlingTime &value)
Set ThrottlingTime.
Definition FrameInfo.h:750
AcquisitionTime & acquisitionTime()
Get AcquisitionTime.
Definition FrameInfo.h:687
ThrottlingTime & throttlingTime()
Get ThrottlingTime.
Definition FrameInfo.h:744
std::string toString() const
Get the value as string.
Metrics & set(const AcquisitionTime &value)
Set AcquisitionTime.
Definition FrameInfo.h:693
Metrics & set(const ReprocessingTime &value)
Set ReprocessingTime.
Definition FrameInfo.h:731
bool operator==(const Metrics &other) const
Equality operator.
ReprocessingTime & reprocessingTime()
Get ReprocessingTime.
Definition FrameInfo.h:725
const FrameInfo::Metrics::AcquisitionTime & get() const
Definition FrameInfo.h:759
Core version.
Definition FrameInfo.h:886
std::string toString() const
Get the value as string.
bool operator>=(const Core &other) const
Comparison operator.
Definition FrameInfo.h:954
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:892
const std::string & value() const
Get the value.
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:898
bool operator!=(const Core &other) const
Comparison operator.
Definition FrameInfo.h:930
Core(std::string value)
Constructor.
Definition FrameInfo.h:913
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:889
bool operator==(const Core &other) const
Comparison operator.
Definition FrameInfo.h:924
Core()=default
Default constructor.
bool operator>(const Core &other) const
Comparison operator.
Definition FrameInfo.h:942
bool operator<(const Core &other) const
Comparison operator.
Definition FrameInfo.h:936
friend std::ostream & operator<<(std::ostream &stream, const Core &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:960
bool operator<=(const Core &other) const
Comparison operator.
Definition FrameInfo.h:948
std::string ValueType
The type of the underlying value.
Definition FrameInfo.h:901
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:895
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Core.
Definition FrameInfo.h:904
The version information for installed software at the time of image capture.
Definition FrameInfo.h:866
const Core & core() const
Get Core.
Definition FrameInfo.h:1079
friend std::ostream & operator<<(std::ostream &stream, const SoftwareVersion &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:1135
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:1120
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:875
SoftwareVersion()
Default constructor.
const FrameInfo::SoftwareVersion::Core & get() const
Definition FrameInfo.h:1100
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:1059
Core & core()
Get Core.
Definition FrameInfo.h:1085
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:1113
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:878
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:869
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:872
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:1027
std::tuple< FrameInfo::SoftwareVersion::Core > Descendants
Definition FrameInfo.h:973
SoftwareVersion & set(const Core &value)
Set Core.
Definition FrameInfo.h:1091
std::string toString() const
Get the value as string.
CPU model.
Definition FrameInfo.h:1194
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:1203
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:1197
const std::string & value() const
Get the value.
bool operator!=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1238
Model()=default
Default constructor.
bool operator<(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1244
std::string toString() const
Get the value as string.
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:1206
bool operator==(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1232
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:1200
bool operator>=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1262
friend std::ostream & operator<<(std::ostream &stream, const Model &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:1268
bool operator<=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1256
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Model.
Definition FrameInfo.h:1212
std::string ValueType
The type of the underlying value.
Definition FrameInfo.h:1209
Model(std::string value)
Constructor.
Definition FrameInfo.h:1221
bool operator>(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1250
CPU.
Definition FrameInfo.h:1176
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:1182
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:1430
const Model & model() const
Get Model.
Definition FrameInfo.h:1389
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:1188
std::tuple< FrameInfo::SystemInfo::CPU::Model > Descendants
Definition FrameInfo.h:1281
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:1423
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:1445
CPU & set(const Model &value)
Set Model.
Definition FrameInfo.h:1401
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:1335
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:1179
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:1368
Model & model()
Get Model.
Definition FrameInfo.h:1395
const FrameInfo::SystemInfo::CPU::Model & get() const
Definition FrameInfo.h:1410
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:1185
Compute device model.
Definition FrameInfo.h:1484
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Model.
Definition FrameInfo.h:1502
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:1496
std::string toString() const
Get the value as string.
bool operator<=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1546
Model(std::string value)
Constructor.
Definition FrameInfo.h:1511
std::string ValueType
The type of the underlying value.
Definition FrameInfo.h:1499
const std::string & value() const
Get the value.
bool operator==(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1522
bool operator!=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1528
bool operator>=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1552
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:1487
bool operator>(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1540
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:1493
friend std::ostream & operator<<(std::ostream &stream, const Model &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:1558
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:1490
bool operator<(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1534
Model()=default
Default constructor.
Compute device vendor.
Definition FrameInfo.h:1575
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:1581
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:1578
bool operator>(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:1631
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Vendor.
Definition FrameInfo.h:1593
friend std::ostream & operator<<(std::ostream &stream, const Vendor &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:1649
bool operator>=(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:1643
bool operator<(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:1625
bool operator==(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:1613
std::string ValueType
The type of the underlying value.
Definition FrameInfo.h:1590
Vendor()=default
Default constructor.
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:1584
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:1587
std::string toString() const
Get the value as string.
bool operator<=(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:1637
const std::string & value() const
Get the value.
bool operator!=(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:1619
Vendor(std::string value)
Constructor.
Definition FrameInfo.h:1602
Compute device.
Definition FrameInfo.h:1466
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:1475
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:1719
ComputeDevice & set(const Model &value)
Set Model.
Definition FrameInfo.h:1786
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:1843
const Vendor & vendor() const
Get Vendor.
Definition FrameInfo.h:1793
std:: tuple< FrameInfo::SystemInfo::ComputeDevice::Model, FrameInfo::SystemInfo::ComputeDevice::Vendor > Descendants
Definition FrameInfo.h:1662
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:1851
Model & model()
Get Model.
Definition FrameInfo.h:1780
Vendor & vendor()
Get Vendor.
Definition FrameInfo.h:1799
bool operator==(const ComputeDevice &other) const
Equality operator.
const FrameInfo::SystemInfo::ComputeDevice::Vendor & get() const
Definition FrameInfo.h:1824
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:1478
const Model & model() const
Get Model.
Definition FrameInfo.h:1774
friend std::ostream & operator<<(std::ostream &stream, const ComputeDevice &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:1867
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:1805
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:1753
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:1469
const FrameInfo::SystemInfo::ComputeDevice::Model & get() const
Definition FrameInfo.h:1815
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:1472
Operating system.
Definition FrameInfo.h:1889
bool operator>(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:1945
OperatingSystem(std::string value)
Constructor.
Definition FrameInfo.h:1916
bool operator!=(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:1933
bool operator<(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:1939
bool operator>=(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:1957
bool operator==(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:1927
std::string ValueType
The type of the underlying value.
Definition FrameInfo.h:1904
OperatingSystem()=default
Default constructor.
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:1898
bool operator<=(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:1951
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:1901
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:1892
const std::string & value() const
Get the value.
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:1895
friend std::ostream & operator<<(std::ostream &stream, const OperatingSystem &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:1963
std::string toString() const
Get the value as string.
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for OperatingSystem.
Definition FrameInfo.h:1907
Information about the system that captured this frame.
Definition FrameInfo.h:1156
SystemInfo & set(const CPU::Model &value)
Set CPU::Model.
Definition FrameInfo.h:2122
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:1168
std::string toString() const
Get the value as string.
const FrameInfo::SystemInfo::CPU & get() const
Definition FrameInfo.h:2183
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:2250
ComputeDevice & computeDevice()
Get ComputeDevice.
Definition FrameInfo.h:2135
SystemInfo & set(const ComputeDevice &value)
Set ComputeDevice.
Definition FrameInfo.h:2141
const FrameInfo::SystemInfo::ComputeDevice::Vendor & get() const
Definition FrameInfo.h:2217
SystemInfo & set(const CPU &value)
Set CPU.
Definition FrameInfo.h:2115
bool operator==(const SystemInfo &other) const
Equality operator.
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:2046
friend std::ostream & operator<<(std::ostream &stream, const SystemInfo &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:2276
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:1165
const ComputeDevice & computeDevice() const
Get ComputeDevice.
Definition FrameInfo.h:2129
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:2259
SystemInfo & set(const ComputeDevice::Vendor &value)
Set ComputeDevice::Vendor.
Definition FrameInfo.h:2155
SystemInfo & set(const OperatingSystem &value)
Set OperatingSystem.
Definition FrameInfo.h:2174
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:2083
bool operator!=(const SystemInfo &other) const
Inequality operator.
SystemInfo & set(const ComputeDevice::Model &value)
Set ComputeDevice::Model.
Definition FrameInfo.h:2148
const FrameInfo::SystemInfo::OperatingSystem & get() const
Definition FrameInfo.h:2225
CPU & cpu()
Get CPU.
Definition FrameInfo.h:2109
const FrameInfo::SystemInfo::ComputeDevice & get() const
Definition FrameInfo.h:2199
const OperatingSystem & operatingSystem() const
Get OperatingSystem.
Definition FrameInfo.h:2162
OperatingSystem & operatingSystem()
Get OperatingSystem.
Definition FrameInfo.h:2168
SystemInfo()
Default constructor.
const CPU & cpu() const
Get CPU.
Definition FrameInfo.h:2103
const FrameInfo::SystemInfo::ComputeDevice::Model & get() const
Definition FrameInfo.h:2208
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:1976
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:1159
const FrameInfo::SystemInfo::CPU::Model & get() const
Definition FrameInfo.h:2191
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:1162
The time of frame capture.
Definition FrameInfo.h:2299
std::chrono::system_clock::time_point value() const
Get the value.
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:2308
bool operator>(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:2355
bool operator<(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:2349
bool operator<=(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:2361
static constexpr Range< std::chrono::system_clock::time_point > validRange()
The range of valid values for TimeStamp.
Definition FrameInfo.h:2317
bool operator>=(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:2367
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:2311
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:2373
TimeStamp()=default
Default constructor.
constexpr TimeStamp(std::chrono::system_clock::time_point value)
Constructor.
Definition FrameInfo.h:2326
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:2305
bool operator!=(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:2343
bool operator==(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:2337
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:2302
std::chrono::system_clock::time_point ValueType
The type of the underlying value.
Definition FrameInfo.h:2314
Various information for a frame.
Definition FrameInfo.h:79
const FrameInfo::Metrics::ReprocessingTime & get() const
Definition FrameInfo.h:2741
TimeStamp & timeStamp()
Get TimeStamp.
Definition FrameInfo.h:2704
const FrameInfo::Metrics::ThrottlingTime & get() const
Definition FrameInfo.h:2749
std::string toString() const
Get the value as string.
Metrics & metrics()
Get Metrics.
Definition FrameInfo.h:2570
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:2853
const FrameInfo::SoftwareVersion::Core & get() const
Definition FrameInfo.h:2763
const FrameInfo::Metrics & get() const
Definition FrameInfo.h:2717
const FrameInfo::Metrics::CaptureTime & get() const
Definition FrameInfo.h:2733
FrameInfo & set(const SystemInfo::ComputeDevice &value)
Set SystemInfo::ComputeDevice.
Definition FrameInfo.h:2670
FrameInfo()
Default constructor.
std::tuple< FrameInfo::Metrics, FrameInfo::Metrics::AcquisitionTime, FrameInfo::Metrics::CaptureTime, FrameInfo::Metrics::ReprocessingTime, FrameInfo::Metrics::ThrottlingTime, 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:2386
FrameInfo & set(const Metrics::ThrottlingTime &value)
Set Metrics::ThrottlingTime.
Definition FrameInfo.h:2604
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:82
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:2499
const FrameInfo::SystemInfo::ComputeDevice::Model & get() const
Definition FrameInfo.h:2799
const FrameInfo::Metrics::AcquisitionTime & get() const
Definition FrameInfo.h:2725
FrameInfo & set(const SystemInfo::OperatingSystem &value)
Set SystemInfo::OperatingSystem.
Definition FrameInfo.h:2691
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:85
void save(const std::string &fileName) const
Save to the given file.
const SystemInfo & systemInfo() const
Get SystemInfo.
Definition FrameInfo.h:2637
FrameInfo & set(const Metrics::CaptureTime &value)
Set Metrics::CaptureTime.
Definition FrameInfo.h:2590
FrameInfo & set(const SystemInfo &value)
Set SystemInfo.
Definition FrameInfo.h:2649
const TimeStamp & timeStamp() const
Get TimeStamp.
Definition FrameInfo.h:2698
SoftwareVersion & softwareVersion()
Get SoftwareVersion.
Definition FrameInfo.h:2617
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:2684
const FrameInfo::SoftwareVersion & get() const
Definition FrameInfo.h:2755
friend std::ostream & operator<<(std::ostream &stream, const FrameInfo &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:2881
FrameInfo & set(const TimeStamp &value)
Set TimeStamp.
Definition FrameInfo.h:2710
FrameInfo(Args &&...args)
Constructor taking variadic number of arguments.
Definition FrameInfo.h:2458
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:88
const FrameInfo::TimeStamp & get() const
Definition FrameInfo.h:2822
const SoftwareVersion & softwareVersion() const
Get SoftwareVersion.
Definition FrameInfo.h:2611
FrameInfo & set(const SystemInfo::CPU::Model &value)
Set SystemInfo::CPU::Model.
Definition FrameInfo.h:2663
static FrameInfo fromSerialized(const std::string &value)
Construct a new FrameInfo instance from a previously serialized string.
FrameInfo & set(const SystemInfo::ComputeDevice::Model &value)
Set SystemInfo::ComputeDevice::Model.
Definition FrameInfo.h:2677
const FrameInfo::SystemInfo::CPU::Model & get() const
Definition FrameInfo.h:2783
const FrameInfo::SystemInfo::ComputeDevice::Vendor & get() const
Definition FrameInfo.h:2808
FrameInfo & set(const SoftwareVersion &value)
Set SoftwareVersion.
Definition FrameInfo.h:2623
const FrameInfo::SystemInfo & get() const
Definition FrameInfo.h:2769
FrameInfo & set(const Metrics::ReprocessingTime &value)
Set Metrics::ReprocessingTime.
Definition FrameInfo.h:2597
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:91
const FrameInfo::SystemInfo::ComputeDevice & get() const
Definition FrameInfo.h:2791
FrameInfo & set(const SoftwareVersion::Core &value)
Set SoftwareVersion::Core.
Definition FrameInfo.h:2630
static constexpr size_t version
Definition FrameInfo.h:93
SystemInfo & systemInfo()
Get SystemInfo.
Definition FrameInfo.h:2643
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:2863
FrameInfo & set(const Metrics::AcquisitionTime &value)
Set Metrics::AcquisitionTime.
Definition FrameInfo.h:2583
bool operator==(const FrameInfo &other) const
Equality operator.
FrameInfo & set(const SystemInfo::CPU &value)
Set SystemInfo::CPU.
Definition FrameInfo.h:2656
const FrameInfo::SystemInfo::CPU & get() const
Definition FrameInfo.h:2775
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:2545
FrameInfo & set(const Metrics &value)
Set Metrics.
Definition FrameInfo.h:2576
const Metrics & metrics() const
Get Metrics.
Definition FrameInfo.h:2564
const FrameInfo::SystemInfo::OperatingSystem & get() const
Definition FrameInfo.h:2816
Class describing a range of values for a given type T.
Definition Range.h:75
NodeType
Definition NodeType.h:49
@ leafValue
Definition NodeType.h:52
@ group
Definition NodeType.h:50
Definition EnvironmentInfo.h:74
Get version information for the library.
Definition Version.h:58
The main Zivid namespace. All Zivid code is found here.
Definition Application.h:84