112# pragma warning(push)
113# pragma warning(disable : 4251)
127 static constexpr const char *path{
"" };
130 static constexpr const char *name{
"FrameInfo" };
133 static constexpr const char *description{ R
"description(Various information for a frame)description" };
135 static constexpr size_t version{ 3 };
145 static constexpr std::array<uint8_t, 3> binaryId{
'f',
'i',
'f' };
157 static constexpr const char *path{
"SoftwareVersion" };
160 static constexpr const char *name{
"SoftwareVersion" };
163 static constexpr const char *description{
164 R
"description(The version information for installed software at the time of image capture)description"
175 static constexpr const char *path{
"SoftwareVersion/Core" };
178 static constexpr const char *name{
"Core" };
181 static constexpr const char *description{ R
"description(Core version)description" };
189 return { 0, std::numeric_limits<ValueType::size_type>::max() };
196 explicit Core(std::string value)
197 : m_value{ std::move(value) }
209 return m_value == other.m_value;
215 return m_value != other.m_value;
221 return m_value < other.m_value;
227 return m_value > other.m_value;
237 void setFromString(
const std::string &value);
239 std::string m_value{
"No-version" };
241 friend struct DataModel::Detail::Befriend<
Core>;
263 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
264 typename std::enable_if<
265 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
269 template<typename... Args>
273 using namespace Zivid::Detail::TypeTraits;
276 AllArgsDecayedAreUnique<Args...>::value,
277 "Found duplicate types among the arguments passed to SoftwareVersion(...). "
278 "Types should be listed at most once.");
280 set(std::forward<Args>(args)...);
294 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
296 template<typename... Args>
300 using namespace Zivid::Detail::TypeTraits;
302 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
304 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
307 AllArgsDecayedAreUnique<Args...>::value,
308 "Found duplicate types among the arguments passed to set(...). "
309 "Types should be listed at most once.");
311 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
326 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
328 template<typename... Args>
332 using namespace Zivid::Detail::TypeTraits;
334 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
336 AllArgsAreDescendantNodes::value,
337 "All arguments passed to copyWith(...) must be descendant nodes.");
340 AllArgsDecayedAreUnique<Args...>::value,
341 "Found duplicate types among the arguments passed to copyWith(...). "
342 "Types should be listed at most once.");
345 copy.
set(std::forward<Args>(args)...);
370 typename std::enable_if<std::is_same<T, FrameInfo::SoftwareVersion::Core>::value,
int>::type = 0>
376 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
412 void setFromString(
const std::string &value);
414 void setFromString(
const std::string &fullPath,
const std::string &value);
416 std::string getString(
const std::string &fullPath)
const;
431 static constexpr const char *path{
"SystemInfo" };
434 static constexpr const char *name{
"SystemInfo" };
437 static constexpr const char *description{
438 R
"description(Information about the system that captured this frame)description"
449 static constexpr const char *path{
"SystemInfo/CPU" };
452 static constexpr const char *name{
"CPU" };
455 static constexpr const char *description{ R
"description(CPU)description" };
465 static constexpr const char *path{
"SystemInfo/CPU/Model" };
468 static constexpr const char *name{
"Model" };
471 static constexpr const char *description{ R
"description(CPU model)description" };
479 return { 0, std::numeric_limits<ValueType::size_type>::max() };
487 : m_value{ std::move(value) }
499 return m_value == other.m_value;
505 return m_value != other.m_value;
511 return m_value < other.m_value;
517 return m_value > other.m_value;
527 void setFromString(
const std::string &value);
529 std::string m_value{};
531 friend struct DataModel::Detail::Befriend<
Model>;
534 using Descendants = std::tuple<FrameInfo::SystemInfo::CPU::Model>;
553 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
554 typename std::enable_if<
555 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
559 template<typename... Args>
561 explicit CPU(Args &&...args)
563 using namespace Zivid::Detail::TypeTraits;
566 AllArgsDecayedAreUnique<Args...>::value,
567 "Found duplicate types among the arguments passed to CPU(...). "
568 "Types should be listed at most once.");
570 set(std::forward<Args>(args)...);
584 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
586 template<typename... Args>
590 using namespace Zivid::Detail::TypeTraits;
592 using AllArgsAreDescendantNodes =
593 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
595 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
598 AllArgsDecayedAreUnique<Args...>::value,
599 "Found duplicate types among the arguments passed to set(...). "
600 "Types should be listed at most once.");
602 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
617 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
619 template<typename... Args>
623 using namespace Zivid::Detail::TypeTraits;
625 using AllArgsAreDescendantNodes =
626 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
628 AllArgsAreDescendantNodes::value,
629 "All arguments passed to copyWith(...) must be descendant nodes.");
632 AllArgsDecayedAreUnique<Args...>::value,
633 "Found duplicate types among the arguments passed to copyWith(...). "
634 "Types should be listed at most once.");
637 copy.
set(std::forward<Args>(args)...);
662 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU::Model>::value,
int>::type = 0>
668 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
704 void setFromString(
const std::string &value);
706 void setFromString(
const std::string &fullPath,
const std::string &value);
708 std::string getString(
const std::string &fullPath)
const;
712 friend struct DataModel::Detail::Befriend<
CPU>;
723 static constexpr const char *path{
"SystemInfo/ComputeDevice" };
726 static constexpr const char *name{
"ComputeDevice" };
729 static constexpr const char *description{ R
"description(Compute device)description" };
739 static constexpr const char *path{
"SystemInfo/ComputeDevice/Model" };
742 static constexpr const char *name{
"Model" };
745 static constexpr const char *description{ R
"description(Compute device model)description" };
753 return { 0, std::numeric_limits<ValueType::size_type>::max() };
761 : m_value{ std::move(value) }
773 return m_value == other.m_value;
779 return m_value != other.m_value;
785 return m_value < other.m_value;
791 return m_value > other.m_value;
801 void setFromString(
const std::string &value);
803 std::string m_value{};
805 friend struct DataModel::Detail::Befriend<
Model>;
816 static constexpr const char *path{
"SystemInfo/ComputeDevice/Vendor" };
819 static constexpr const char *name{
"Vendor" };
822 static constexpr const char *description{ R
"description(Compute device vendor)description" };
830 return { 0, std::numeric_limits<ValueType::size_type>::max() };
838 : m_value{ std::move(value) }
850 return m_value == other.m_value;
856 return m_value != other.m_value;
862 return m_value < other.m_value;
868 return m_value > other.m_value;
878 void setFromString(
const std::string &value);
880 std::string m_value{};
882 friend struct DataModel::Detail::Befriend<
Vendor>;
886 tuple<FrameInfo::SystemInfo::ComputeDevice::Model, FrameInfo::SystemInfo::ComputeDevice::Vendor>;
906 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
907 typename std::enable_if<
908 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
912 template<typename... Args>
916 using namespace Zivid::Detail::TypeTraits;
919 AllArgsDecayedAreUnique<Args...>::value,
920 "Found duplicate types among the arguments passed to ComputeDevice(...). "
921 "Types should be listed at most once.");
923 set(std::forward<Args>(args)...);
938 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
940 template<typename... Args>
944 using namespace Zivid::Detail::TypeTraits;
946 using AllArgsAreDescendantNodes =
947 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
949 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
952 AllArgsDecayedAreUnique<Args...>::value,
953 "Found duplicate types among the arguments passed to set(...). "
954 "Types should be listed at most once.");
956 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
972 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
974 template<typename... Args>
978 using namespace Zivid::Detail::TypeTraits;
980 using AllArgsAreDescendantNodes =
981 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
983 AllArgsAreDescendantNodes::value,
984 "All arguments passed to copyWith(...) must be descendant nodes.");
987 AllArgsDecayedAreUnique<Args...>::value,
988 "Found duplicate types among the arguments passed to copyWith(...). "
989 "Types should be listed at most once.");
992 copy.
set(std::forward<Args>(args)...);
1036 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Model>::value,
int>::
1045 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Vendor>::value,
int>::
1052 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1058 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
1065 template<
typename F>
1073 template<
typename F>
1096 void setFromString(
const std::string &value);
1098 void setFromString(
const std::string &fullPath,
const std::string &value);
1100 std::string getString(
const std::string &fullPath)
const;
1116 static constexpr const char *path{
"SystemInfo/OperatingSystem" };
1119 static constexpr const char *name{
"OperatingSystem" };
1122 static constexpr const char *description{ R
"description(Operating system)description" };
1130 return { 0, std::numeric_limits<ValueType::size_type>::max() };
1138 : m_value{ std::move(value) }
1150 return m_value == other.m_value;
1156 return m_value != other.m_value;
1162 return m_value < other.m_value;
1168 return m_value > other.m_value;
1178 void setFromString(
const std::string &value);
1180 std::string m_value{};
1215 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1216 typename std::enable_if<
1217 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
1221 template<typename... Args>
1225 using namespace Zivid::Detail::TypeTraits;
1228 AllArgsDecayedAreUnique<Args...>::value,
1229 "Found duplicate types among the arguments passed to SystemInfo(...). "
1230 "Types should be listed at most once.");
1232 set(std::forward<Args>(args)...);
1251 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1253 template<typename... Args>
1257 using namespace Zivid::Detail::TypeTraits;
1259 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1261 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1264 AllArgsDecayedAreUnique<Args...>::value,
1265 "Found duplicate types among the arguments passed to set(...). "
1266 "Types should be listed at most once.");
1268 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1288 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1290 template<typename... Args>
1294 using namespace Zivid::Detail::TypeTraits;
1296 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1298 AllArgsAreDescendantNodes::value,
1299 "All arguments passed to copyWith(...) must be descendant nodes.");
1302 AllArgsDecayedAreUnique<Args...>::value,
1303 "Found duplicate types among the arguments passed to copyWith(...). "
1304 "Types should be listed at most once.");
1307 copy.
set(std::forward<Args>(args)...);
1340 return m_computeDevice;
1346 return m_computeDevice;
1352 m_computeDevice = value;
1359 m_computeDevice.
set(value);
1366 m_computeDevice.
set(value);
1373 return m_operatingSystem;
1379 return m_operatingSystem;
1385 m_operatingSystem = value;
1391 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU>::value,
int>::type = 0>
1399 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU::Model>::value,
int>::type = 0>
1407 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice>::value,
int>::type = 0>
1410 return m_computeDevice;
1415 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Model>::value,
int>::
1424 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Vendor>::value,
int>::
1433 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::OperatingSystem>::value,
int>::type = 0>
1436 return m_operatingSystem;
1439 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1445 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
1448 return m_computeDevice;
1451 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
1454 return m_operatingSystem;
1458 template<
typename F>
1463 f(m_operatingSystem);
1467 template<
typename F>
1472 f(m_operatingSystem);
1491 void setFromString(
const std::string &value);
1493 void setFromString(
const std::string &fullPath,
const std::string &value);
1495 std::string getString(
const std::string &fullPath)
const;
1501 friend struct DataModel::Detail::Befriend<
SystemInfo>;
1512 static constexpr const char *path{
"TimeStamp" };
1515 static constexpr const char *name{
"TimeStamp" };
1518 static constexpr const char *description{ R
"description(The time of frame capture)description" };
1526 return { std::chrono::system_clock::time_point::min(), std::chrono::system_clock::time_point::max() };
1533 explicit constexpr TimeStamp(std::chrono::system_clock::time_point value)
1538 std::chrono::system_clock::time_point
value()
const;
1546 return m_value == other.m_value;
1552 return m_value != other.m_value;
1558 return m_value < other.m_value;
1564 return m_value > other.m_value;
1574 void setFromString(
const std::string &value);
1576 std::chrono::system_clock::time_point m_value{};
1578 friend struct DataModel::Detail::Befriend<
TimeStamp>;
1622 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1623 typename std::enable_if<
1624 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
1627 template<typename... Args>
1631 using namespace Zivid::Detail::TypeTraits;
1634 AllArgsDecayedAreUnique<Args...>::value,
1635 "Found duplicate types among the arguments passed to FrameInfo(...). "
1636 "Types should be listed at most once.");
1638 set(std::forward<Args>(args)...);
1661 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1663 template<typename... Args>
1667 using namespace Zivid::Detail::TypeTraits;
1669 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1671 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1674 AllArgsDecayedAreUnique<Args...>::value,
1675 "Found duplicate types among the arguments passed to set(...). "
1676 "Types should be listed at most once.");
1678 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1702 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1704 template<typename... Args>
1708 using namespace Zivid::Detail::TypeTraits;
1710 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1712 AllArgsAreDescendantNodes::value,
"All arguments passed to copyWith(...) must be descendant nodes.");
1715 AllArgsDecayedAreUnique<Args...>::value,
1716 "Found duplicate types among the arguments passed to copyWith(...). "
1717 "Types should be listed at most once.");
1720 copy.
set(std::forward<Args>(args)...);
1727 return m_softwareVersion;
1733 return m_softwareVersion;
1739 m_softwareVersion = value;
1746 m_softwareVersion.
set(value);
1753 return m_systemInfo;
1759 return m_systemInfo;
1765 m_systemInfo = value;
1772 m_systemInfo.
set(value);
1779 m_systemInfo.
set(value);
1786 m_systemInfo.
set(value);
1793 m_systemInfo.
set(value);
1800 m_systemInfo.
set(value);
1807 m_systemInfo.
set(value);
1826 m_timeStamp = value;
1830 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::SoftwareVersion>::value,
int>::type = 0>
1833 return m_softwareVersion;
1838 typename std::enable_if<std::is_same<T, FrameInfo::SoftwareVersion::Core>::value,
int>::type = 0>
1844 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo>::value,
int>::type = 0>
1847 return m_systemInfo;
1850 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU>::value,
int>::type = 0>
1858 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU::Model>::value,
int>::type = 0>
1866 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice>::value,
int>::type = 0>
1874 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Model>::value,
int>::type = 0>
1882 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Vendor>::value,
int>::type =
1891 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::OperatingSystem>::value,
int>::type = 0>
1897 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::TimeStamp>::value,
int>::type = 0>
1903 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1906 return m_softwareVersion;
1909 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
1912 return m_systemInfo;
1915 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
1922 template<
typename F>
1925 f(m_softwareVersion);
1931 template<
typename F>
1934 f(m_softwareVersion);
1955 void save(
const std::string &fileName)
const;
1958 void load(
const std::string &fileName);
1961 void setFromString(
const std::string &value);
1963 void setFromString(
const std::string &fullPath,
const std::string &value);
1965 std::string getString(
const std::string &fullPath)
const;
1971 friend struct DataModel::Detail::Befriend<
FrameInfo>;
1976 struct FrameInfo::Version<3>
1985# pragma warning(pop)
1989# if !(defined(_MSC_VER) && (_MSC_VER <= 1900))
1994 struct tuple_size<
Zivid::FrameInfo::SoftwareVersion> : integral_constant<size_t, 1>
1998 struct tuple_element<i,
Zivid::FrameInfo::SoftwareVersion>
2000 static_assert(i < tuple_size<Zivid::FrameInfo::SoftwareVersion>::value,
"Index must be less than 1");
2003 =
decltype(declval<Zivid::FrameInfo::SoftwareVersion>().get<i>());
2007 struct tuple_size<
Zivid::FrameInfo::SystemInfo> : integral_constant<size_t, 3>
2011 struct tuple_element<i,
Zivid::FrameInfo::SystemInfo>
2013 static_assert(i < tuple_size<Zivid::FrameInfo::SystemInfo>::value,
"Index must be less than 3");
2016 =
decltype(declval<Zivid::FrameInfo::SystemInfo>().get<i>());
2020 struct tuple_size<
Zivid::FrameInfo::SystemInfo::CPU> : integral_constant<size_t, 1>
2024 struct tuple_element<i,
Zivid::FrameInfo::SystemInfo::CPU>
2026 static_assert(i < tuple_size<Zivid::FrameInfo::SystemInfo::CPU>::value,
"Index must be less than 1");
2029 =
decltype(declval<Zivid::FrameInfo::SystemInfo::CPU>().get<i>());
2033 struct tuple_size<
Zivid::FrameInfo::SystemInfo::ComputeDevice> : integral_constant<size_t, 2>
2037 struct tuple_element<i,
Zivid::FrameInfo::SystemInfo::ComputeDevice>
2039 static_assert(i < tuple_size<Zivid::FrameInfo::SystemInfo::ComputeDevice>::value,
"Index must be less than 2");
2042 =
decltype(declval<Zivid::FrameInfo::SystemInfo::ComputeDevice>().get<i>());
2046 struct tuple_size<
Zivid::FrameInfo> : integral_constant<size_t, 3>
2050 struct tuple_element<i,
Zivid::FrameInfo>
2052 static_assert(i < tuple_size<Zivid::FrameInfo>::value,
"Index must be less than 3");
2055 =
decltype(declval<Zivid::FrameInfo>().get<i>());
2064#if defined(__has_include) && !defined(NO_DOC)
2065# if __has_include("Zivid/FrameInfoInternal.h") && __has_include("Zivid/DataModelSerializationMetaData.h")
2066# include "Zivid/FrameInfoInternal.h"
#define ZIVID_CORE_EXPORT
Definition: CoreExport.h:101
Contains information about the compute device used by Zivid::Application.
Definition: ComputeDevice.h:103
Core version
Definition: FrameInfo.h:169
std::string toString() const
Get the value as string
const std::string & value() const
Get the value
bool operator!=(const Core &other) const
Comparison operator
Definition: FrameInfo.h:213
Core(std::string value)
Constructor
Definition: FrameInfo.h:196
bool operator==(const Core &other) const
Comparison operator
Definition: FrameInfo.h:207
Core()=default
Default constructor
bool operator>(const Core &other) const
Comparison operator
Definition: FrameInfo.h:225
bool operator<(const Core &other) const
Comparison operator
Definition: FrameInfo.h:219
friend std::ostream & operator<<(std::ostream &stream, const Core &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:231
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:184
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Core
Definition: FrameInfo.h:187
The version information for installed software at the time of image capture
Definition: FrameInfo.h:151
const Core & core() const
Get Core
Definition: FrameInfo.h:350
friend std::ostream & operator<<(std::ostream &stream, const SoftwareVersion &value)
Operator to send the value as string to a stream
Definition: FrameInfo.h:406
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:391
SoftwareVersion()
Default constructor
const FrameInfo::SoftwareVersion::Core & get() const
Definition: FrameInfo.h:371
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:330
Core & core()
Get Core
Definition: FrameInfo.h:356
SoftwareVersion(Args &&...args)
Constructor taking variadic number of arguments
Definition: FrameInfo.h:271
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:384
void set(Args &&...args)
Set multiple arguments
Definition: FrameInfo.h:298
std::tuple< FrameInfo::SoftwareVersion::Core > Descendants
Definition: FrameInfo.h:244
SoftwareVersion & set(const Core &value)
Set Core
Definition: FrameInfo.h:362
std::string toString() const
Get the value as string
CPU model
Definition: FrameInfo.h:459
const std::string & value() const
Get the value
bool operator!=(const Model &other) const
Comparison operator
Definition: FrameInfo.h:503
Model()=default
Default constructor
bool operator<(const Model &other) const
Comparison operator
Definition: FrameInfo.h:509
std::string toString() const
Get the value as string
bool operator==(const Model &other) const
Comparison operator
Definition: FrameInfo.h:497
friend std::ostream & operator<<(std::ostream &stream, const Model &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:521
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Model
Definition: FrameInfo.h:477
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:474
Model(std::string value)
Constructor
Definition: FrameInfo.h:486
bool operator>(const Model &other) const
Comparison operator
Definition: FrameInfo.h:515
CPU
Definition: FrameInfo.h:443
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: FrameInfo.h:683
const Model & model() const
Get Model
Definition: FrameInfo.h:642
std::tuple< FrameInfo::SystemInfo::CPU::Model > Descendants
Definition: FrameInfo.h:534
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:676
bool operator!=(const CPU &other) const
Inequality operator
std::string toString() const
Get the value as string
bool operator==(const CPU &other) const
Equality operator
friend std::ostream & operator<<(std::ostream &stream, const CPU &value)
Operator to send the value as string to a stream
Definition: FrameInfo.h:698
CPU(Args &&...args)
Constructor taking variadic number of arguments
Definition: FrameInfo.h:561
CPU & set(const Model &value)
Set Model
Definition: FrameInfo.h:654
void set(Args &&...args)
Set multiple arguments
Definition: FrameInfo.h:588
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:621
Model & model()
Get Model
Definition: FrameInfo.h:648
const FrameInfo::SystemInfo::CPU::Model & get() const
Definition: FrameInfo.h:663
Compute device model
Definition: FrameInfo.h:733
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Model
Definition: FrameInfo.h:751
std::string toString() const
Get the value as string
Model(std::string value)
Constructor
Definition: FrameInfo.h:760
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:748
const std::string & value() const
Get the value
bool operator==(const Model &other) const
Comparison operator
Definition: FrameInfo.h:771
bool operator!=(const Model &other) const
Comparison operator
Definition: FrameInfo.h:777
bool operator>(const Model &other) const
Comparison operator
Definition: FrameInfo.h:789
friend std::ostream & operator<<(std::ostream &stream, const Model &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:795
bool operator<(const Model &other) const
Comparison operator
Definition: FrameInfo.h:783
Model()=default
Default constructor
Compute device vendor
Definition: FrameInfo.h:810
bool operator>(const Vendor &other) const
Comparison operator
Definition: FrameInfo.h:866
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Vendor
Definition: FrameInfo.h:828
friend std::ostream & operator<<(std::ostream &stream, const Vendor &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:872
bool operator<(const Vendor &other) const
Comparison operator
Definition: FrameInfo.h:860
bool operator==(const Vendor &other) const
Comparison operator
Definition: FrameInfo.h:848
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:825
Vendor()=default
Default constructor
std::string toString() const
Get the value as string
const std::string & value() const
Get the value
bool operator!=(const Vendor &other) const
Comparison operator
Definition: FrameInfo.h:854
Vendor(std::string value)
Constructor
Definition: FrameInfo.h:837
Compute device
Definition: FrameInfo.h:717
void set(Args &&...args)
Set multiple arguments
Definition: FrameInfo.h:942
ComputeDevice & set(const Model &value)
Set Model
Definition: FrameInfo.h:1009
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:1066
const Vendor & vendor() const
Get Vendor
Definition: FrameInfo.h:1016
ComputeDevice(Args &&...args)
Constructor taking variadic number of arguments
Definition: FrameInfo.h:914
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: FrameInfo.h:1074
Model & model()
Get Model
Definition: FrameInfo.h:1003
Vendor & vendor()
Get Vendor
Definition: FrameInfo.h:1022
bool operator==(const ComputeDevice &other) const
Equality operator
const FrameInfo::SystemInfo::ComputeDevice::Vendor & get() const
Definition: FrameInfo.h:1047
const Model & model() const
Get Model
Definition: FrameInfo.h:997
friend std::ostream & operator<<(std::ostream &stream, const ComputeDevice &value)
Operator to send the value as string to a stream
Definition: FrameInfo.h:1090
std::tuple< FrameInfo::SystemInfo::ComputeDevice::Model, FrameInfo::SystemInfo::ComputeDevice::Vendor > Descendants
Definition: FrameInfo.h:886
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:1028
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:976
const FrameInfo::SystemInfo::ComputeDevice::Model & get() const
Definition: FrameInfo.h:1038
Operating system
Definition: FrameInfo.h:1110
bool operator>(const OperatingSystem &other) const
Comparison operator
Definition: FrameInfo.h:1166
OperatingSystem(std::string value)
Constructor
Definition: FrameInfo.h:1137
bool operator!=(const OperatingSystem &other) const
Comparison operator
Definition: FrameInfo.h:1154
bool operator<(const OperatingSystem &other) const
Comparison operator
Definition: FrameInfo.h:1160
bool operator==(const OperatingSystem &other) const
Comparison operator
Definition: FrameInfo.h:1148
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:1125
OperatingSystem()=default
Default constructor
const std::string & value() const
Get the value
friend std::ostream & operator<<(std::ostream &stream, const OperatingSystem &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:1172
std::string toString() const
Get the value as string
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for OperatingSystem
Definition: FrameInfo.h:1128
Information about the system that captured this frame
Definition: FrameInfo.h:425
SystemInfo & set(const CPU::Model &value)
Set CPU::Model
Definition: FrameInfo.h:1331
std::string toString() const
Get the value as string
const FrameInfo::SystemInfo::CPU & get() const
Definition: FrameInfo.h:1392
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:1459
ComputeDevice & computeDevice()
Get ComputeDevice
Definition: FrameInfo.h:1344
SystemInfo & set(const ComputeDevice &value)
Set ComputeDevice
Definition: FrameInfo.h:1350
const FrameInfo::SystemInfo::ComputeDevice::Vendor & get() const
Definition: FrameInfo.h:1426
SystemInfo & set(const CPU &value)
Set CPU
Definition: FrameInfo.h:1324
bool operator==(const SystemInfo &other) const
Equality operator
void set(Args &&...args)
Set multiple arguments
Definition: FrameInfo.h:1255
friend std::ostream & operator<<(std::ostream &stream, const SystemInfo &value)
Operator to send the value as string to a stream
Definition: FrameInfo.h:1485
const ComputeDevice & computeDevice() const
Get ComputeDevice
Definition: FrameInfo.h:1338
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: FrameInfo.h:1468
SystemInfo & set(const ComputeDevice::Vendor &value)
Set ComputeDevice::Vendor
Definition: FrameInfo.h:1364
SystemInfo & set(const OperatingSystem &value)
Set OperatingSystem
Definition: FrameInfo.h:1383
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:1292
bool operator!=(const SystemInfo &other) const
Inequality operator
SystemInfo & set(const ComputeDevice::Model &value)
Set ComputeDevice::Model
Definition: FrameInfo.h:1357
const FrameInfo::SystemInfo::OperatingSystem & get() const
Definition: FrameInfo.h:1434
CPU & cpu()
Get CPU
Definition: FrameInfo.h:1318
const FrameInfo::SystemInfo::ComputeDevice & get() const
Definition: FrameInfo.h:1408
SystemInfo(Args &&...args)
Constructor taking variadic number of arguments
Definition: FrameInfo.h:1223
const OperatingSystem & operatingSystem() const
Get OperatingSystem
Definition: FrameInfo.h:1371
OperatingSystem & operatingSystem()
Get OperatingSystem
Definition: FrameInfo.h:1377
SystemInfo()
Default constructor
const CPU & cpu() const
Get CPU
Definition: FrameInfo.h:1312
const FrameInfo::SystemInfo::ComputeDevice::Model & get() const
Definition: FrameInfo.h:1417
const FrameInfo::SystemInfo::CPU::Model & get() const
Definition: FrameInfo.h:1400
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:1191
The time of frame capture
Definition: FrameInfo.h:1506
std::chrono::system_clock::time_point value() const
Get the value
bool operator>(const TimeStamp &other) const
Comparison operator
Definition: FrameInfo.h:1562
bool operator<(const TimeStamp &other) const
Comparison operator
Definition: FrameInfo.h:1556
static constexpr Range< std::chrono::system_clock::time_point > validRange()
The range of valid values for TimeStamp
Definition: FrameInfo.h:1524
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:1568
TimeStamp()=default
Default constructor
constexpr TimeStamp(std::chrono::system_clock::time_point value)
Constructor
Definition: FrameInfo.h:1533
bool operator!=(const TimeStamp &other) const
Comparison operator
Definition: FrameInfo.h:1550
bool operator==(const TimeStamp &other) const
Comparison operator
Definition: FrameInfo.h:1544
std::chrono::system_clock::time_point ValueType
The type of the underlying value
Definition: FrameInfo.h:1521
Various information for a frame
Definition: FrameInfo.h:121
TimeStamp & timeStamp()
Get TimeStamp
Definition: FrameInfo.h:1818
std::string toString() const
Get the value as string
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: FrameInfo.h:1923
const FrameInfo::SoftwareVersion::Core & get() const
Definition: FrameInfo.h:1839
FrameInfo & set(const SystemInfo::ComputeDevice &value)
Set SystemInfo::ComputeDevice
Definition: FrameInfo.h:1784
FrameInfo()
Default constructor
void set(Args &&...args)
Set multiple arguments
Definition: FrameInfo.h:1665
const FrameInfo::SystemInfo::ComputeDevice::Model & get() const
Definition: FrameInfo.h:1875
FrameInfo & set(const SystemInfo::OperatingSystem &value)
Set SystemInfo::OperatingSystem
Definition: FrameInfo.h:1805
void save(const std::string &fileName) const
Save to the given file
const SystemInfo & systemInfo() const
Get SystemInfo
Definition: FrameInfo.h:1751
FrameInfo & set(const SystemInfo &value)
Set SystemInfo
Definition: FrameInfo.h:1763
const TimeStamp & timeStamp() const
Get TimeStamp
Definition: FrameInfo.h:1812
SoftwareVersion & softwareVersion()
Get SoftwareVersion
Definition: FrameInfo.h:1731
FrameInfo(const std::string &fileName)
Construct FrameInfo by loading from file
FrameInfo & set(const SystemInfo::ComputeDevice::Vendor &value)
Set SystemInfo::ComputeDevice::Vendor
Definition: FrameInfo.h:1798
const FrameInfo::SoftwareVersion & get() const
Definition: FrameInfo.h:1831
friend std::ostream & operator<<(std::ostream &stream, const FrameInfo &value)
Operator to send the value as string to a stream
Definition: FrameInfo.h:1949
FrameInfo & set(const TimeStamp &value)
Set TimeStamp
Definition: FrameInfo.h:1824
FrameInfo(Args &&...args)
Constructor taking variadic number of arguments
Definition: FrameInfo.h:1629
const FrameInfo::TimeStamp & get() const
Definition: FrameInfo.h:1898
const SoftwareVersion & softwareVersion() const
Get SoftwareVersion
Definition: FrameInfo.h:1725
FrameInfo & set(const SystemInfo::CPU::Model &value)
Set SystemInfo::CPU::Model
Definition: FrameInfo.h:1777
FrameInfo & set(const SystemInfo::ComputeDevice::Model &value)
Set SystemInfo::ComputeDevice::Model
Definition: FrameInfo.h:1791
const FrameInfo::SystemInfo::CPU::Model & get() const
Definition: FrameInfo.h:1859
const FrameInfo::SystemInfo::ComputeDevice::Vendor & get() const
Definition: FrameInfo.h:1884
FrameInfo & set(const SoftwareVersion &value)
Set SoftwareVersion
Definition: FrameInfo.h:1737
const FrameInfo::SystemInfo & get() const
Definition: FrameInfo.h:1845
std::tuple< FrameInfo::SoftwareVersion, FrameInfo::SoftwareVersion::Core, FrameInfo::SystemInfo, FrameInfo::SystemInfo::CPU, FrameInfo::SystemInfo::CPU::Model, FrameInfo::SystemInfo::ComputeDevice, FrameInfo::SystemInfo::ComputeDevice::Model, FrameInfo::SystemInfo::ComputeDevice::Vendor, FrameInfo::SystemInfo::OperatingSystem, FrameInfo::TimeStamp > Descendants
Definition: FrameInfo.h:1591
const FrameInfo::SystemInfo::ComputeDevice & get() const
Definition: FrameInfo.h:1867
FrameInfo & set(const SoftwareVersion::Core &value)
Set SoftwareVersion::Core
Definition: FrameInfo.h:1744
SystemInfo & systemInfo()
Get SystemInfo
Definition: FrameInfo.h:1757
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:1932
bool operator==(const FrameInfo &other) const
Equality operator
FrameInfo & set(const SystemInfo::CPU &value)
Set SystemInfo::CPU
Definition: FrameInfo.h:1770
const FrameInfo::SystemInfo::CPU & get() const
Definition: FrameInfo.h:1851
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:1706
const FrameInfo::SystemInfo::OperatingSystem & get() const
Definition: FrameInfo.h:1892
Class describing a range of values for a given type T
Definition: Range.h:102
NodeType
Definition: NodeType.h:100
The main Zivid namespace. All Zivid code is found here
Definition: Application.h:99