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{
"Diagnostics" };
120 static constexpr const char *
name{
"Diagnostics" };
123 static constexpr const char *
description{ R
"description(Diagnostic information for frame)description" };
135 static constexpr const char *
path{
"Diagnostics/PacketLoss" };
138 static constexpr const char *
name{
"PacketLoss" };
141 static constexpr const char *
description{ R
"description(Is frame missing any data)description" };
151 return {
false,
true };
169 explicit operator bool()
const
177 return m_value == other.m_value;
183 return m_value != other.m_value;
189 return stream <<
value.toString();
193 void setFromString(
const std::string &value);
195 bool m_value{
false };
197 friend struct DataModel::Detail::Befriend<
PacketLoss>;
200 using Descendants = std::tuple<FrameInfo::Diagnostics::PacketLoss>;
219 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
220 typename std::enable_if<
221 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
225 template<typename... Args>
229 using namespace Zivid::Detail::TypeTraits;
232 AllArgsDecayedAreUnique<Args...>::value,
233 "Found duplicate types among the arguments passed to Diagnostics(...). "
234 "Types should be listed at most once.");
236 set(std::forward<Args>(args)...);
250 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
252 template<typename... Args>
256 using namespace Zivid::Detail::TypeTraits;
258 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
260 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
263 AllArgsDecayedAreUnique<Args...>::value,
264 "Found duplicate types among the arguments passed to set(...). "
265 "Types should be listed at most once.");
267 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
282 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
284 template<typename... Args>
288 using namespace Zivid::Detail::TypeTraits;
290 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
292 AllArgsAreDescendantNodes::value,
293 "All arguments passed to copyWith(...) must be descendant nodes.");
296 AllArgsDecayedAreUnique<Args...>::value,
297 "Found duplicate types among the arguments passed to copyWith(...). "
298 "Types should be listed at most once.");
301 copy.set(std::forward<Args>(args)...);
320 m_packetLoss = value;
326 typename std::enable_if<std::is_same<T, FrameInfo::Diagnostics::PacketLoss>::value,
int>::type = 0>
332 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
368 void setFromString(
const std::string &value);
370 void setFromString(
const std::string &fullPath,
const std::string &value);
372 std::string getString(
const std::string &fullPath)
const;
376 friend struct DataModel::Detail::Befriend<
Diagnostics>;
389 static constexpr const char *
path{
"Metrics" };
392 static constexpr const char *
name{
"Metrics" };
395 static constexpr const char *
description{ R
"description(Metrics related to this capture.)description" };
411 static constexpr const char *
path{
"Metrics/AcquisitionTime" };
414 static constexpr const char *
name{
"AcquisitionTime" };
418 R
"description(Acquisition Time is the duration from the start of the capture to when the camera has acquired the
419last image. After this time, the camera has finished its acquisition and you can move the robot,
420or capture with another camera with overlapping field of view. Acquisition Time is equal to the
421time it takes for the Camera::capture(settings) API function call to return.
431 return { std::chrono::microseconds::min(), std::chrono::microseconds::max() };
443 std::chrono::microseconds
value()
const;
451 return m_value == other.m_value;
457 return m_value != other.m_value;
463 return m_value < other.m_value;
469 return m_value > other.m_value;
475 return m_value <= other.m_value;
481 return m_value >= other.m_value;
487 return stream <<
value.toString();
491 void setFromString(
const std::string &value);
493 std::chrono::microseconds m_value{ -1 };
511 static constexpr const char *
path{
"Metrics/CaptureTime" };
514 static constexpr const char *
name{
"CaptureTime" };
518 R
"description(Capture Time is the duration from the start of the capture to when all of the data transfer and
519processing has completed. After this time the 3D point cloud and/or 2D color image is ready and
520available on the GPU memory, and can be copied to the system memory (RAM).
530 return { std::chrono::microseconds::min(), std::chrono::microseconds::max() };
542 std::chrono::microseconds
value()
const;
550 return m_value == other.m_value;
556 return m_value != other.m_value;
562 return m_value < other.m_value;
568 return m_value > other.m_value;
574 return m_value <= other.m_value;
580 return m_value >= other.m_value;
586 return stream <<
value.toString();
590 void setFromString(
const std::string &value);
592 std::chrono::microseconds m_value{ -1 };
594 friend struct DataModel::Detail::Befriend<
CaptureTime>;
611 static constexpr const char *
path{
"Metrics/KernelComputeTime" };
614 static constexpr const char *
name{
"KernelComputeTime" };
618 R
"description(Kernel Compute Time is the duration of the compute on the GPU. It is a subset of Capture Time. Kernel
619Compute Time depends on the capture settings and the compute power of the GPU. Note that Kernel Compute
620Time + Acquisition Time is not equal to Capture Time, as acquisition and processing operations can be
621performed in parallel.
631 return { std::chrono::microseconds::min(), std::chrono::microseconds::max() };
643 std::chrono::microseconds
value()
const;
651 return m_value == other.m_value;
657 return m_value != other.m_value;
663 return m_value < other.m_value;
669 return m_value > other.m_value;
675 return m_value <= other.m_value;
681 return m_value >= other.m_value;
687 return stream <<
value.toString();
691 void setFromString(
const std::string &value);
693 std::chrono::microseconds m_value{ -1 };
723 static constexpr const char *
path{
"Metrics/ReprocessingTime" };
726 static constexpr const char *
name{
"ReprocessingTime" };
730 R
"description(Reprocessing re-runs the entire processing pipeline (including filters, color balance etc.) on a
731previously acquired frame. Reprocessing is available in Zivid Studio for captures with Diagnostics Mode
732enabled. The ReprocessingTime field is only set if this frame was reprocessed after it was initially
733captured, otherwise it will be unset.
735Reprocessing Time is the duration from the start of the reprocessing action and until all processing
736of the new frame has finished. After this time the 3D point cloud and/or 2D color image is ready and
737available on the GPU memory and can be copied to the system memory (RAM).
739Reprocessing Time depends on the processing settings that are enabled, which capture engine that was
740used, the pixel sampling setting and the number of acquisitions used. Reprocessing Time also depends on
741the compute power of the compute device.
743Note that for a frame that has been re-processed, the Acquisition Time and Capture Time refers to
744the originally captured frame. Only Reprocessing Time is updated in a reprocessed frame.
754 return { std::chrono::microseconds::min(), std::chrono::microseconds::max() };
769 std::chrono::microseconds
value()
const;
783 return m_opt == other.m_opt;
789 return m_opt != other.m_opt;
795 return m_opt < other.m_opt;
801 return m_opt > other.m_opt;
807 return m_opt <= other.m_opt;
813 return m_opt >= other.m_opt;
819 return stream <<
value.toString();
823 void setFromString(
const std::string &value);
825 std::optional<std::chrono::microseconds> m_opt;
846 static constexpr const char *
path{
"Metrics/ThrottlingTime" };
849 static constexpr const char *
name{
"ThrottlingTime" };
853 R
"description(Throttling Time is the duration that the capture was paused due to thermal or other constraints on the
854camera's components while it was capturing this frame. This duration is part of the overall Acquisition
855Time. If the camera throttled during a capture, it will result in a longer Acquisition Time.
857Whether or not the camera will throttle depends on the ambient temperature, the capture settings, and
858the how frequently the camera is capturing.
868 return { std::chrono::microseconds::min(), std::chrono::microseconds::max() };
880 std::chrono::microseconds
value()
const;
888 return m_value == other.m_value;
894 return m_value != other.m_value;
900 return m_value < other.m_value;
906 return m_value > other.m_value;
912 return m_value <= other.m_value;
918 return m_value >= other.m_value;
924 return stream <<
value.toString();
928 void setFromString(
const std::string &value);
930 std::chrono::microseconds m_value{ -1 };
963 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
964 typename std::enable_if<
965 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
969 template<typename... Args>
973 using namespace Zivid::Detail::TypeTraits;
976 AllArgsDecayedAreUnique<Args...>::value,
977 "Found duplicate types among the arguments passed to Metrics(...). "
978 "Types should be listed at most once.");
980 set(std::forward<Args>(args)...);
998 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1000 template<typename... Args>
1004 using namespace Zivid::Detail::TypeTraits;
1006 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1008 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1011 AllArgsDecayedAreUnique<Args...>::value,
1012 "Found duplicate types among the arguments passed to set(...). "
1013 "Types should be listed at most once.");
1015 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1034 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1036 template<typename... Args>
1040 using namespace Zivid::Detail::TypeTraits;
1042 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1044 AllArgsAreDescendantNodes::value,
1045 "All arguments passed to copyWith(...) must be descendant nodes.");
1048 AllArgsDecayedAreUnique<Args...>::value,
1049 "Found duplicate types among the arguments passed to copyWith(...). "
1050 "Types should be listed at most once.");
1053 copy.set(std::forward<Args>(args)...);
1060 return m_acquisitionTime;
1066 return m_acquisitionTime;
1072 m_acquisitionTime = value;
1079 return m_captureTime;
1085 return m_captureTime;
1091 m_captureTime = value;
1098 return m_kernelComputeTime;
1104 return m_kernelComputeTime;
1110 m_kernelComputeTime = value;
1117 return m_reprocessingTime;
1123 return m_reprocessingTime;
1129 m_reprocessingTime = value;
1136 return m_throttlingTime;
1142 return m_throttlingTime;
1148 m_throttlingTime = value;
1154 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::AcquisitionTime>::value,
int>::type = 0>
1157 return m_acquisitionTime;
1162 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::CaptureTime>::value,
int>::type = 0>
1165 return m_captureTime;
1170 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::KernelComputeTime>::value,
int>::type = 0>
1173 return m_kernelComputeTime;
1178 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::ReprocessingTime>::value,
int>::type = 0>
1181 return m_reprocessingTime;
1186 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::ThrottlingTime>::value,
int>::type = 0>
1189 return m_throttlingTime;
1192 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1195 return m_acquisitionTime;
1198 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
1201 return m_captureTime;
1204 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
1207 return m_kernelComputeTime;
1210 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
1213 return m_reprocessingTime;
1216 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
1219 return m_throttlingTime;
1223 template<
typename F>
1226 f(m_acquisitionTime);
1228 f(m_kernelComputeTime);
1229 f(m_reprocessingTime);
1230 f(m_throttlingTime);
1234 template<
typename F>
1237 f(m_acquisitionTime);
1239 f(m_kernelComputeTime);
1240 f(m_reprocessingTime);
1241 f(m_throttlingTime);
1260 void setFromString(
const std::string &value);
1262 void setFromString(
const std::string &fullPath,
const std::string &value);
1264 std::string getString(
const std::string &fullPath)
const;
1266 AcquisitionTime m_acquisitionTime;
1267 CaptureTime m_captureTime;
1268 KernelComputeTime m_kernelComputeTime;
1269 ReprocessingTime m_reprocessingTime;
1272 friend struct DataModel::Detail::Befriend<
Metrics>;
1285 static constexpr const char *
path{
"SoftwareVersion" };
1288 static constexpr const char *
name{
"SoftwareVersion" };
1292 R
"description(The version information for installed software at the time of image capture)description"
1305 static constexpr const char *
path{
"SoftwareVersion/Core" };
1308 static constexpr const char *
name{
"Core" };
1311 static constexpr const char *
description{ R
"description(Core version)description" };
1319 return { 0, std::numeric_limits<ValueType::size_type>::max() };
1327 : m_value{ std::move(
value) }
1339 return m_value == other.m_value;
1345 return m_value != other.m_value;
1351 return m_value < other.m_value;
1357 return m_value > other.m_value;
1363 return m_value <= other.m_value;
1369 return m_value >= other.m_value;
1375 return stream <<
value.toString();
1379 void setFromString(
const std::string &value);
1381 std::string m_value{
"No-version" };
1383 friend struct DataModel::Detail::Befriend<
Core>;
1405 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1406 typename std::enable_if<
1407 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
1411 template<typename... Args>
1415 using namespace Zivid::Detail::TypeTraits;
1418 AllArgsDecayedAreUnique<Args...>::value,
1419 "Found duplicate types among the arguments passed to SoftwareVersion(...). "
1420 "Types should be listed at most once.");
1422 set(std::forward<Args>(args)...);
1436 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1438 template<typename... Args>
1442 using namespace Zivid::Detail::TypeTraits;
1444 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1446 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1449 AllArgsDecayedAreUnique<Args...>::value,
1450 "Found duplicate types among the arguments passed to set(...). "
1451 "Types should be listed at most once.");
1453 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1468 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1470 template<typename... Args>
1474 using namespace Zivid::Detail::TypeTraits;
1476 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1478 AllArgsAreDescendantNodes::value,
1479 "All arguments passed to copyWith(...) must be descendant nodes.");
1482 AllArgsDecayedAreUnique<Args...>::value,
1483 "Found duplicate types among the arguments passed to copyWith(...). "
1484 "Types should be listed at most once.");
1487 copy.set(std::forward<Args>(args)...);
1512 typename std::enable_if<std::is_same<T, FrameInfo::SoftwareVersion::Core>::value,
int>::type = 0>
1518 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1525 template<
typename F>
1532 template<
typename F>
1554 void setFromString(
const std::string &value);
1556 void setFromString(
const std::string &fullPath,
const std::string &value);
1558 std::string getString(
const std::string &fullPath)
const;
1575 static constexpr const char *
path{
"SystemInfo" };
1578 static constexpr const char *
name{
"SystemInfo" };
1582 R
"description(Information about the system that captured this frame)description"
1595 static constexpr const char *
path{
"SystemInfo/CPU" };
1598 static constexpr const char *
name{
"CPU" };
1601 static constexpr const char *
description{ R
"description(CPU)description" };
1613 static constexpr const char *
path{
"SystemInfo/CPU/Model" };
1616 static constexpr const char *
name{
"Model" };
1619 static constexpr const char *
description{ R
"description(CPU model)description" };
1627 return { 0, std::numeric_limits<ValueType::size_type>::max() };
1635 : m_value{ std::move(
value) }
1647 return m_value == other.m_value;
1653 return m_value != other.m_value;
1659 return m_value < other.m_value;
1665 return m_value > other.m_value;
1671 return m_value <= other.m_value;
1677 return m_value >= other.m_value;
1683 return stream <<
value.toString();
1687 void setFromString(
const std::string &value);
1689 std::string m_value{};
1691 friend struct DataModel::Detail::Befriend<
Model>;
1713 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1714 typename std::enable_if<
1715 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
1719 template<typename... Args>
1723 using namespace Zivid::Detail::TypeTraits;
1726 AllArgsDecayedAreUnique<Args...>::value,
1727 "Found duplicate types among the arguments passed to CPU(...). "
1728 "Types should be listed at most once.");
1730 set(std::forward<Args>(args)...);
1744 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1746 template<typename... Args>
1750 using namespace Zivid::Detail::TypeTraits;
1752 using AllArgsAreDescendantNodes =
1753 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1755 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1758 AllArgsDecayedAreUnique<Args...>::value,
1759 "Found duplicate types among the arguments passed to set(...). "
1760 "Types should be listed at most once.");
1762 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1777 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1779 template<typename... Args>
1783 using namespace Zivid::Detail::TypeTraits;
1785 using AllArgsAreDescendantNodes =
1786 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1788 AllArgsAreDescendantNodes::value,
1789 "All arguments passed to copyWith(...) must be descendant nodes.");
1792 AllArgsDecayedAreUnique<Args...>::value,
1793 "Found duplicate types among the arguments passed to copyWith(...). "
1794 "Types should be listed at most once.");
1797 copy.set(std::forward<Args>(args)...);
1822 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU::Model>::value,
int>::type = 0>
1828 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1835 template<
typename F>
1842 template<
typename F>
1864 void setFromString(
const std::string &value);
1866 void setFromString(
const std::string &fullPath,
const std::string &value);
1868 std::string getString(
const std::string &fullPath)
const;
1872 friend struct DataModel::Detail::Befriend<
CPU>;
1885 static constexpr const char *
path{
"SystemInfo/ComputeDevice" };
1888 static constexpr const char *
name{
"ComputeDevice" };
1891 static constexpr const char *
description{ R
"description(Compute device)description" };
1903 static constexpr const char *
path{
"SystemInfo/ComputeDevice/Model" };
1906 static constexpr const char *
name{
"Model" };
1909 static constexpr const char *
description{ R
"description(Compute device model)description" };
1917 return { 0, std::numeric_limits<ValueType::size_type>::max() };
1925 : m_value{ std::move(
value) }
1937 return m_value == other.m_value;
1943 return m_value != other.m_value;
1949 return m_value < other.m_value;
1955 return m_value > other.m_value;
1961 return m_value <= other.m_value;
1967 return m_value >= other.m_value;
1973 return stream <<
value.toString();
1977 void setFromString(
const std::string &value);
1979 std::string m_value{};
1981 friend struct DataModel::Detail::Befriend<
Model>;
1994 static constexpr const char *
path{
"SystemInfo/ComputeDevice/Vendor" };
1997 static constexpr const char *
name{
"Vendor" };
2000 static constexpr const char *
description{ R
"description(Compute device vendor)description" };
2008 return { 0, std::numeric_limits<ValueType::size_type>::max() };
2016 : m_value{ std::move(
value) }
2028 return m_value == other.m_value;
2034 return m_value != other.m_value;
2040 return m_value < other.m_value;
2046 return m_value > other.m_value;
2052 return m_value <= other.m_value;
2058 return m_value >= other.m_value;
2064 return stream <<
value.toString();
2068 void setFromString(
const std::string &value);
2070 std::string m_value{};
2072 friend struct DataModel::Detail::Befriend<
Vendor>;
2076 tuple<FrameInfo::SystemInfo::ComputeDevice::Model, FrameInfo::SystemInfo::ComputeDevice::Vendor>;
2096 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2097 typename std::enable_if<
2098 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
2102 template<typename... Args>
2106 using namespace Zivid::Detail::TypeTraits;
2109 AllArgsDecayedAreUnique<Args...>::value,
2110 "Found duplicate types among the arguments passed to ComputeDevice(...). "
2111 "Types should be listed at most once.");
2113 set(std::forward<Args>(args)...);
2128 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2130 template<typename... Args>
2134 using namespace Zivid::Detail::TypeTraits;
2136 using AllArgsAreDescendantNodes =
2137 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2139 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
2142 AllArgsDecayedAreUnique<Args...>::value,
2143 "Found duplicate types among the arguments passed to set(...). "
2144 "Types should be listed at most once.");
2146 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2162 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2164 template<typename... Args>
2168 using namespace Zivid::Detail::TypeTraits;
2170 using AllArgsAreDescendantNodes =
2171 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2173 AllArgsAreDescendantNodes::value,
2174 "All arguments passed to copyWith(...) must be descendant nodes.");
2177 AllArgsDecayedAreUnique<Args...>::value,
2178 "Found duplicate types among the arguments passed to copyWith(...). "
2179 "Types should be listed at most once.");
2182 copy.set(std::forward<Args>(args)...);
2226 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Model>::value,
int>::
2235 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Vendor>::value,
int>::
2242 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2248 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
2255 template<
typename F>
2263 template<
typename F>
2286 void setFromString(
const std::string &value);
2288 void setFromString(
const std::string &fullPath,
const std::string &value);
2290 std::string getString(
const std::string &fullPath)
const;
2308 static constexpr const char *
path{
"SystemInfo/OperatingSystem" };
2311 static constexpr const char *
name{
"OperatingSystem" };
2314 static constexpr const char *
description{ R
"description(Operating system)description" };
2322 return { 0, std::numeric_limits<ValueType::size_type>::max() };
2330 : m_value{ std::move(
value) }
2342 return m_value == other.m_value;
2348 return m_value != other.m_value;
2354 return m_value < other.m_value;
2360 return m_value > other.m_value;
2366 return m_value <= other.m_value;
2372 return m_value >= other.m_value;
2378 return stream <<
value.toString();
2382 void setFromString(
const std::string &value);
2384 std::string m_value{};
2419 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2420 typename std::enable_if<
2421 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
2425 template<typename... Args>
2429 using namespace Zivid::Detail::TypeTraits;
2432 AllArgsDecayedAreUnique<Args...>::value,
2433 "Found duplicate types among the arguments passed to SystemInfo(...). "
2434 "Types should be listed at most once.");
2436 set(std::forward<Args>(args)...);
2455 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2457 template<typename... Args>
2461 using namespace Zivid::Detail::TypeTraits;
2463 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2465 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
2468 AllArgsDecayedAreUnique<Args...>::value,
2469 "Found duplicate types among the arguments passed to set(...). "
2470 "Types should be listed at most once.");
2472 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2492 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2494 template<typename... Args>
2498 using namespace Zivid::Detail::TypeTraits;
2500 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2502 AllArgsAreDescendantNodes::value,
2503 "All arguments passed to copyWith(...) must be descendant nodes.");
2506 AllArgsDecayedAreUnique<Args...>::value,
2507 "Found duplicate types among the arguments passed to copyWith(...). "
2508 "Types should be listed at most once.");
2511 copy.set(std::forward<Args>(args)...);
2544 return m_computeDevice;
2550 return m_computeDevice;
2556 m_computeDevice = value;
2563 m_computeDevice.
set(value);
2570 m_computeDevice.
set(value);
2577 return m_operatingSystem;
2583 return m_operatingSystem;
2589 m_operatingSystem = value;
2595 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU>::value,
int>::type = 0>
2603 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU::Model>::value,
int>::type = 0>
2611 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice>::value,
int>::type = 0>
2614 return m_computeDevice;
2619 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Model>::value,
int>::
2628 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Vendor>::value,
int>::
2637 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::OperatingSystem>::value,
int>::type = 0>
2640 return m_operatingSystem;
2643 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2649 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
2652 return m_computeDevice;
2655 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
2658 return m_operatingSystem;
2662 template<
typename F>
2667 f(m_operatingSystem);
2671 template<
typename F>
2676 f(m_operatingSystem);
2695 void setFromString(
const std::string &value);
2697 void setFromString(
const std::string &fullPath,
const std::string &value);
2699 std::string getString(
const std::string &fullPath)
const;
2705 friend struct DataModel::Detail::Befriend<
SystemInfo>;
2718 static constexpr const char *
path{
"TimeStamp" };
2721 static constexpr const char *
name{
"TimeStamp" };
2724 static constexpr const char *
description{ R
"description(The time of frame capture)description" };
2732 return { std::chrono::system_clock::time_point::min(), std::chrono::system_clock::time_point::max() };
2744 std::chrono::system_clock::time_point
value()
const;
2752 return m_value == other.m_value;
2758 return m_value != other.m_value;
2764 return m_value < other.m_value;
2770 return m_value > other.m_value;
2776 return m_value <= other.m_value;
2782 return m_value >= other.m_value;
2788 return stream <<
value.toString();
2792 void setFromString(
const std::string &value);
2794 std::chrono::system_clock::time_point m_value{};
2796 friend struct DataModel::Detail::Befriend<
TimeStamp>;
2870 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2871 typename std::enable_if<
2872 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
2875 template<typename... Args>
2879 using namespace Zivid::Detail::TypeTraits;
2882 AllArgsDecayedAreUnique<Args...>::value,
2883 "Found duplicate types among the arguments passed to FrameInfo(...). "
2884 "Types should be listed at most once.");
2886 set(std::forward<Args>(args)...);
2917 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2919 template<typename... Args>
2923 using namespace Zivid::Detail::TypeTraits;
2925 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2927 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
2930 AllArgsDecayedAreUnique<Args...>::value,
2931 "Found duplicate types among the arguments passed to set(...). "
2932 "Types should be listed at most once.");
2934 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2966 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2968 template<typename... Args>
2972 using namespace Zivid::Detail::TypeTraits;
2974 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2976 AllArgsAreDescendantNodes::value,
"All arguments passed to copyWith(...) must be descendant nodes.");
2979 AllArgsDecayedAreUnique<Args...>::value,
2980 "Found duplicate types among the arguments passed to copyWith(...). "
2981 "Types should be listed at most once.");
2984 copy.set(std::forward<Args>(args)...);
2991 return m_diagnostics;
2997 return m_diagnostics;
3003 m_diagnostics = value;
3010 m_diagnostics.
set(value);
3036 m_metrics.
set(value);
3043 m_metrics.
set(value);
3050 m_metrics.
set(value);
3057 m_metrics.
set(value);
3064 m_metrics.
set(value);
3071 return m_softwareVersion;
3077 return m_softwareVersion;
3083 m_softwareVersion = value;
3090 m_softwareVersion.
set(value);
3097 return m_systemInfo;
3103 return m_systemInfo;
3109 m_systemInfo = value;
3116 m_systemInfo.
set(value);
3123 m_systemInfo.
set(value);
3130 m_systemInfo.
set(value);
3137 m_systemInfo.
set(value);
3144 m_systemInfo.
set(value);
3151 m_systemInfo.
set(value);
3170 m_timeStamp = value;
3174 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::Diagnostics>::value,
int>::type = 0>
3177 return m_diagnostics;
3182 typename std::enable_if<std::is_same<T, FrameInfo::Diagnostics::PacketLoss>::value,
int>::type = 0>
3188 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::Metrics>::value,
int>::type = 0>
3196 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::AcquisitionTime>::value,
int>::type = 0>
3204 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::CaptureTime>::value,
int>::type = 0>
3212 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::KernelComputeTime>::value,
int>::type = 0>
3220 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::ReprocessingTime>::value,
int>::type = 0>
3228 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::ThrottlingTime>::value,
int>::type = 0>
3234 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::SoftwareVersion>::value,
int>::type = 0>
3237 return m_softwareVersion;
3242 typename std::enable_if<std::is_same<T, FrameInfo::SoftwareVersion::Core>::value,
int>::type = 0>
3248 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo>::value,
int>::type = 0>
3251 return m_systemInfo;
3254 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU>::value,
int>::type = 0>
3262 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU::Model>::value,
int>::type = 0>
3270 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice>::value,
int>::type = 0>
3278 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Model>::value,
int>::type = 0>
3286 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Vendor>::value,
int>::type =
3295 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::OperatingSystem>::value,
int>::type = 0>
3301 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::TimeStamp>::value,
int>::type = 0>
3307 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
3310 return m_diagnostics;
3313 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
3319 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
3322 return m_softwareVersion;
3325 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
3328 return m_systemInfo;
3331 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
3338 template<
typename F>
3343 f(m_softwareVersion);
3349 template<
typename F>
3354 f(m_softwareVersion);
3375 void save(
const std::string &fileName)
const;
3378 void load(
const std::string &fileName);
3381 void setFromString(
const std::string &value);
3383 void setFromString(
const std::string &fullPath,
const std::string &value);
3385 std::string getString(
const std::string &fullPath)
const;
3393 friend struct DataModel::Detail::Befriend<
FrameInfo>;
3398 struct FrameInfo::Version<8>
3411 ZIVID_CORE_EXPORT void save(
const Zivid::FrameInfo &dataModel, std::ostream &ostream);
3412 ZIVID_CORE_EXPORT void load(Zivid::FrameInfo &dataModel, std::istream &istream);
3418# pragma warning(pop)
3422# if !(defined(_MSC_VER) && (_MSC_VER <= 1900))
3427 struct tuple_size<Zivid::FrameInfo::Diagnostics> : integral_constant<size_t, 1>
3431 struct tuple_element<i, Zivid::FrameInfo::Diagnostics>
3433 static_assert(i < tuple_size<Zivid::FrameInfo::Diagnostics>::value,
"Index must be less than 1");
3436 =
decltype(declval<Zivid::FrameInfo::Diagnostics>().get<i>());
3440 struct tuple_size<Zivid::FrameInfo::Metrics> : integral_constant<size_t, 5>
3444 struct tuple_element<i, Zivid::FrameInfo::Metrics>
3446 static_assert(i < tuple_size<Zivid::FrameInfo::Metrics>::value,
"Index must be less than 5");
3449 =
decltype(declval<Zivid::FrameInfo::Metrics>().get<i>());
3453 struct tuple_size<Zivid::FrameInfo::SoftwareVersion> : integral_constant<size_t, 1>
3457 struct tuple_element<i, Zivid::FrameInfo::SoftwareVersion>
3459 static_assert(i < tuple_size<Zivid::FrameInfo::SoftwareVersion>::value,
"Index must be less than 1");
3462 =
decltype(declval<Zivid::FrameInfo::SoftwareVersion>().get<i>());
3466 struct tuple_size<Zivid::FrameInfo::SystemInfo> : integral_constant<size_t, 3>
3470 struct tuple_element<i, Zivid::FrameInfo::SystemInfo>
3472 static_assert(i < tuple_size<Zivid::FrameInfo::SystemInfo>::value,
"Index must be less than 3");
3475 =
decltype(declval<Zivid::FrameInfo::SystemInfo>().get<i>());
3479 struct tuple_size<Zivid::FrameInfo::SystemInfo::CPU> : integral_constant<size_t, 1>
3483 struct tuple_element<i, Zivid::FrameInfo::SystemInfo::CPU>
3485 static_assert(i < tuple_size<Zivid::FrameInfo::SystemInfo::CPU>::value,
"Index must be less than 1");
3488 =
decltype(declval<Zivid::FrameInfo::SystemInfo::CPU>().get<i>());
3492 struct tuple_size<Zivid::FrameInfo::SystemInfo::ComputeDevice> : integral_constant<size_t, 2>
3496 struct tuple_element<i, Zivid::FrameInfo::SystemInfo::ComputeDevice>
3498 static_assert(i < tuple_size<Zivid::FrameInfo::SystemInfo::ComputeDevice>::value,
"Index must be less than 2");
3501 =
decltype(declval<Zivid::FrameInfo::SystemInfo::ComputeDevice>().get<i>());
3505 struct tuple_size<Zivid::FrameInfo> : integral_constant<size_t, 5>
3509 struct tuple_element<i, Zivid::FrameInfo>
3511 static_assert(i < tuple_size<Zivid::FrameInfo>::value,
"Index must be less than 5");
3514 =
decltype(declval<Zivid::FrameInfo>().get<i>());
3523#if defined(__has_include) && !defined(NO_DOC)
3524# if __has_include("Zivid/FrameInfoInternal.h") && __has_include("Zivid/DataModelNodeMetaData.h")
3525# 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:60
Is frame missing any data.
Definition FrameInfo.h:129
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:132
bool value() const
Get the value.
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:135
bool ValueType
The type of the underlying value.
Definition FrameInfo.h:144
bool operator!=(const PacketLoss &other) const
Comparison operator.
Definition FrameInfo.h:181
friend std::ostream & operator<<(std::ostream &stream, const PacketLoss &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:187
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:141
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:138
static const PacketLoss yes
On/enabled.
Definition FrameInfo.h:145
PacketLoss()=default
Default constructor.
std::string toString() const
Get the value as string.
static const PacketLoss no
Off/disabled.
Definition FrameInfo.h:146
static std::set< bool > validValues()
All valid values of PacketLoss.
Definition FrameInfo.h:149
constexpr PacketLoss(bool value)
Constructor.
Definition FrameInfo.h:158
bool operator==(const PacketLoss &other) const
Comparison operator.
Definition FrameInfo.h:175
Diagnostic information for frame.
Definition FrameInfo.h:111
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:120
friend std::ostream & operator<<(std::ostream &stream, const Diagnostics &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:362
bool operator!=(const Diagnostics &other) const
Inequality operator.
std::string toString() const
Get the value as string.
const FrameInfo::Diagnostics::PacketLoss & get() const
Definition FrameInfo.h:327
Diagnostics & set(const PacketLoss &value)
Set PacketLoss.
Definition FrameInfo.h:318
Diagnostics copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition FrameInfo.h:286
const PacketLoss & packetLoss() const
Get PacketLoss.
Definition FrameInfo.h:306
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:117
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:123
std::tuple< FrameInfo::Diagnostics::PacketLoss > Descendants
Definition FrameInfo.h:200
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:347
bool operator==(const Diagnostics &other) const
Equality operator.
PacketLoss & packetLoss()
Get PacketLoss.
Definition FrameInfo.h:312
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:254
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:340
Diagnostics()
Default constructor.
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:114
Acquisition Time is the duration from the start of the capture to when the camera has acquired the la...
Definition FrameInfo.h:405
AcquisitionTime()=default
Default constructor.
bool operator<(const AcquisitionTime &other) const
Comparison operator.
Definition FrameInfo.h:461
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:417
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:411
bool operator<=(const AcquisitionTime &other) const
Comparison operator.
Definition FrameInfo.h:473
std::chrono::microseconds ValueType
The type of the underlying value.
Definition FrameInfo.h:426
bool operator>=(const AcquisitionTime &other) const
Comparison operator.
Definition FrameInfo.h:479
std::chrono::microseconds value() const
Get the value.
bool operator>(const AcquisitionTime &other) const
Comparison operator.
Definition FrameInfo.h:467
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:414
bool operator==(const AcquisitionTime &other) const
Comparison operator.
Definition FrameInfo.h:449
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:408
bool operator!=(const AcquisitionTime &other) const
Comparison operator.
Definition FrameInfo.h:455
constexpr AcquisitionTime(std::chrono::microseconds value)
Constructor.
Definition FrameInfo.h:438
static constexpr Range< std::chrono::microseconds > validRange()
The range of valid values for AcquisitionTime.
Definition FrameInfo.h:429
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:485
Capture Time is the duration from the start of the capture to when all of the data transfer and proce...
Definition FrameInfo.h:505
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:517
constexpr CaptureTime(std::chrono::microseconds value)
Constructor.
Definition FrameInfo.h:537
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:508
std::string toString() const
Get the value as string.
CaptureTime()=default
Default constructor.
bool operator<(const CaptureTime &other) const
Comparison operator.
Definition FrameInfo.h:560
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:511
std::chrono::microseconds ValueType
The type of the underlying value.
Definition FrameInfo.h:525
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:514
bool operator>(const CaptureTime &other) const
Comparison operator.
Definition FrameInfo.h:566
bool operator==(const CaptureTime &other) const
Comparison operator.
Definition FrameInfo.h:548
bool operator<=(const CaptureTime &other) const
Comparison operator.
Definition FrameInfo.h:572
bool operator>=(const CaptureTime &other) const
Comparison operator.
Definition FrameInfo.h:578
static constexpr Range< std::chrono::microseconds > validRange()
The range of valid values for CaptureTime.
Definition FrameInfo.h:528
bool operator!=(const CaptureTime &other) const
Comparison operator.
Definition FrameInfo.h:554
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:584
Kernel Compute Time is the duration of the compute on the GPU. It is a subset of Capture Time....
Definition FrameInfo.h:605
KernelComputeTime()=default
Default constructor.
bool operator>=(const KernelComputeTime &other) const
Comparison operator.
Definition FrameInfo.h:679
std::chrono::microseconds ValueType
The type of the underlying value.
Definition FrameInfo.h:626
std::chrono::microseconds value() const
Get the value.
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:608
bool operator!=(const KernelComputeTime &other) const
Comparison operator.
Definition FrameInfo.h:655
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:611
bool operator==(const KernelComputeTime &other) const
Comparison operator.
Definition FrameInfo.h:649
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:617
bool operator<=(const KernelComputeTime &other) const
Comparison operator.
Definition FrameInfo.h:673
static constexpr Range< std::chrono::microseconds > validRange()
The range of valid values for KernelComputeTime.
Definition FrameInfo.h:629
constexpr KernelComputeTime(std::chrono::microseconds value)
Constructor.
Definition FrameInfo.h:638
bool operator<(const KernelComputeTime &other) const
Comparison operator.
Definition FrameInfo.h:661
std::string toString() const
Get the value as string.
friend std::ostream & operator<<(std::ostream &stream, const KernelComputeTime &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:685
bool operator>(const KernelComputeTime &other) const
Comparison operator.
Definition FrameInfo.h:667
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:614
Reprocessing re-runs the entire processing pipeline (including filters, color balance etc....
Definition FrameInfo.h:717
bool operator<(const ReprocessingTime &other) const
Comparison operator.
Definition FrameInfo.h:793
constexpr ReprocessingTime(std::chrono::microseconds value)
Constructor.
Definition FrameInfo.h:761
static constexpr Range< std::chrono::microseconds > validRange()
The range of valid values for ReprocessingTime.
Definition FrameInfo.h:752
bool operator>=(const ReprocessingTime &other) const
Comparison operator.
Definition FrameInfo.h:811
bool hasValue() const
Check if the value is set.
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:729
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:723
bool operator>(const ReprocessingTime &other) const
Comparison operator.
Definition FrameInfo.h:799
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:726
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:720
std::chrono::microseconds value() const
Get the value.
bool operator<=(const ReprocessingTime &other) const
Comparison operator.
Definition FrameInfo.h:805
friend std::ostream & operator<<(std::ostream &stream, const ReprocessingTime &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:817
std::chrono::microseconds ValueType
The type of the underlying value.
Definition FrameInfo.h:749
bool operator==(const ReprocessingTime &other) const
Comparison operator.
Definition FrameInfo.h:781
ReprocessingTime()=default
Default constructor.
bool operator!=(const ReprocessingTime &other) const
Comparison operator.
Definition FrameInfo.h:787
Throttling Time is the duration that the capture was paused due to thermal or other constraints on th...
Definition FrameInfo.h:840
ThrottlingTime()=default
Default constructor.
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:843
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:846
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:852
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:849
bool operator==(const ThrottlingTime &other) const
Comparison operator.
Definition FrameInfo.h:886
static constexpr Range< std::chrono::microseconds > validRange()
The range of valid values for ThrottlingTime.
Definition FrameInfo.h:866
bool operator<=(const ThrottlingTime &other) const
Comparison operator.
Definition FrameInfo.h:910
std::chrono::microseconds ValueType
The type of the underlying value.
Definition FrameInfo.h:863
bool operator<(const ThrottlingTime &other) const
Comparison operator.
Definition FrameInfo.h:898
constexpr ThrottlingTime(std::chrono::microseconds value)
Constructor.
Definition FrameInfo.h:875
friend std::ostream & operator<<(std::ostream &stream, const ThrottlingTime &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:922
bool operator>(const ThrottlingTime &other) const
Comparison operator.
Definition FrameInfo.h:904
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:916
bool operator!=(const ThrottlingTime &other) const
Comparison operator.
Definition FrameInfo.h:892
Metrics related to this capture.
Definition FrameInfo.h:383
const FrameInfo::Metrics::ThrottlingTime & get() const
Definition FrameInfo.h:1187
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:392
const ThrottlingTime & throttlingTime() const
Get ThrottlingTime.
Definition FrameInfo.h:1134
friend std::ostream & operator<<(std::ostream &stream, const Metrics &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:1254
bool operator!=(const Metrics &other) const
Inequality operator.
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:395
Metrics()
Default constructor.
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:386
const KernelComputeTime & kernelComputeTime() const
Get KernelComputeTime.
Definition FrameInfo.h:1096
const FrameInfo::Metrics::ReprocessingTime & get() const
Definition FrameInfo.h:1179
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:1224
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:1038
const CaptureTime & captureTime() const
Get CaptureTime.
Definition FrameInfo.h:1077
KernelComputeTime & kernelComputeTime()
Get KernelComputeTime.
Definition FrameInfo.h:1102
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:1235
CaptureTime & captureTime()
Get CaptureTime.
Definition FrameInfo.h:1083
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:389
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:1002
const FrameInfo::Metrics::KernelComputeTime & get() const
Definition FrameInfo.h:1171
Metrics & set(const CaptureTime &value)
Set CaptureTime.
Definition FrameInfo.h:1089
const AcquisitionTime & acquisitionTime() const
Get AcquisitionTime.
Definition FrameInfo.h:1058
const ReprocessingTime & reprocessingTime() const
Get ReprocessingTime.
Definition FrameInfo.h:1115
const FrameInfo::Metrics::CaptureTime & get() const
Definition FrameInfo.h:1163
Metrics & set(const ThrottlingTime &value)
Set ThrottlingTime.
Definition FrameInfo.h:1146
AcquisitionTime & acquisitionTime()
Get AcquisitionTime.
Definition FrameInfo.h:1064
ThrottlingTime & throttlingTime()
Get ThrottlingTime.
Definition FrameInfo.h:1140
std::tuple< FrameInfo::Metrics::AcquisitionTime, FrameInfo::Metrics::CaptureTime, FrameInfo::Metrics::KernelComputeTime, FrameInfo::Metrics::ReprocessingTime, FrameInfo::Metrics::ThrottlingTime > Descendants
Definition FrameInfo.h:935
std::string toString() const
Get the value as string.
Metrics & set(const KernelComputeTime &value)
Set KernelComputeTime.
Definition FrameInfo.h:1108
Metrics & set(const AcquisitionTime &value)
Set AcquisitionTime.
Definition FrameInfo.h:1070
Metrics & set(const ReprocessingTime &value)
Set ReprocessingTime.
Definition FrameInfo.h:1127
bool operator==(const Metrics &other) const
Equality operator.
ReprocessingTime & reprocessingTime()
Get ReprocessingTime.
Definition FrameInfo.h:1121
const FrameInfo::Metrics::AcquisitionTime & get() const
Definition FrameInfo.h:1155
Core version.
Definition FrameInfo.h:1299
std::string toString() const
Get the value as string.
bool operator>=(const Core &other) const
Comparison operator.
Definition FrameInfo.h:1367
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:1305
const std::string & value() const
Get the value.
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:1311
bool operator!=(const Core &other) const
Comparison operator.
Definition FrameInfo.h:1343
Core(std::string value)
Constructor.
Definition FrameInfo.h:1326
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:1302
bool operator==(const Core &other) const
Comparison operator.
Definition FrameInfo.h:1337
Core()=default
Default constructor.
bool operator>(const Core &other) const
Comparison operator.
Definition FrameInfo.h:1355
bool operator<(const Core &other) const
Comparison operator.
Definition FrameInfo.h:1349
friend std::ostream & operator<<(std::ostream &stream, const Core &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:1373
bool operator<=(const Core &other) const
Comparison operator.
Definition FrameInfo.h:1361
std::string ValueType
The type of the underlying value.
Definition FrameInfo.h:1314
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:1308
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Core.
Definition FrameInfo.h:1317
The version information for installed software at the time of image capture.
Definition FrameInfo.h:1279
const Core & core() const
Get Core.
Definition FrameInfo.h:1492
friend std::ostream & operator<<(std::ostream &stream, const SoftwareVersion &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:1548
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:1533
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:1288
SoftwareVersion()
Default constructor.
const FrameInfo::SoftwareVersion::Core & get() const
Definition FrameInfo.h:1513
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:1472
Core & core()
Get Core.
Definition FrameInfo.h:1498
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:1526
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:1291
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:1282
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:1285
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:1440
std::tuple< FrameInfo::SoftwareVersion::Core > Descendants
Definition FrameInfo.h:1386
SoftwareVersion & set(const Core &value)
Set Core.
Definition FrameInfo.h:1504
std::string toString() const
Get the value as string.
CPU model.
Definition FrameInfo.h:1607
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:1616
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:1610
const std::string & value() const
Get the value.
bool operator!=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1651
Model()=default
Default constructor.
bool operator<(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1657
std::string toString() const
Get the value as string.
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:1619
bool operator==(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1645
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:1613
bool operator>=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1675
friend std::ostream & operator<<(std::ostream &stream, const Model &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:1681
bool operator<=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1669
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Model.
Definition FrameInfo.h:1625
std::string ValueType
The type of the underlying value.
Definition FrameInfo.h:1622
Model(std::string value)
Constructor.
Definition FrameInfo.h:1634
bool operator>(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1663
CPU.
Definition FrameInfo.h:1589
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:1595
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:1843
const Model & model() const
Get Model.
Definition FrameInfo.h:1802
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:1601
std::tuple< FrameInfo::SystemInfo::CPU::Model > Descendants
Definition FrameInfo.h:1694
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:1836
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:1858
CPU & set(const Model &value)
Set Model.
Definition FrameInfo.h:1814
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:1748
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:1592
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:1781
Model & model()
Get Model.
Definition FrameInfo.h:1808
const FrameInfo::SystemInfo::CPU::Model & get() const
Definition FrameInfo.h:1823
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:1598
Compute device model.
Definition FrameInfo.h:1897
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Model.
Definition FrameInfo.h:1915
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:1909
std::string toString() const
Get the value as string.
bool operator<=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1959
Model(std::string value)
Constructor.
Definition FrameInfo.h:1924
std::string ValueType
The type of the underlying value.
Definition FrameInfo.h:1912
const std::string & value() const
Get the value.
bool operator==(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1935
bool operator!=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1941
bool operator>=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1965
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:1900
bool operator>(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1953
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:1906
friend std::ostream & operator<<(std::ostream &stream, const Model &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:1971
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:1903
bool operator<(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1947
Model()=default
Default constructor.
Compute device vendor.
Definition FrameInfo.h:1988
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:1994
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:1991
bool operator>(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:2044
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Vendor.
Definition FrameInfo.h:2006
friend std::ostream & operator<<(std::ostream &stream, const Vendor &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:2062
bool operator>=(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:2056
bool operator<(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:2038
bool operator==(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:2026
std::string ValueType
The type of the underlying value.
Definition FrameInfo.h:2003
Vendor()=default
Default constructor.
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:1997
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:2000
std::string toString() const
Get the value as string.
bool operator<=(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:2050
const std::string & value() const
Get the value.
bool operator!=(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:2032
Vendor(std::string value)
Constructor.
Definition FrameInfo.h:2015
Compute device.
Definition FrameInfo.h:1879
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:1888
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:2132
ComputeDevice & set(const Model &value)
Set Model.
Definition FrameInfo.h:2199
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:2256
const Vendor & vendor() const
Get Vendor.
Definition FrameInfo.h:2206
std:: tuple< FrameInfo::SystemInfo::ComputeDevice::Model, FrameInfo::SystemInfo::ComputeDevice::Vendor > Descendants
Definition FrameInfo.h:2075
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:2264
Model & model()
Get Model.
Definition FrameInfo.h:2193
Vendor & vendor()
Get Vendor.
Definition FrameInfo.h:2212
bool operator==(const ComputeDevice &other) const
Equality operator.
const FrameInfo::SystemInfo::ComputeDevice::Vendor & get() const
Definition FrameInfo.h:2237
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:1891
const Model & model() const
Get Model.
Definition FrameInfo.h:2187
friend std::ostream & operator<<(std::ostream &stream, const ComputeDevice &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:2280
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:2218
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:2166
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:1882
const FrameInfo::SystemInfo::ComputeDevice::Model & get() const
Definition FrameInfo.h:2228
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:1885
Operating system.
Definition FrameInfo.h:2302
bool operator>(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:2358
OperatingSystem(std::string value)
Constructor.
Definition FrameInfo.h:2329
bool operator!=(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:2346
bool operator<(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:2352
bool operator>=(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:2370
bool operator==(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:2340
std::string ValueType
The type of the underlying value.
Definition FrameInfo.h:2317
OperatingSystem()=default
Default constructor.
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:2311
bool operator<=(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:2364
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:2314
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:2305
const std::string & value() const
Get the value.
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:2308
friend std::ostream & operator<<(std::ostream &stream, const OperatingSystem &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:2376
std::string toString() const
Get the value as string.
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for OperatingSystem.
Definition FrameInfo.h:2320
Information about the system that captured this frame.
Definition FrameInfo.h:1569
SystemInfo & set(const CPU::Model &value)
Set CPU::Model.
Definition FrameInfo.h:2535
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:1581
std::string toString() const
Get the value as string.
const FrameInfo::SystemInfo::CPU & get() const
Definition FrameInfo.h:2596
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:2663
ComputeDevice & computeDevice()
Get ComputeDevice.
Definition FrameInfo.h:2548
SystemInfo & set(const ComputeDevice &value)
Set ComputeDevice.
Definition FrameInfo.h:2554
const FrameInfo::SystemInfo::ComputeDevice::Vendor & get() const
Definition FrameInfo.h:2630
SystemInfo & set(const CPU &value)
Set CPU.
Definition FrameInfo.h:2528
bool operator==(const SystemInfo &other) const
Equality operator.
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:2459
friend std::ostream & operator<<(std::ostream &stream, const SystemInfo &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:2689
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:1578
const ComputeDevice & computeDevice() const
Get ComputeDevice.
Definition FrameInfo.h:2542
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:2672
SystemInfo & set(const ComputeDevice::Vendor &value)
Set ComputeDevice::Vendor.
Definition FrameInfo.h:2568
SystemInfo & set(const OperatingSystem &value)
Set OperatingSystem.
Definition FrameInfo.h:2587
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:2496
bool operator!=(const SystemInfo &other) const
Inequality operator.
SystemInfo & set(const ComputeDevice::Model &value)
Set ComputeDevice::Model.
Definition FrameInfo.h:2561
const FrameInfo::SystemInfo::OperatingSystem & get() const
Definition FrameInfo.h:2638
CPU & cpu()
Get CPU.
Definition FrameInfo.h:2522
const FrameInfo::SystemInfo::ComputeDevice & get() const
Definition FrameInfo.h:2612
const OperatingSystem & operatingSystem() const
Get OperatingSystem.
Definition FrameInfo.h:2575
OperatingSystem & operatingSystem()
Get OperatingSystem.
Definition FrameInfo.h:2581
SystemInfo()
Default constructor.
const CPU & cpu() const
Get CPU.
Definition FrameInfo.h:2516
const FrameInfo::SystemInfo::ComputeDevice::Model & get() const
Definition FrameInfo.h:2621
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:2389
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:1572
const FrameInfo::SystemInfo::CPU::Model & get() const
Definition FrameInfo.h:2604
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:1575
The time of frame capture.
Definition FrameInfo.h:2712
std::chrono::system_clock::time_point value() const
Get the value.
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:2721
bool operator>(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:2768
bool operator<(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:2762
bool operator<=(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:2774
static constexpr Range< std::chrono::system_clock::time_point > validRange()
The range of valid values for TimeStamp.
Definition FrameInfo.h:2730
bool operator>=(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:2780
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:2724
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:2786
TimeStamp()=default
Default constructor.
constexpr TimeStamp(std::chrono::system_clock::time_point value)
Constructor.
Definition FrameInfo.h:2739
static constexpr const char * path
The full path for this value.
Definition FrameInfo.h:2718
bool operator!=(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:2756
bool operator==(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:2750
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:2715
std::chrono::system_clock::time_point ValueType
The type of the underlying value.
Definition FrameInfo.h:2727
Various information for a frame.
Definition FrameInfo.h:79
const FrameInfo::Metrics::ReprocessingTime & get() const
Definition FrameInfo.h:3221
TimeStamp & timeStamp()
Get TimeStamp.
Definition FrameInfo.h:3162
const FrameInfo::Metrics::ThrottlingTime & get() const
Definition FrameInfo.h:3229
std::string toString() const
Get the value as string.
Metrics & metrics()
Get Metrics.
Definition FrameInfo.h:3021
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:3339
const FrameInfo::SoftwareVersion::Core & get() const
Definition FrameInfo.h:3243
const FrameInfo::Metrics & get() const
Definition FrameInfo.h:3189
const FrameInfo::Metrics::CaptureTime & get() const
Definition FrameInfo.h:3205
FrameInfo & set(const SystemInfo::ComputeDevice &value)
Set SystemInfo::ComputeDevice.
Definition FrameInfo.h:3128
FrameInfo()
Default constructor.
const FrameInfo::Diagnostics::PacketLoss & get() const
Definition FrameInfo.h:3183
FrameInfo & set(const Metrics::ThrottlingTime &value)
Set Metrics::ThrottlingTime.
Definition FrameInfo.h:3062
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition FrameInfo.h:82
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:2921
const FrameInfo::SystemInfo::ComputeDevice::Model & get() const
Definition FrameInfo.h:3279
const FrameInfo::Metrics::AcquisitionTime & get() const
Definition FrameInfo.h:3197
FrameInfo & set(const SystemInfo::OperatingSystem &value)
Set SystemInfo::OperatingSystem.
Definition FrameInfo.h:3149
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:3095
FrameInfo & set(const Metrics::CaptureTime &value)
Set Metrics::CaptureTime.
Definition FrameInfo.h:3041
FrameInfo & set(const SystemInfo &value)
Set SystemInfo.
Definition FrameInfo.h:3107
const TimeStamp & timeStamp() const
Get TimeStamp.
Definition FrameInfo.h:3156
SoftwareVersion & softwareVersion()
Get SoftwareVersion.
Definition FrameInfo.h:3075
Diagnostics & diagnostics()
Get Diagnostics.
Definition FrameInfo.h:2995
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:3142
const FrameInfo::SoftwareVersion & get() const
Definition FrameInfo.h:3235
const Diagnostics & diagnostics() const
Get Diagnostics.
Definition FrameInfo.h:2989
friend std::ostream & operator<<(std::ostream &stream, const FrameInfo &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:3369
FrameInfo & set(const TimeStamp &value)
Set TimeStamp.
Definition FrameInfo.h:3168
FrameInfo(Args &&...args)
Constructor taking variadic number of arguments.
Definition FrameInfo.h:2877
static constexpr const char * name
The name of this value.
Definition FrameInfo.h:88
const FrameInfo::TimeStamp & get() const
Definition FrameInfo.h:3302
const SoftwareVersion & softwareVersion() const
Get SoftwareVersion.
Definition FrameInfo.h:3069
FrameInfo & set(const SystemInfo::CPU::Model &value)
Set SystemInfo::CPU::Model.
Definition FrameInfo.h:3121
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:3135
const FrameInfo::SystemInfo::CPU::Model & get() const
Definition FrameInfo.h:3263
const FrameInfo::SystemInfo::ComputeDevice::Vendor & get() const
Definition FrameInfo.h:3288
FrameInfo & set(const SoftwareVersion &value)
Set SoftwareVersion.
Definition FrameInfo.h:3081
const FrameInfo::SystemInfo & get() const
Definition FrameInfo.h:3249
FrameInfo & set(const Metrics::ReprocessingTime &value)
Set Metrics::ReprocessingTime.
Definition FrameInfo.h:3055
FrameInfo & set(const Diagnostics &value)
Set Diagnostics.
Definition FrameInfo.h:3001
const FrameInfo::Metrics::KernelComputeTime & get() const
Definition FrameInfo.h:3213
static constexpr const char * description
The description for this value.
Definition FrameInfo.h:91
FrameInfo & set(const Diagnostics::PacketLoss &value)
Set Diagnostics::PacketLoss.
Definition FrameInfo.h:3008
const FrameInfo::Diagnostics & get() const
Definition FrameInfo.h:3175
const FrameInfo::SystemInfo::ComputeDevice & get() const
Definition FrameInfo.h:3271
FrameInfo & set(const SoftwareVersion::Core &value)
Set SoftwareVersion::Core.
Definition FrameInfo.h:3088
static constexpr size_t version
Definition FrameInfo.h:93
SystemInfo & systemInfo()
Get SystemInfo.
Definition FrameInfo.h:3101
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:3350
FrameInfo & set(const Metrics::AcquisitionTime &value)
Set Metrics::AcquisitionTime.
Definition FrameInfo.h:3034
bool operator==(const FrameInfo &other) const
Equality operator.
FrameInfo & set(const SystemInfo::CPU &value)
Set SystemInfo::CPU.
Definition FrameInfo.h:3114
const FrameInfo::SystemInfo::CPU & get() const
Definition FrameInfo.h:3255
std::tuple< FrameInfo::Diagnostics, FrameInfo::Diagnostics::PacketLoss, FrameInfo::Metrics, FrameInfo::Metrics::AcquisitionTime, FrameInfo::Metrics::CaptureTime, FrameInfo::Metrics::KernelComputeTime, 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:2799
void load(const std::string &fileName)
Load from the given file.
FrameInfo & set(const Metrics::KernelComputeTime &value)
Set Metrics::KernelComputeTime.
Definition FrameInfo.h:3048
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:2970
FrameInfo & set(const Metrics &value)
Set Metrics.
Definition FrameInfo.h:3027
const Metrics & metrics() const
Get Metrics.
Definition FrameInfo.h:3015
const FrameInfo::SystemInfo::OperatingSystem & get() const
Definition FrameInfo.h:3296
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:85