Zivid  1.0.1+3607.8a7510c4
Zivid API
FrameInfo.h
Go to the documentation of this file.
1 /*[
2  * This file is part of the Zivid 3D Camera API
3  *
4  * Copyright 2015-2018 (C) Zivid Labs. All rights reserved.
5  * Contact info@zividlabs.com or see http://www.zividlabs.com
6  *
7  * This code is proprietary and confidential.
8  * Unauthorized copying of this file, via any medium is strictly prohibited.
9 ]*/
10 
11 #pragma once
12 
15 
16 #include <chrono>
17 #include <ctime>
18 #include <iomanip>
19 #include <memory>
20 #include <ostream>
21 #include <sstream>
22 #include <string>
23 #include <utility>
24 #include <vector>
25 
26 #include "APIExport.h"
27 #include "Range.h"
28 
29 #ifdef _MSC_VER
30 #pragma warning(push)
31 #pragma warning(disable : 4251)
32 #endif
33 
34 namespace Zivid {
36 class ZIVID_COMMON FrameInfo {
37 public:
38  FrameInfo() = default;
39 
41  explicit FrameInfo(const std::string &fileName);
42 
44  static constexpr bool isContainer{true};
45 
47  static constexpr const char *path{""};
48 
50  static constexpr const char *name{"FrameInfo"};
51 
53  void set(const std::string &fullPath, const std::string &value);
54 
56  std::string getString(const std::string &fullPath) const;
57 
59  class ZIVID_COMMON TimeStamp {
60  public:
62  using ValueType = std::chrono::system_clock::time_point;
63 
65  static constexpr bool isContainer{false};
66 
68  static constexpr const char *path{"TimeStamp"};
69 
71  static constexpr const char *name{"TimeStamp"};
72 
74  TimeStamp() = default;
75 
77  explicit constexpr TimeStamp(ValueType value) noexcept(
78  std::is_nothrow_move_constructible<ValueType>::value)
79  : m_value{value} {}
80 
82  const ValueType &value() const { return m_value; }
83 
86  return {std::numeric_limits<ValueType>::lowest(),
87  std::numeric_limits<ValueType>::max()};
88  }
89 
91  void setFromString(const std::string &value);
92 
94  std::string toString() const;
95 
97  bool operator==(const TimeStamp &other) const {
98  return m_value == other.m_value;
99  }
100 
102  bool operator!=(const TimeStamp &other) const {
103  return m_value != other.m_value;
104  }
105 
107  bool operator<(const TimeStamp &other) const {
108  return m_value < other.m_value;
109  }
110 
112  bool operator>(const TimeStamp &other) const {
113  return m_value > other.m_value;
114  }
115 
117  friend std::ostream &operator<<(std::ostream &stream,
118  const TimeStamp &value) {
119  return stream << value.toString();
120  }
121 
123  friend std::istream &operator>>(std::istream &stream, TimeStamp &value) {
124  value.setFromString(std::string{std::istreambuf_iterator<char>{stream},
125  std::istreambuf_iterator<char>{}});
126  return stream;
127  }
128 
129  private:
130  ValueType m_value{};
131  };
132 
135  class ZIVID_COMMON SoftwareVersion {
136  public:
137  SoftwareVersion() = default;
138 
140  explicit SoftwareVersion(const std::string &fileName);
141 
143  static constexpr bool isContainer{true};
144 
146  static constexpr const char *path{"SoftwareVersion"};
147 
149  static constexpr const char *name{"SoftwareVersion"};
150 
152  void set(const std::string &fullPath, const std::string &value);
153 
155  std::string getString(const std::string &fullPath) const;
156 
158  class ZIVID_COMMON ZividStudio {
159  public:
160  ZividStudio() = default;
161 
163  explicit ZividStudio(const std::string &fileName);
164 
166  static constexpr bool isContainer{true};
167 
169  static constexpr const char *path{"SoftwareVersion/ZividStudio"};
170 
172  static constexpr const char *name{"ZividStudio"};
173 
175  void set(const std::string &fullPath, const std::string &value);
176 
178  std::string getString(const std::string &fullPath) const;
179 
181  class ZIVID_COMMON FileDescription {
182  public:
184  using ValueType = std::string;
185 
187  static constexpr bool isContainer{false};
188 
190  static constexpr const char *path{
191  "SoftwareVersion/ZividStudio/FileDescription"};
192 
194  static constexpr const char *name{"FileDescription"};
195 
197  FileDescription() = default;
198 
200  explicit FileDescription(ValueType value) noexcept(
201  std::is_nothrow_move_constructible<ValueType>::value)
202  : m_value{std::move(value)} {}
203 
205  const ValueType &value() const { return m_value; }
206 
208  void setFromString(const std::string &value) { m_value = value; }
209 
211  std::string toString() const { return m_value; }
212 
214  bool operator==(const FileDescription &other) const {
215  return m_value == other.m_value;
216  }
217 
219  bool operator!=(const FileDescription &other) const {
220  return m_value != other.m_value;
221  }
222 
224  bool operator<(const FileDescription &other) const {
225  return m_value < other.m_value;
226  }
227 
229  bool operator>(const FileDescription &other) const {
230  return m_value > other.m_value;
231  }
232 
234  friend std::ostream &operator<<(std::ostream &stream,
235  const FileDescription &value) {
236  return stream << value.toString();
237  }
238 
240  friend std::istream &operator>>(std::istream &stream,
241  FileDescription &value) {
242  value.setFromString(
243  std::string{std::istreambuf_iterator<char>{stream},
244  std::istreambuf_iterator<char>{}});
245  return stream;
246  }
247 
248  private:
249  ValueType m_value{"NA"};
250  };
251 
253  class ZIVID_COMMON FileVersion {
254  public:
256  using ValueType = std::string;
257 
259  static constexpr bool isContainer{false};
260 
262  static constexpr const char *path{
263  "SoftwareVersion/ZividStudio/FileVersion"};
264 
266  static constexpr const char *name{"FileVersion"};
267 
269  FileVersion() = default;
270 
272  explicit FileVersion(ValueType value) noexcept(
273  std::is_nothrow_move_constructible<ValueType>::value)
274  : m_value{std::move(value)} {}
275 
277  const ValueType &value() const { return m_value; }
278 
280  void setFromString(const std::string &value) { m_value = value; }
281 
283  std::string toString() const { return m_value; }
284 
286  bool operator==(const FileVersion &other) const {
287  return m_value == other.m_value;
288  }
289 
291  bool operator!=(const FileVersion &other) const {
292  return m_value != other.m_value;
293  }
294 
296  bool operator<(const FileVersion &other) const {
297  return m_value < other.m_value;
298  }
299 
301  bool operator>(const FileVersion &other) const {
302  return m_value > other.m_value;
303  }
304 
306  friend std::ostream &operator<<(std::ostream &stream,
307  const FileVersion &value) {
308  return stream << value.toString();
309  }
310 
312  friend std::istream &operator>>(std::istream &stream,
313  FileVersion &value) {
314  value.setFromString(
315  std::string{std::istreambuf_iterator<char>{stream},
316  std::istreambuf_iterator<char>{}});
317  return stream;
318  }
319 
320  private:
321  ValueType m_value{"NA"};
322  };
323 
325  class ZIVID_COMMON ProductVersion {
326  public:
328  using ValueType = std::string;
329 
331  static constexpr bool isContainer{false};
332 
334  static constexpr const char *path{
335  "SoftwareVersion/ZividStudio/ProductVersion"};
336 
338  static constexpr const char *name{"ProductVersion"};
339 
341  ProductVersion() = default;
342 
344  explicit ProductVersion(ValueType value) noexcept(
345  std::is_nothrow_move_constructible<ValueType>::value)
346  : m_value{std::move(value)} {}
347 
349  const ValueType &value() const { return m_value; }
350 
352  void setFromString(const std::string &value) { m_value = value; }
353 
355  std::string toString() const { return m_value; }
356 
358  bool operator==(const ProductVersion &other) const {
359  return m_value == other.m_value;
360  }
361 
363  bool operator!=(const ProductVersion &other) const {
364  return m_value != other.m_value;
365  }
366 
368  bool operator<(const ProductVersion &other) const {
369  return m_value < other.m_value;
370  }
371 
373  bool operator>(const ProductVersion &other) const {
374  return m_value > other.m_value;
375  }
376 
378  friend std::ostream &operator<<(std::ostream &stream,
379  const ProductVersion &value) {
380  return stream << value.toString();
381  }
382 
384  friend std::istream &operator>>(std::istream &stream,
385  ProductVersion &value) {
386  value.setFromString(
387  std::string{std::istreambuf_iterator<char>{stream},
388  std::istreambuf_iterator<char>{}});
389  return stream;
390  }
391 
392  private:
393  ValueType m_value{"NA"};
394  };
395 
397  class ZIVID_COMMON Comments {
398  public:
400  using ValueType = std::string;
401 
403  static constexpr bool isContainer{false};
404 
406  static constexpr const char *path{
407  "SoftwareVersion/ZividStudio/Comments"};
408 
410  static constexpr const char *name{"Comments"};
411 
413  Comments() = default;
414 
416  explicit Comments(ValueType value) noexcept(
417  std::is_nothrow_move_constructible<ValueType>::value)
418  : m_value{std::move(value)} {}
419 
421  const ValueType &value() const { return m_value; }
422 
424  void setFromString(const std::string &value) { m_value = value; }
425 
427  std::string toString() const { return m_value; }
428 
430  bool operator==(const Comments &other) const {
431  return m_value == other.m_value;
432  }
433 
435  bool operator!=(const Comments &other) const {
436  return m_value != other.m_value;
437  }
438 
440  bool operator<(const Comments &other) const {
441  return m_value < other.m_value;
442  }
443 
445  bool operator>(const Comments &other) const {
446  return m_value > other.m_value;
447  }
448 
450  friend std::ostream &operator<<(std::ostream &stream,
451  const Comments &value) {
452  return stream << value.toString();
453  }
454 
456  friend std::istream &operator>>(std::istream &stream, Comments &value) {
457  value.setFromString(
458  std::string{std::istreambuf_iterator<char>{stream},
459  std::istreambuf_iterator<char>{}});
460  return stream;
461  }
462 
463  private:
464  ValueType m_value{"NA"};
465  };
466 
467  private:
468  FileDescription m_fileDescription{};
469 
470  public:
472  ZividStudio &set(const FileDescription &value) {
473 
474  m_fileDescription = value;
475  return *this;
476  }
479  return m_fileDescription;
480  }
481 
482  private:
483  FileVersion m_fileVersion{};
484 
485  public:
487  ZividStudio &set(const FileVersion &value) {
488 
489  m_fileVersion = value;
490  return *this;
491  }
493  const FileVersion &fileVersion() const { return m_fileVersion; }
494 
495  private:
496  ProductVersion m_productVersion{};
497 
498  public:
500  ZividStudio &set(const ProductVersion &value) {
501 
502  m_productVersion = value;
503  return *this;
504  }
506  const ProductVersion &productVersion() const { return m_productVersion; }
507 
508  private:
509  Comments m_comments{};
510 
511  public:
513  ZividStudio &set(const Comments &value) {
514 
515  m_comments = value;
516  return *this;
517  }
519  const Comments &comments() const { return m_comments; }
520 
523  template <typename F> void forEach(const F &f) const {
524  f(m_fileDescription);
525  f(m_fileVersion);
526  f(m_productVersion);
527  f(m_comments);
528  }
529 
532  template <typename F> void forEach(const F &f) {
533  f(m_fileDescription);
534  f(m_fileVersion);
535  f(m_productVersion);
536  f(m_comments);
537  }
538 
541  template <typename F> void traverseValues(const F &f) const {
542  f(m_fileDescription);
543  f(m_fileVersion);
544  f(m_productVersion);
545  f(m_comments);
546  }
547 
550  template <typename F> void traverseValues(const F &f) {
551  f(m_fileDescription);
552  f(m_fileVersion);
553  f(m_productVersion);
554  f(m_comments);
555  }
556 
558  std::string toString() const;
559 
561  friend std::ostream &operator<<(std::ostream &stream,
562  const ZividStudio &value) {
563  return stream << value.toString();
564  }
565 
567  void save(const std::string &fileName) const;
568 
570  void setFromString(const std::string &value);
571 
573  friend std::istream &operator>>(std::istream &stream,
574  ZividStudio &value) {
575  value.setFromString(std::string{std::istreambuf_iterator<char>{stream},
576  std::istreambuf_iterator<char>{}});
577  return stream;
578  }
579 
581  void load(const std::string &fileName);
582 
584  bool operator==(const ZividStudio &other) const;
585 
587  bool operator!=(const ZividStudio &other) const;
588  };
589 
591  class ZIVID_COMMON ZividAPI {
592  public:
593  ZividAPI() = default;
594 
596  explicit ZividAPI(const std::string &fileName);
597 
599  static constexpr bool isContainer{true};
600 
602  static constexpr const char *path{"SoftwareVersion/ZividAPI"};
603 
605  static constexpr const char *name{"ZividAPI"};
606 
608  void set(const std::string &fullPath, const std::string &value);
609 
611  std::string getString(const std::string &fullPath) const;
612 
614  class ZIVID_COMMON FileDescription {
615  public:
617  using ValueType = std::string;
618 
620  static constexpr bool isContainer{false};
621 
623  static constexpr const char *path{
624  "SoftwareVersion/ZividAPI/FileDescription"};
625 
627  static constexpr const char *name{"FileDescription"};
628 
630  FileDescription() = default;
631 
633  explicit FileDescription(ValueType value) noexcept(
634  std::is_nothrow_move_constructible<ValueType>::value)
635  : m_value{std::move(value)} {}
636 
638  const ValueType &value() const { return m_value; }
639 
641  void setFromString(const std::string &value) { m_value = value; }
642 
644  std::string toString() const { return m_value; }
645 
647  bool operator==(const FileDescription &other) const {
648  return m_value == other.m_value;
649  }
650 
652  bool operator!=(const FileDescription &other) const {
653  return m_value != other.m_value;
654  }
655 
657  bool operator<(const FileDescription &other) const {
658  return m_value < other.m_value;
659  }
660 
662  bool operator>(const FileDescription &other) const {
663  return m_value > other.m_value;
664  }
665 
667  friend std::ostream &operator<<(std::ostream &stream,
668  const FileDescription &value) {
669  return stream << value.toString();
670  }
671 
673  friend std::istream &operator>>(std::istream &stream,
674  FileDescription &value) {
675  value.setFromString(
676  std::string{std::istreambuf_iterator<char>{stream},
677  std::istreambuf_iterator<char>{}});
678  return stream;
679  }
680 
681  private:
682  ValueType m_value{"NA"};
683  };
684 
686  class ZIVID_COMMON FileVersion {
687  public:
689  using ValueType = std::string;
690 
692  static constexpr bool isContainer{false};
693 
695  static constexpr const char *path{
696  "SoftwareVersion/ZividAPI/FileVersion"};
697 
699  static constexpr const char *name{"FileVersion"};
700 
702  FileVersion() = default;
703 
705  explicit FileVersion(ValueType value) noexcept(
706  std::is_nothrow_move_constructible<ValueType>::value)
707  : m_value{std::move(value)} {}
708 
710  const ValueType &value() const { return m_value; }
711 
713  void setFromString(const std::string &value) { m_value = value; }
714 
716  std::string toString() const { return m_value; }
717 
719  bool operator==(const FileVersion &other) const {
720  return m_value == other.m_value;
721  }
722 
724  bool operator!=(const FileVersion &other) const {
725  return m_value != other.m_value;
726  }
727 
729  bool operator<(const FileVersion &other) const {
730  return m_value < other.m_value;
731  }
732 
734  bool operator>(const FileVersion &other) const {
735  return m_value > other.m_value;
736  }
737 
739  friend std::ostream &operator<<(std::ostream &stream,
740  const FileVersion &value) {
741  return stream << value.toString();
742  }
743 
745  friend std::istream &operator>>(std::istream &stream,
746  FileVersion &value) {
747  value.setFromString(
748  std::string{std::istreambuf_iterator<char>{stream},
749  std::istreambuf_iterator<char>{}});
750  return stream;
751  }
752 
753  private:
754  ValueType m_value{"NA"};
755  };
756 
758  class ZIVID_COMMON ProductVersion {
759  public:
761  using ValueType = std::string;
762 
764  static constexpr bool isContainer{false};
765 
767  static constexpr const char *path{
768  "SoftwareVersion/ZividAPI/ProductVersion"};
769 
771  static constexpr const char *name{"ProductVersion"};
772 
774  ProductVersion() = default;
775 
777  explicit ProductVersion(ValueType value) noexcept(
778  std::is_nothrow_move_constructible<ValueType>::value)
779  : m_value{std::move(value)} {}
780 
782  const ValueType &value() const { return m_value; }
783 
785  void setFromString(const std::string &value) { m_value = value; }
786 
788  std::string toString() const { return m_value; }
789 
791  bool operator==(const ProductVersion &other) const {
792  return m_value == other.m_value;
793  }
794 
796  bool operator!=(const ProductVersion &other) const {
797  return m_value != other.m_value;
798  }
799 
801  bool operator<(const ProductVersion &other) const {
802  return m_value < other.m_value;
803  }
804 
806  bool operator>(const ProductVersion &other) const {
807  return m_value > other.m_value;
808  }
809 
811  friend std::ostream &operator<<(std::ostream &stream,
812  const ProductVersion &value) {
813  return stream << value.toString();
814  }
815 
817  friend std::istream &operator>>(std::istream &stream,
818  ProductVersion &value) {
819  value.setFromString(
820  std::string{std::istreambuf_iterator<char>{stream},
821  std::istreambuf_iterator<char>{}});
822  return stream;
823  }
824 
825  private:
826  ValueType m_value{"NA"};
827  };
828 
830  class ZIVID_COMMON Comments {
831  public:
833  using ValueType = std::string;
834 
836  static constexpr bool isContainer{false};
837 
839  static constexpr const char *path{"SoftwareVersion/ZividAPI/Comments"};
840 
842  static constexpr const char *name{"Comments"};
843 
845  Comments() = default;
846 
848  explicit Comments(ValueType value) noexcept(
849  std::is_nothrow_move_constructible<ValueType>::value)
850  : m_value{std::move(value)} {}
851 
853  const ValueType &value() const { return m_value; }
854 
856  void setFromString(const std::string &value) { m_value = value; }
857 
859  std::string toString() const { return m_value; }
860 
862  bool operator==(const Comments &other) const {
863  return m_value == other.m_value;
864  }
865 
867  bool operator!=(const Comments &other) const {
868  return m_value != other.m_value;
869  }
870 
872  bool operator<(const Comments &other) const {
873  return m_value < other.m_value;
874  }
875 
877  bool operator>(const Comments &other) const {
878  return m_value > other.m_value;
879  }
880 
882  friend std::ostream &operator<<(std::ostream &stream,
883  const Comments &value) {
884  return stream << value.toString();
885  }
886 
888  friend std::istream &operator>>(std::istream &stream, Comments &value) {
889  value.setFromString(
890  std::string{std::istreambuf_iterator<char>{stream},
891  std::istreambuf_iterator<char>{}});
892  return stream;
893  }
894 
895  private:
896  ValueType m_value{"NA"};
897  };
898 
899  private:
900  FileDescription m_fileDescription{};
901 
902  public:
904  ZividAPI &set(const FileDescription &value) {
905 
906  m_fileDescription = value;
907  return *this;
908  }
911  return m_fileDescription;
912  }
913 
914  private:
915  FileVersion m_fileVersion{};
916 
917  public:
919  ZividAPI &set(const FileVersion &value) {
920 
921  m_fileVersion = value;
922  return *this;
923  }
925  const FileVersion &fileVersion() const { return m_fileVersion; }
926 
927  private:
928  ProductVersion m_productVersion{};
929 
930  public:
932  ZividAPI &set(const ProductVersion &value) {
933 
934  m_productVersion = value;
935  return *this;
936  }
938  const ProductVersion &productVersion() const { return m_productVersion; }
939 
940  private:
941  Comments m_comments{};
942 
943  public:
945  ZividAPI &set(const Comments &value) {
946 
947  m_comments = value;
948  return *this;
949  }
951  const Comments &comments() const { return m_comments; }
952 
955  template <typename F> void forEach(const F &f) const {
956  f(m_fileDescription);
957  f(m_fileVersion);
958  f(m_productVersion);
959  f(m_comments);
960  }
961 
964  template <typename F> void forEach(const F &f) {
965  f(m_fileDescription);
966  f(m_fileVersion);
967  f(m_productVersion);
968  f(m_comments);
969  }
970 
973  template <typename F> void traverseValues(const F &f) const {
974  f(m_fileDescription);
975  f(m_fileVersion);
976  f(m_productVersion);
977  f(m_comments);
978  }
979 
982  template <typename F> void traverseValues(const F &f) {
983  f(m_fileDescription);
984  f(m_fileVersion);
985  f(m_productVersion);
986  f(m_comments);
987  }
988 
990  std::string toString() const;
991 
993  friend std::ostream &operator<<(std::ostream &stream,
994  const ZividAPI &value) {
995  return stream << value.toString();
996  }
997 
999  void save(const std::string &fileName) const;
1000 
1002  void setFromString(const std::string &value);
1003 
1005  friend std::istream &operator>>(std::istream &stream, ZividAPI &value) {
1006  value.setFromString(std::string{std::istreambuf_iterator<char>{stream},
1007  std::istreambuf_iterator<char>{}});
1008  return stream;
1009  }
1010 
1012  void load(const std::string &fileName);
1013 
1015  bool operator==(const ZividAPI &other) const;
1016 
1018  bool operator!=(const ZividAPI &other) const;
1019  };
1020 
1023  class ZIVID_COMMON ZividCameraToshibaTeli {
1024  public:
1025  ZividCameraToshibaTeli() = default;
1026 
1028  explicit ZividCameraToshibaTeli(const std::string &fileName);
1029 
1031  static constexpr bool isContainer{true};
1032 
1034  static constexpr const char *path{
1035  "SoftwareVersion/ZividCameraToshibaTeli"};
1036 
1038  static constexpr const char *name{"ZividCameraToshibaTeli"};
1039 
1041  void set(const std::string &fullPath, const std::string &value);
1042 
1044  std::string getString(const std::string &fullPath) const;
1045 
1047  class ZIVID_COMMON FileDescription {
1048  public:
1050  using ValueType = std::string;
1051 
1053  static constexpr bool isContainer{false};
1054 
1056  static constexpr const char *path{
1057  "SoftwareVersion/ZividCameraToshibaTeli/FileDescription"};
1058 
1060  static constexpr const char *name{"FileDescription"};
1061 
1063  FileDescription() = default;
1064 
1066  explicit FileDescription(ValueType value) noexcept(
1067  std::is_nothrow_move_constructible<ValueType>::value)
1068  : m_value{std::move(value)} {}
1069 
1071  const ValueType &value() const { return m_value; }
1072 
1074  void setFromString(const std::string &value) { m_value = value; }
1075 
1077  std::string toString() const { return m_value; }
1078 
1080  bool operator==(const FileDescription &other) const {
1081  return m_value == other.m_value;
1082  }
1083 
1085  bool operator!=(const FileDescription &other) const {
1086  return m_value != other.m_value;
1087  }
1088 
1090  bool operator<(const FileDescription &other) const {
1091  return m_value < other.m_value;
1092  }
1093 
1095  bool operator>(const FileDescription &other) const {
1096  return m_value > other.m_value;
1097  }
1098 
1100  friend std::ostream &operator<<(std::ostream &stream,
1101  const FileDescription &value) {
1102  return stream << value.toString();
1103  }
1104 
1106  friend std::istream &operator>>(std::istream &stream,
1107  FileDescription &value) {
1108  value.setFromString(
1109  std::string{std::istreambuf_iterator<char>{stream},
1110  std::istreambuf_iterator<char>{}});
1111  return stream;
1112  }
1113 
1114  private:
1115  ValueType m_value{"NA"};
1116  };
1117 
1119  class ZIVID_COMMON FileVersion {
1120  public:
1122  using ValueType = std::string;
1123 
1125  static constexpr bool isContainer{false};
1126 
1128  static constexpr const char *path{
1129  "SoftwareVersion/ZividCameraToshibaTeli/FileVersion"};
1130 
1132  static constexpr const char *name{"FileVersion"};
1133 
1135  FileVersion() = default;
1136 
1138  explicit FileVersion(ValueType value) noexcept(
1139  std::is_nothrow_move_constructible<ValueType>::value)
1140  : m_value{std::move(value)} {}
1141 
1143  const ValueType &value() const { return m_value; }
1144 
1146  void setFromString(const std::string &value) { m_value = value; }
1147 
1149  std::string toString() const { return m_value; }
1150 
1152  bool operator==(const FileVersion &other) const {
1153  return m_value == other.m_value;
1154  }
1155 
1157  bool operator!=(const FileVersion &other) const {
1158  return m_value != other.m_value;
1159  }
1160 
1162  bool operator<(const FileVersion &other) const {
1163  return m_value < other.m_value;
1164  }
1165 
1167  bool operator>(const FileVersion &other) const {
1168  return m_value > other.m_value;
1169  }
1170 
1172  friend std::ostream &operator<<(std::ostream &stream,
1173  const FileVersion &value) {
1174  return stream << value.toString();
1175  }
1176 
1178  friend std::istream &operator>>(std::istream &stream,
1179  FileVersion &value) {
1180  value.setFromString(
1181  std::string{std::istreambuf_iterator<char>{stream},
1182  std::istreambuf_iterator<char>{}});
1183  return stream;
1184  }
1185 
1186  private:
1187  ValueType m_value{"NA"};
1188  };
1189 
1191  class ZIVID_COMMON ProductVersion {
1192  public:
1194  using ValueType = std::string;
1195 
1197  static constexpr bool isContainer{false};
1198 
1200  static constexpr const char *path{
1201  "SoftwareVersion/ZividCameraToshibaTeli/ProductVersion"};
1202 
1204  static constexpr const char *name{"ProductVersion"};
1205 
1207  ProductVersion() = default;
1208 
1210  explicit ProductVersion(ValueType value) noexcept(
1211  std::is_nothrow_move_constructible<ValueType>::value)
1212  : m_value{std::move(value)} {}
1213 
1215  const ValueType &value() const { return m_value; }
1216 
1218  void setFromString(const std::string &value) { m_value = value; }
1219 
1221  std::string toString() const { return m_value; }
1222 
1224  bool operator==(const ProductVersion &other) const {
1225  return m_value == other.m_value;
1226  }
1227 
1229  bool operator!=(const ProductVersion &other) const {
1230  return m_value != other.m_value;
1231  }
1232 
1234  bool operator<(const ProductVersion &other) const {
1235  return m_value < other.m_value;
1236  }
1237 
1239  bool operator>(const ProductVersion &other) const {
1240  return m_value > other.m_value;
1241  }
1242 
1244  friend std::ostream &operator<<(std::ostream &stream,
1245  const ProductVersion &value) {
1246  return stream << value.toString();
1247  }
1248 
1250  friend std::istream &operator>>(std::istream &stream,
1251  ProductVersion &value) {
1252  value.setFromString(
1253  std::string{std::istreambuf_iterator<char>{stream},
1254  std::istreambuf_iterator<char>{}});
1255  return stream;
1256  }
1257 
1258  private:
1259  ValueType m_value{"NA"};
1260  };
1261 
1263  class ZIVID_COMMON Comments {
1264  public:
1266  using ValueType = std::string;
1267 
1269  static constexpr bool isContainer{false};
1270 
1272  static constexpr const char *path{
1273  "SoftwareVersion/ZividCameraToshibaTeli/Comments"};
1274 
1276  static constexpr const char *name{"Comments"};
1277 
1279  Comments() = default;
1280 
1282  explicit Comments(ValueType value) noexcept(
1283  std::is_nothrow_move_constructible<ValueType>::value)
1284  : m_value{std::move(value)} {}
1285 
1287  const ValueType &value() const { return m_value; }
1288 
1290  void setFromString(const std::string &value) { m_value = value; }
1291 
1293  std::string toString() const { return m_value; }
1294 
1296  bool operator==(const Comments &other) const {
1297  return m_value == other.m_value;
1298  }
1299 
1301  bool operator!=(const Comments &other) const {
1302  return m_value != other.m_value;
1303  }
1304 
1306  bool operator<(const Comments &other) const {
1307  return m_value < other.m_value;
1308  }
1309 
1311  bool operator>(const Comments &other) const {
1312  return m_value > other.m_value;
1313  }
1314 
1316  friend std::ostream &operator<<(std::ostream &stream,
1317  const Comments &value) {
1318  return stream << value.toString();
1319  }
1320 
1322  friend std::istream &operator>>(std::istream &stream, Comments &value) {
1323  value.setFromString(
1324  std::string{std::istreambuf_iterator<char>{stream},
1325  std::istreambuf_iterator<char>{}});
1326  return stream;
1327  }
1328 
1329  private:
1330  ValueType m_value{"NA"};
1331  };
1332 
1333  private:
1334  FileDescription m_fileDescription{};
1335 
1336  public:
1339 
1340  m_fileDescription = value;
1341  return *this;
1342  }
1345  return m_fileDescription;
1346  }
1347 
1348  private:
1349  FileVersion m_fileVersion{};
1350 
1351  public:
1354 
1355  m_fileVersion = value;
1356  return *this;
1357  }
1359  const FileVersion &fileVersion() const { return m_fileVersion; }
1360 
1361  private:
1362  ProductVersion m_productVersion{};
1363 
1364  public:
1367 
1368  m_productVersion = value;
1369  return *this;
1370  }
1372  const ProductVersion &productVersion() const { return m_productVersion; }
1373 
1374  private:
1375  Comments m_comments{};
1376 
1377  public:
1379  ZividCameraToshibaTeli &set(const Comments &value) {
1380 
1381  m_comments = value;
1382  return *this;
1383  }
1385  const Comments &comments() const { return m_comments; }
1386 
1389  template <typename F> void forEach(const F &f) const {
1390  f(m_fileDescription);
1391  f(m_fileVersion);
1392  f(m_productVersion);
1393  f(m_comments);
1394  }
1395 
1398  template <typename F> void forEach(const F &f) {
1399  f(m_fileDescription);
1400  f(m_fileVersion);
1401  f(m_productVersion);
1402  f(m_comments);
1403  }
1404 
1407  template <typename F> void traverseValues(const F &f) const {
1408  f(m_fileDescription);
1409  f(m_fileVersion);
1410  f(m_productVersion);
1411  f(m_comments);
1412  }
1413 
1416  template <typename F> void traverseValues(const F &f) {
1417  f(m_fileDescription);
1418  f(m_fileVersion);
1419  f(m_productVersion);
1420  f(m_comments);
1421  }
1422 
1424  std::string toString() const;
1425 
1427  friend std::ostream &operator<<(std::ostream &stream,
1428  const ZividCameraToshibaTeli &value) {
1429  return stream << value.toString();
1430  }
1431 
1433  void save(const std::string &fileName) const;
1434 
1436  void setFromString(const std::string &value);
1437 
1439  friend std::istream &operator>>(std::istream &stream,
1440  ZividCameraToshibaTeli &value) {
1441  value.setFromString(std::string{std::istreambuf_iterator<char>{stream},
1442  std::istreambuf_iterator<char>{}});
1443  return stream;
1444  }
1445 
1447  void load(const std::string &fileName);
1448 
1450  bool operator==(const ZividCameraToshibaTeli &other) const;
1451 
1453  bool operator!=(const ZividCameraToshibaTeli &other) const;
1454  };
1455 
1457  class ZIVID_COMMON ZividCameraFile {
1458  public:
1459  ZividCameraFile() = default;
1460 
1462  explicit ZividCameraFile(const std::string &fileName);
1463 
1465  static constexpr bool isContainer{true};
1466 
1468  static constexpr const char *path{"SoftwareVersion/ZividCameraFile"};
1469 
1471  static constexpr const char *name{"ZividCameraFile"};
1472 
1474  void set(const std::string &fullPath, const std::string &value);
1475 
1477  std::string getString(const std::string &fullPath) const;
1478 
1480  class ZIVID_COMMON FileDescription {
1481  public:
1483  using ValueType = std::string;
1484 
1486  static constexpr bool isContainer{false};
1487 
1489  static constexpr const char *path{
1490  "SoftwareVersion/ZividCameraFile/FileDescription"};
1491 
1493  static constexpr const char *name{"FileDescription"};
1494 
1496  FileDescription() = default;
1497 
1499  explicit FileDescription(ValueType value) noexcept(
1500  std::is_nothrow_move_constructible<ValueType>::value)
1501  : m_value{std::move(value)} {}
1502 
1504  const ValueType &value() const { return m_value; }
1505 
1507  void setFromString(const std::string &value) { m_value = value; }
1508 
1510  std::string toString() const { return m_value; }
1511 
1513  bool operator==(const FileDescription &other) const {
1514  return m_value == other.m_value;
1515  }
1516 
1518  bool operator!=(const FileDescription &other) const {
1519  return m_value != other.m_value;
1520  }
1521 
1523  bool operator<(const FileDescription &other) const {
1524  return m_value < other.m_value;
1525  }
1526 
1528  bool operator>(const FileDescription &other) const {
1529  return m_value > other.m_value;
1530  }
1531 
1533  friend std::ostream &operator<<(std::ostream &stream,
1534  const FileDescription &value) {
1535  return stream << value.toString();
1536  }
1537 
1539  friend std::istream &operator>>(std::istream &stream,
1540  FileDescription &value) {
1541  value.setFromString(
1542  std::string{std::istreambuf_iterator<char>{stream},
1543  std::istreambuf_iterator<char>{}});
1544  return stream;
1545  }
1546 
1547  private:
1548  ValueType m_value{"NA"};
1549  };
1550 
1552  class ZIVID_COMMON FileVersion {
1553  public:
1555  using ValueType = std::string;
1556 
1558  static constexpr bool isContainer{false};
1559 
1561  static constexpr const char *path{
1562  "SoftwareVersion/ZividCameraFile/FileVersion"};
1563 
1565  static constexpr const char *name{"FileVersion"};
1566 
1568  FileVersion() = default;
1569 
1571  explicit FileVersion(ValueType value) noexcept(
1572  std::is_nothrow_move_constructible<ValueType>::value)
1573  : m_value{std::move(value)} {}
1574 
1576  const ValueType &value() const { return m_value; }
1577 
1579  void setFromString(const std::string &value) { m_value = value; }
1580 
1582  std::string toString() const { return m_value; }
1583 
1585  bool operator==(const FileVersion &other) const {
1586  return m_value == other.m_value;
1587  }
1588 
1590  bool operator!=(const FileVersion &other) const {
1591  return m_value != other.m_value;
1592  }
1593 
1595  bool operator<(const FileVersion &other) const {
1596  return m_value < other.m_value;
1597  }
1598 
1600  bool operator>(const FileVersion &other) const {
1601  return m_value > other.m_value;
1602  }
1603 
1605  friend std::ostream &operator<<(std::ostream &stream,
1606  const FileVersion &value) {
1607  return stream << value.toString();
1608  }
1609 
1611  friend std::istream &operator>>(std::istream &stream,
1612  FileVersion &value) {
1613  value.setFromString(
1614  std::string{std::istreambuf_iterator<char>{stream},
1615  std::istreambuf_iterator<char>{}});
1616  return stream;
1617  }
1618 
1619  private:
1620  ValueType m_value{"NA"};
1621  };
1622 
1624  class ZIVID_COMMON ProductVersion {
1625  public:
1627  using ValueType = std::string;
1628 
1630  static constexpr bool isContainer{false};
1631 
1633  static constexpr const char *path{
1634  "SoftwareVersion/ZividCameraFile/ProductVersion"};
1635 
1637  static constexpr const char *name{"ProductVersion"};
1638 
1640  ProductVersion() = default;
1641 
1643  explicit ProductVersion(ValueType value) noexcept(
1644  std::is_nothrow_move_constructible<ValueType>::value)
1645  : m_value{std::move(value)} {}
1646 
1648  const ValueType &value() const { return m_value; }
1649 
1651  void setFromString(const std::string &value) { m_value = value; }
1652 
1654  std::string toString() const { return m_value; }
1655 
1657  bool operator==(const ProductVersion &other) const {
1658  return m_value == other.m_value;
1659  }
1660 
1662  bool operator!=(const ProductVersion &other) const {
1663  return m_value != other.m_value;
1664  }
1665 
1667  bool operator<(const ProductVersion &other) const {
1668  return m_value < other.m_value;
1669  }
1670 
1672  bool operator>(const ProductVersion &other) const {
1673  return m_value > other.m_value;
1674  }
1675 
1677  friend std::ostream &operator<<(std::ostream &stream,
1678  const ProductVersion &value) {
1679  return stream << value.toString();
1680  }
1681 
1683  friend std::istream &operator>>(std::istream &stream,
1684  ProductVersion &value) {
1685  value.setFromString(
1686  std::string{std::istreambuf_iterator<char>{stream},
1687  std::istreambuf_iterator<char>{}});
1688  return stream;
1689  }
1690 
1691  private:
1692  ValueType m_value{"NA"};
1693  };
1694 
1696  class ZIVID_COMMON Comments {
1697  public:
1699  using ValueType = std::string;
1700 
1702  static constexpr bool isContainer{false};
1703 
1705  static constexpr const char *path{
1706  "SoftwareVersion/ZividCameraFile/Comments"};
1707 
1709  static constexpr const char *name{"Comments"};
1710 
1712  Comments() = default;
1713 
1715  explicit Comments(ValueType value) noexcept(
1716  std::is_nothrow_move_constructible<ValueType>::value)
1717  : m_value{std::move(value)} {}
1718 
1720  const ValueType &value() const { return m_value; }
1721 
1723  void setFromString(const std::string &value) { m_value = value; }
1724 
1726  std::string toString() const { return m_value; }
1727 
1729  bool operator==(const Comments &other) const {
1730  return m_value == other.m_value;
1731  }
1732 
1734  bool operator!=(const Comments &other) const {
1735  return m_value != other.m_value;
1736  }
1737 
1739  bool operator<(const Comments &other) const {
1740  return m_value < other.m_value;
1741  }
1742 
1744  bool operator>(const Comments &other) const {
1745  return m_value > other.m_value;
1746  }
1747 
1749  friend std::ostream &operator<<(std::ostream &stream,
1750  const Comments &value) {
1751  return stream << value.toString();
1752  }
1753 
1755  friend std::istream &operator>>(std::istream &stream, Comments &value) {
1756  value.setFromString(
1757  std::string{std::istreambuf_iterator<char>{stream},
1758  std::istreambuf_iterator<char>{}});
1759  return stream;
1760  }
1761 
1762  private:
1763  ValueType m_value{"NA"};
1764  };
1765 
1766  private:
1767  FileDescription m_fileDescription{};
1768 
1769  public:
1771  ZividCameraFile &set(const FileDescription &value) {
1772 
1773  m_fileDescription = value;
1774  return *this;
1775  }
1778  return m_fileDescription;
1779  }
1780 
1781  private:
1782  FileVersion m_fileVersion{};
1783 
1784  public:
1786  ZividCameraFile &set(const FileVersion &value) {
1787 
1788  m_fileVersion = value;
1789  return *this;
1790  }
1792  const FileVersion &fileVersion() const { return m_fileVersion; }
1793 
1794  private:
1795  ProductVersion m_productVersion{};
1796 
1797  public:
1799  ZividCameraFile &set(const ProductVersion &value) {
1800 
1801  m_productVersion = value;
1802  return *this;
1803  }
1805  const ProductVersion &productVersion() const { return m_productVersion; }
1806 
1807  private:
1808  Comments m_comments{};
1809 
1810  public:
1812  ZividCameraFile &set(const Comments &value) {
1813 
1814  m_comments = value;
1815  return *this;
1816  }
1818  const Comments &comments() const { return m_comments; }
1819 
1822  template <typename F> void forEach(const F &f) const {
1823  f(m_fileDescription);
1824  f(m_fileVersion);
1825  f(m_productVersion);
1826  f(m_comments);
1827  }
1828 
1831  template <typename F> void forEach(const F &f) {
1832  f(m_fileDescription);
1833  f(m_fileVersion);
1834  f(m_productVersion);
1835  f(m_comments);
1836  }
1837 
1840  template <typename F> void traverseValues(const F &f) const {
1841  f(m_fileDescription);
1842  f(m_fileVersion);
1843  f(m_productVersion);
1844  f(m_comments);
1845  }
1846 
1849  template <typename F> void traverseValues(const F &f) {
1850  f(m_fileDescription);
1851  f(m_fileVersion);
1852  f(m_productVersion);
1853  f(m_comments);
1854  }
1855 
1857  std::string toString() const;
1858 
1860  friend std::ostream &operator<<(std::ostream &stream,
1861  const ZividCameraFile &value) {
1862  return stream << value.toString();
1863  }
1864 
1866  void save(const std::string &fileName) const;
1867 
1869  void setFromString(const std::string &value);
1870 
1872  friend std::istream &operator>>(std::istream &stream,
1873  ZividCameraFile &value) {
1874  value.setFromString(std::string{std::istreambuf_iterator<char>{stream},
1875  std::istreambuf_iterator<char>{}});
1876  return stream;
1877  }
1878 
1880  void load(const std::string &fileName);
1881 
1883  bool operator==(const ZividCameraFile &other) const;
1884 
1886  bool operator!=(const ZividCameraFile &other) const;
1887  };
1888 
1889  private:
1890  ZividStudio m_zividStudio{};
1891 
1892  public:
1894  SoftwareVersion &set(const ZividStudio &value) {
1895 
1896  m_zividStudio = value;
1897  return *this;
1898  }
1900  const ZividStudio &zividStudio() const { return m_zividStudio; }
1901 
1904 
1905  m_zividStudio.set(value);
1906  return *this;
1907  }
1908 
1911 
1912  m_zividStudio.set(value);
1913  return *this;
1914  }
1915 
1918 
1919  m_zividStudio.set(value);
1920  return *this;
1921  }
1922 
1925 
1926  m_zividStudio.set(value);
1927  return *this;
1928  }
1929 
1930  private:
1931  ZividAPI m_zividAPI{};
1932 
1933  public:
1935  SoftwareVersion &set(const ZividAPI &value) {
1936 
1937  m_zividAPI = value;
1938  return *this;
1939  }
1941  const ZividAPI &zividAPI() const { return m_zividAPI; }
1942 
1945 
1946  m_zividAPI.set(value);
1947  return *this;
1948  }
1949 
1952 
1953  m_zividAPI.set(value);
1954  return *this;
1955  }
1956 
1959 
1960  m_zividAPI.set(value);
1961  return *this;
1962  }
1963 
1966 
1967  m_zividAPI.set(value);
1968  return *this;
1969  }
1970 
1971  private:
1972  ZividCameraToshibaTeli m_zividCameraToshibaTeli{};
1973 
1974  public:
1977 
1978  m_zividCameraToshibaTeli = value;
1979  return *this;
1980  }
1983  return m_zividCameraToshibaTeli;
1984  }
1985 
1988 
1989  m_zividCameraToshibaTeli.set(value);
1990  return *this;
1991  }
1992 
1995 
1996  m_zividCameraToshibaTeli.set(value);
1997  return *this;
1998  }
1999 
2002 
2003  m_zividCameraToshibaTeli.set(value);
2004  return *this;
2005  }
2006 
2009 
2010  m_zividCameraToshibaTeli.set(value);
2011  return *this;
2012  }
2013 
2014  private:
2015  ZividCameraFile m_zividCameraFile{};
2016 
2017  public:
2019  SoftwareVersion &set(const ZividCameraFile &value) {
2020 
2021  m_zividCameraFile = value;
2022  return *this;
2023  }
2025  const ZividCameraFile &zividCameraFile() const { return m_zividCameraFile; }
2026 
2029 
2030  m_zividCameraFile.set(value);
2031  return *this;
2032  }
2033 
2036 
2037  m_zividCameraFile.set(value);
2038  return *this;
2039  }
2040 
2043 
2044  m_zividCameraFile.set(value);
2045  return *this;
2046  }
2047 
2050 
2051  m_zividCameraFile.set(value);
2052  return *this;
2053  }
2054 
2057  template <typename F> void forEach(const F &f) const {
2058  f(m_zividStudio);
2059  f(m_zividAPI);
2060  f(m_zividCameraToshibaTeli);
2061  f(m_zividCameraFile);
2062  }
2063 
2066  template <typename F> void forEach(const F &f) {
2067  f(m_zividStudio);
2068  f(m_zividAPI);
2069  f(m_zividCameraToshibaTeli);
2070  f(m_zividCameraFile);
2071  }
2072 
2075  template <typename F> void traverseValues(const F &f) const {
2076  m_zividStudio.traverseValues(f);
2077  m_zividAPI.traverseValues(f);
2078  m_zividCameraToshibaTeli.traverseValues(f);
2079  m_zividCameraFile.traverseValues(f);
2080  }
2081 
2084  template <typename F> void traverseValues(const F &f) {
2085  m_zividStudio.traverseValues(f);
2086  m_zividAPI.traverseValues(f);
2087  m_zividCameraToshibaTeli.traverseValues(f);
2088  m_zividCameraFile.traverseValues(f);
2089  }
2090 
2092  std::string toString() const;
2093 
2095  friend std::ostream &operator<<(std::ostream &stream,
2096  const SoftwareVersion &value) {
2097  return stream << value.toString();
2098  }
2099 
2101  void save(const std::string &fileName) const;
2102 
2104  void setFromString(const std::string &value);
2105 
2107  friend std::istream &operator>>(std::istream &stream,
2108  SoftwareVersion &value) {
2109  value.setFromString(std::string{std::istreambuf_iterator<char>{stream},
2110  std::istreambuf_iterator<char>{}});
2111  return stream;
2112  }
2113 
2115  void load(const std::string &fileName);
2116 
2118  bool operator==(const SoftwareVersion &other) const;
2119 
2121  bool operator!=(const SoftwareVersion &other) const;
2122  };
2123 
2124 private:
2125  TimeStamp m_timeStamp{};
2126 
2127 public:
2129  FrameInfo &set(const TimeStamp &value) {
2130 
2131  if (value.value().time_since_epoch().count() <
2132  value.range().min().time_since_epoch().count() ||
2133  value.value().time_since_epoch().count() >
2134  value.range().max().time_since_epoch().count()) {
2135  throw std::out_of_range(
2136  "FrameInfo: " +
2137  std::to_string(value.value().time_since_epoch().count()) +
2138  ", is out of range: {" +
2139  std::to_string(value.range().min().time_since_epoch().count()) +
2140  ", " +
2141  std::to_string(value.range().max().time_since_epoch().count()) + "}");
2142  }
2143 
2144  m_timeStamp = value;
2145  return *this;
2146  }
2148  const TimeStamp &timeStamp() const { return m_timeStamp; }
2149 
2150 private:
2151  SoftwareVersion m_softwareVersion{};
2152 
2153 public:
2155  FrameInfo &set(const SoftwareVersion &value) {
2156 
2157  m_softwareVersion = value;
2158  return *this;
2159  }
2161  const SoftwareVersion &softwareVersion() const { return m_softwareVersion; }
2162 
2165 
2166  m_softwareVersion.set(value);
2167  return *this;
2168  }
2169 
2172 
2173  m_softwareVersion.set(value);
2174  return *this;
2175  }
2176 
2179 
2180  m_softwareVersion.set(value);
2181  return *this;
2182  }
2183 
2186 
2187  m_softwareVersion.set(value);
2188  return *this;
2189  }
2190 
2193 
2194  m_softwareVersion.set(value);
2195  return *this;
2196  }
2197 
2200 
2201  m_softwareVersion.set(value);
2202  return *this;
2203  }
2204 
2207 
2208  m_softwareVersion.set(value);
2209  return *this;
2210  }
2211 
2214 
2215  m_softwareVersion.set(value);
2216  return *this;
2217  }
2218 
2221 
2222  m_softwareVersion.set(value);
2223  return *this;
2224  }
2225 
2228 
2229  m_softwareVersion.set(value);
2230  return *this;
2231  }
2232 
2235 
2236  m_softwareVersion.set(value);
2237  return *this;
2238  }
2239 
2242  FrameInfo &
2244 
2245  m_softwareVersion.set(value);
2246  return *this;
2247  }
2248 
2251  FrameInfo &
2253 
2254  m_softwareVersion.set(value);
2255  return *this;
2256  }
2257 
2260  FrameInfo &
2262 
2263  m_softwareVersion.set(value);
2264  return *this;
2265  }
2266 
2268  FrameInfo &
2270 
2271  m_softwareVersion.set(value);
2272  return *this;
2273  }
2274 
2277 
2278  m_softwareVersion.set(value);
2279  return *this;
2280  }
2281 
2283  FrameInfo &
2285 
2286  m_softwareVersion.set(value);
2287  return *this;
2288  }
2289 
2292 
2293  m_softwareVersion.set(value);
2294  return *this;
2295  }
2296 
2298  FrameInfo &
2300 
2301  m_softwareVersion.set(value);
2302  return *this;
2303  }
2304 
2307 
2308  m_softwareVersion.set(value);
2309  return *this;
2310  }
2311 
2314  template <typename F> void forEach(const F &f) const {
2315  f(m_timeStamp);
2316  f(m_softwareVersion);
2317  }
2318 
2321  template <typename F> void forEach(const F &f) {
2322  f(m_timeStamp);
2323  f(m_softwareVersion);
2324  }
2325 
2328  template <typename F> void traverseValues(const F &f) const {
2329  f(m_timeStamp);
2330  m_softwareVersion.traverseValues(f);
2331  }
2332 
2335  template <typename F> void traverseValues(const F &f) {
2336  f(m_timeStamp);
2337  m_softwareVersion.traverseValues(f);
2338  }
2339 
2341  std::string toString() const;
2342 
2344  friend std::ostream &operator<<(std::ostream &stream,
2345  const FrameInfo &value) {
2346  return stream << value.toString();
2347  }
2348 
2350  void save(const std::string &fileName) const;
2351 
2353  void setFromString(const std::string &value);
2354 
2356  friend std::istream &operator>>(std::istream &stream, FrameInfo &value) {
2357  value.setFromString(std::string{std::istreambuf_iterator<char>{stream},
2358  std::istreambuf_iterator<char>{}});
2359  return stream;
2360  }
2361 
2363  void load(const std::string &fileName);
2364 
2366  bool operator==(const FrameInfo &other) const;
2367 
2369  bool operator!=(const FrameInfo &other) const;
2370 };
2371 } // namespace Zivid
2372 
2373 #ifdef _MSC_VER
2374 #pragma warning(pop)
2375 #endif
friend std::ostream & operator<<(std::ostream &stream, const FileVersion &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:1605
Version information for the ZividCameraToshibaTeli driver
Definition: FrameInfo.h:1023
void traverseValues(const F &f)
Traverse all members using the given function with the value of the member as parameter
Definition: FrameInfo.h:1416
friend std::istream & operator>>(std::istream &stream, Comments &value)
Operator to set the value from a stream
Definition: FrameInfo.h:456
const ValueType & value() const
Get the value
Definition: FrameInfo.h:853
const ValueType & value() const
Get the value
Definition: FrameInfo.h:1504
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: FrameInfo.h:1398
bool operator<(const FileVersion &other) const
Comparison operator
Definition: FrameInfo.h:1595
ProductVersion(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: FrameInfo.h:1643
const Comments & comments() const
Get Comments
Definition: FrameInfo.h:519
bool operator>(const FileVersion &other) const
Comparison operator
Definition: FrameInfo.h:301
bool operator==(const ProductVersion &other) const
Comparison operator
Definition: FrameInfo.h:358
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:1483
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:833
bool operator!=(const FileVersion &other) const
Comparison operator
Definition: FrameInfo.h:291
bool operator!=(const ProductVersion &other) const
Comparison operator
Definition: FrameInfo.h:363
Comments(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: FrameInfo.h:848
friend std::ostream & operator<<(std::ostream &stream, const ProductVersion &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:811
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:761
friend std::ostream & operator<<(std::ostream &stream, const ZividAPI &value)
Operator to send the value as string to a stream
Definition: FrameInfo.h:993
friend std::istream & operator>>(std::istream &stream, ZividCameraToshibaTeli &value)
Operator to set the value from a stream
Definition: FrameInfo.h:1439
bool operator==(const FileDescription &other) const
Comparison operator
Definition: FrameInfo.h:647
bool operator!=(const FileVersion &other) const
Comparison operator
Definition: FrameInfo.h:1590
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:184
void set(const std::string &fullPath, const std::string &value)
Set a value from string by specifying the path
const ZividCameraFile & zividCameraFile() const
Get ZividCameraFile
Definition: FrameInfo.h:2025
void set(const std::string &fullPath, const std::string &value)
Set a value from string by specifying the path
bool operator!=(const Comments &other) const
Comparison operator
Definition: FrameInfo.h:435
Class describing a range of values for a given type T The range boudaries for both minimum and maximu...
Definition: Range.h:24
const ValueType & value() const
Get the value
Definition: FrameInfo.h:1143
friend std::ostream & operator<<(std::ostream &stream, const FileDescription &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:1533
const ValueType & value() const
Get the value
Definition: FrameInfo.h:82
void setFromString(const std::string &value)
Set the value from string
Definition: FrameInfo.h:1507
friend std::istream & operator>>(std::istream &stream, FileVersion &value)
Operator to set the value from a stream
Definition: FrameInfo.h:745
friend std::istream & operator>>(std::istream &stream, ProductVersion &value)
Operator to set the value from a stream
Definition: FrameInfo.h:384
void traverseValues(const F &f) const
Traverse the entire tree using the given function with the value of the member as parameter...
Definition: FrameInfo.h:2075
friend std::istream & operator>>(std::istream &stream, ZividAPI &value)
Operator to set the value from a stream
Definition: FrameInfo.h:1005
friend std::istream & operator>>(std::istream &stream, SoftwareVersion &value)
Operator to set the value from a stream
Definition: FrameInfo.h:2107
friend std::ostream & operator<<(std::ostream &stream, const FileDescription &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:1100
const ZividCameraToshibaTeli & zividCameraToshibaTeli() const
Get ZividCameraToshibaTeli
Definition: FrameInfo.h:1982
FileDescription(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: FrameInfo.h:633
const ValueType & value() const
Get the value
Definition: FrameInfo.h:1215
std::string toString() const
Get the value as string
friend std::ostream & operator<<(std::ostream &stream, const Comments &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:450
const ValueType & value() const
Get the value
Definition: FrameInfo.h:1071
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:1699
const FileVersion & fileVersion() const
Get FileVersion
Definition: FrameInfo.h:925
File description
Definition: FrameInfo.h:181
bool operator!=(const ProductVersion &other) const
Comparison operator
Definition: FrameInfo.h:1662
friend std::ostream & operator<<(std::ostream &stream, const TimeStamp &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:117
std::string toString() const
Get the value as string
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:1266
bool operator<(const ProductVersion &other) const
Comparison operator
Definition: FrameInfo.h:1234
std::string toString() const
Get the value as string
Definition: FrameInfo.h:1293
void setFromString(const std::string &value)
Set the value from string
Definition: FrameInfo.h:856
const FileVersion & fileVersion() const
Get FileVersion
Definition: FrameInfo.h:493
bool operator>(const ProductVersion &other) const
Comparison operator
Definition: FrameInfo.h:373
bool operator<(const FileDescription &other) const
Comparison operator
Definition: FrameInfo.h:657
const ValueType & value() const
Get the value
Definition: FrameInfo.h:1287
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: FrameInfo.h:532
std::string toString() const
Get the value as string
Definition: FrameInfo.h:644
std::string toString() const
Get the value as string
Definition: FrameInfo.h:1726
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:2314
void setFromString(const std::string &value)
Set the value from string
bool operator>(const Comments &other) const
Comparison operator
Definition: FrameInfo.h:1311
std::string toString() const
Get the value as string
Definition: FrameInfo.h:283
const ValueType & value() const
Get the value
Definition: FrameInfo.h:421
friend std::ostream & operator<<(std::ostream &stream, const FileDescription &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:667
FileVersion(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: FrameInfo.h:1138
const SoftwareVersion & softwareVersion() const
Get SoftwareVersion
Definition: FrameInfo.h:2161
Product version
Definition: FrameInfo.h:325
std::string toString() const
Get the value as string
friend std::ostream & operator<<(std::ostream &stream, const Comments &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:1749
const Comments & comments() const
Get Comments
Definition: FrameInfo.h:1818
friend std::ostream & operator<<(std::ostream &stream, const FileDescription &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:234
void setFromString(const std::string &value)
Set from the given string
void setFromString(const std::string &value)
Set from the given string
bool operator<(const FileVersion &other) const
Comparison operator
Definition: FrameInfo.h:729
friend std::ostream & operator<<(std::ostream &stream, const Comments &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:882
bool operator==(const Comments &other) const
Comparison operator
Definition: FrameInfo.h:430
std::string toString() const
Get the value as string
friend std::ostream & operator<<(std::ostream &stream, const ProductVersion &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:378
bool operator>(const FileDescription &other) const
Comparison operator
Definition: FrameInfo.h:1528
bool operator==(const Comments &other) const
Comparison operator
Definition: FrameInfo.h:1729
const ProductVersion & productVersion() const
Get ProductVersion
Definition: FrameInfo.h:506
bool operator!=(const Comments &other) const
Comparison operator
Definition: FrameInfo.h:1301
bool operator!=(const FileVersion &other) const
Comparison operator
Definition: FrameInfo.h:1157
bool operator==(const FileDescription &other) const
Comparison operator
Definition: FrameInfo.h:1080
friend std::ostream & operator<<(std::ostream &stream, const FileVersion &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:306
std::string toString() const
Get the value as string
Definition: FrameInfo.h:859
bool operator==(const Comments &other) const
Comparison operator
Definition: FrameInfo.h:862
The time of frame capture
Definition: FrameInfo.h:59
void traverseValues(const F &f)
Traverse all members using the given function with the value of the member as parameter
Definition: FrameInfo.h:1849
friend std::istream & operator>>(std::istream &stream, FileVersion &value)
Operator to set the value from a stream
Definition: FrameInfo.h:1178
FileDescription(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: FrameInfo.h:200
void setFromString(const std::string &value)
Set the value from string
Definition: FrameInfo.h:352
const ValueType & value() const
Get the value
Definition: FrameInfo.h:277
friend std::istream & operator>>(std::istream &stream, FrameInfo &value)
Operator to set the value from a stream
Definition: FrameInfo.h:2356
bool operator==(const FileDescription &other) const
Comparison operator
Definition: FrameInfo.h:214
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:328
void traverseValues(const F &f) const
Traverse the entire tree using the given function with the value of the member as parameter...
Definition: FrameInfo.h:973
bool operator==(const TimeStamp &other) const
Comparison operator
Definition: FrameInfo.h:97
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:2057
std::string toString() const
Get the value as string
friend std::istream & operator>>(std::istream &stream, FileDescription &value)
Operator to set the value from a stream
Definition: FrameInfo.h:1539
std::string toString() const
Get the value as string
Definition: FrameInfo.h:1510
std::string toString() const
Get the value as string
Definition: FrameInfo.h:1582
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:1555
bool operator!=(const FileDescription &other) const
Comparison operator
Definition: FrameInfo.h:1085
void traverseValues(const F &f)
Traverse all members using the given function with the value of the member as parameter
Definition: FrameInfo.h:2084
bool operator<(const TimeStamp &other) const
Comparison operator
Definition: FrameInfo.h:107
const Comments & comments() const
Get Comments
Definition: FrameInfo.h:951
ProductVersion(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: FrameInfo.h:1210
const ValueType & value() const
Get the value
Definition: FrameInfo.h:1576
Definition: Application.h:19
bool operator!=(const Comments &other) const
Comparison operator
Definition: FrameInfo.h:1734
const ValueType & value() const
Get the value
Definition: FrameInfo.h:1648
const ProductVersion & productVersion() const
Get ProductVersion
Definition: FrameInfo.h:938
void setFromString(const std::string &value)
Set the value from string
Definition: FrameInfo.h:713
FileVersion(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: FrameInfo.h:705
const FileDescription & fileDescription() const
Get FileDescription
Definition: FrameInfo.h:1344
ProductVersion(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: FrameInfo.h:777
Comments(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: FrameInfo.h:1715
The version information for installed software at the time of image capture
Definition: FrameInfo.h:135
bool operator==(const Comments &other) const
Comparison operator
Definition: FrameInfo.h:1296
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: FrameInfo.h:2066
void traverseValues(const F &f)
Traverse all members using the given function with the value of the member as parameter
Definition: FrameInfo.h:550
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:1389
const ProductVersion & productVersion() const
Get ProductVersion
Definition: FrameInfo.h:1372
Definitions for export of DLL interfaces
std::chrono::system_clock::time_point ValueType
The type of the underlying value
Definition: FrameInfo.h:62
friend std::istream & operator>>(std::istream &stream, Comments &value)
Operator to set the value from a stream
Definition: FrameInfo.h:888
void setFromString(const std::string &value)
Set the value from string
Definition: FrameInfo.h:208
const FileDescription & fileDescription() const
Get FileDescription
Definition: FrameInfo.h:478
friend std::ostream & operator<<(std::ostream &stream, const ProductVersion &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:1244
bool operator<(const ProductVersion &other) const
Comparison operator
Definition: FrameInfo.h:801
bool operator==(const ProductVersion &other) const
Comparison operator
Definition: FrameInfo.h:1224
Product version
Definition: FrameInfo.h:758
bool operator>(const FileDescription &other) const
Comparison operator
Definition: FrameInfo.h:229
friend std::istream & operator>>(std::istream &stream, FileDescription &value)
Operator to set the value from a stream
Definition: FrameInfo.h:1106
void setFromString(const std::string &value)
Set the value from string
Definition: FrameInfo.h:641
Comments(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: FrameInfo.h:1282
bool operator<(const FileDescription &other) const
Comparison operator
Definition: FrameInfo.h:1523
std::string toString() const
Get the value as string
Definition: FrameInfo.h:1149
void traverseValues(const F &f) const
Traverse the entire tree using the given function with the value of the member as parameter...
Definition: FrameInfo.h:2328
friend std::istream & operator>>(std::istream &stream, FileDescription &value)
Operator to set the value from a stream
Definition: FrameInfo.h:673
const Comments & comments() const
Get Comments
Definition: FrameInfo.h:1385
void setFromString(const std::string &value)
Set from the given string
void traverseValues(const F &f) const
Traverse the entire tree using the given function with the value of the member as parameter...
Definition: FrameInfo.h:541
bool operator!=(const Comments &other) const
Comparison operator
Definition: FrameInfo.h:867
Class describing a range of values
void traverseValues(const F &f) const
Traverse the entire tree using the given function with the value of the member as parameter...
Definition: FrameInfo.h:1840
const TimeStamp & timeStamp() const
Get TimeStamp
Definition: FrameInfo.h:2148
bool operator!=(const ProductVersion &other) const
Comparison operator
Definition: FrameInfo.h:796
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: FrameInfo.h:2321
const FileVersion & fileVersion() const
Get FileVersion
Definition: FrameInfo.h:1359
bool operator<(const Comments &other) const
Comparison operator
Definition: FrameInfo.h:872
void traverseValues(const F &f)
Traverse all members using the given function with the value of the member as parameter
Definition: FrameInfo.h:982
friend std::ostream & operator<<(std::ostream &stream, const Comments &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:1316
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:955
File description
Definition: FrameInfo.h:614
std::string toString() const
Get the value as string
Definition: FrameInfo.h:427
void setFromString(const std::string &value)
Set the value from string
Definition: FrameInfo.h:424
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:617
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:1627
friend std::istream & operator>>(std::istream &stream, FileDescription &value)
Operator to set the value from a stream
Definition: FrameInfo.h:240
Version information for the Zivid API library
Definition: FrameInfo.h:591
bool operator<(const FileDescription &other) const
Comparison operator
Definition: FrameInfo.h:224
std::string toString() const
Get the value as string
Definition: FrameInfo.h:1221
friend std::istream & operator>>(std::istream &stream, FileVersion &value)
Operator to set the value from a stream
Definition: FrameInfo.h:1611
std::string toString() const
Get the value as string
Definition: FrameInfo.h:788
ZIVID_COMMON std::string toString(const std::exception &exception)
Get string representation of the exception
bool operator==(const FileVersion &other) const
Comparison operator
Definition: FrameInfo.h:1585
friend std::ostream & operator<<(std::ostream &stream, const SoftwareVersion &value)
Operator to send the value as string to a stream
Definition: FrameInfo.h:2095
bool operator<(const ProductVersion &other) const
Comparison operator
Definition: FrameInfo.h:1667
const ZividAPI & zividAPI() const
Get ZividAPI
Definition: FrameInfo.h:1941
bool operator>(const TimeStamp &other) const
Comparison operator
Definition: FrameInfo.h:112
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:1050
const ValueType & value() const
Get the value
Definition: FrameInfo.h:349
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:689
bool operator<(const FileVersion &other) const
Comparison operator
Definition: FrameInfo.h:296
bool operator==(const FileVersion &other) const
Comparison operator
Definition: FrameInfo.h:719
void setFromString(const std::string &value)
Set the value from string
Definition: FrameInfo.h:1218
FileVersion(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: FrameInfo.h:1571
bool operator>(const FileDescription &other) const
Comparison operator
Definition: FrameInfo.h:1095
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:1822
void setFromString(const std::string &value)
Set from the given string
void traverseValues(const F &f)
Traverse all members using the given function with the value of the member as parameter
Definition: FrameInfo.h:2335
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: FrameInfo.h:964
std::string toString() const
Get the value as string
Definition: FrameInfo.h:211
friend std::istream & operator>>(std::istream &stream, FileVersion &value)
Operator to set the value from a stream
Definition: FrameInfo.h:312
const ProductVersion & productVersion() const
Get ProductVersion
Definition: FrameInfo.h:1805
bool operator<(const FileVersion &other) const
Comparison operator
Definition: FrameInfo.h:1162
void setFromString(const std::string &value)
Set the value from string
Definition: FrameInfo.h:1146
Range< ValueType > range() const
The range of valid values
Definition: FrameInfo.h:85
const FileDescription & fileDescription() const
Get FileDescription
Definition: FrameInfo.h:1777
std::string toString() const
Get the value as string
FileVersion(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: FrameInfo.h:272
bool operator>(const Comments &other) const
Comparison operator
Definition: FrameInfo.h:1744
bool operator==(const FileDescription &other) const
Comparison operator
Definition: FrameInfo.h:1513
bool operator>(const ProductVersion &other) const
Comparison operator
Definition: FrameInfo.h:1239
friend std::istream & operator>>(std::istream &stream, ProductVersion &value)
Operator to set the value from a stream
Definition: FrameInfo.h:817
FileDescription(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: FrameInfo.h:1066
bool operator==(const ProductVersion &other) const
Comparison operator
Definition: FrameInfo.h:1657
FileDescription(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: FrameInfo.h:1499
std::string toString() const
Get the value as string
Definition: FrameInfo.h:1077
friend std::istream & operator>>(std::istream &stream, TimeStamp &value)
Operator to set the value from a stream
Definition: FrameInfo.h:123
bool operator>(const FileVersion &other) const
Comparison operator
Definition: FrameInfo.h:734
const ValueType & value() const
Get the value
Definition: FrameInfo.h:710
std::string toString() const
Get the value as string
Definition: FrameInfo.h:716
Version information for the ZividStudio applicaton
Definition: FrameInfo.h:158
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:400
bool operator!=(const TimeStamp &other) const
Comparison operator
Definition: FrameInfo.h:102
friend std::ostream & operator<<(std::ostream &stream, const ZividCameraToshibaTeli &value)
Operator to send the value as string to a stream
Definition: FrameInfo.h:1427
bool operator<(const Comments &other) const
Comparison operator
Definition: FrameInfo.h:440
bool operator!=(const ProductVersion &other) const
Comparison operator
Definition: FrameInfo.h:1229
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:1194
bool operator>(const Comments &other) const
Comparison operator
Definition: FrameInfo.h:445
bool operator>(const ProductVersion &other) const
Comparison operator
Definition: FrameInfo.h:806
friend std::ostream & operator<<(std::ostream &stream, const ProductVersion &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:1677
std::string toString() const
Get the value as string
Definition: FrameInfo.h:355
bool operator==(const ProductVersion &other) const
Comparison operator
Definition: FrameInfo.h:791
bool operator>(const ProductVersion &other) const
Comparison operator
Definition: FrameInfo.h:1672
Various information for a frame
Definition: FrameInfo.h:36
friend std::istream & operator>>(std::istream &stream, Comments &value)
Operator to set the value from a stream
Definition: FrameInfo.h:1755
void setFromString(const std::string &value)
Set the value from string
Definition: FrameInfo.h:785
const ZividStudio & zividStudio() const
Get ZividStudio
Definition: FrameInfo.h:1900
void setFromString(const std::string &value)
Set the value from string
Definition: FrameInfo.h:1723
friend std::istream & operator>>(std::istream &stream, Comments &value)
Operator to set the value from a stream
Definition: FrameInfo.h:1322
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: FrameInfo.h:1831
const ValueType & value() const
Get the value
Definition: FrameInfo.h:782
const ValueType & value() const
Get the value
Definition: FrameInfo.h:205
void setFromString(const std::string &value)
Set the value from string
Definition: FrameInfo.h:1579
void setFromString(const std::string &value)
Set from the given string
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:256
bool operator<(const ProductVersion &other) const
Comparison operator
Definition: FrameInfo.h:368
Version information for the ZividCameraFile driver
Definition: FrameInfo.h:1457
std::string toString() const
Get the value as string
friend std::istream & operator>>(std::istream &stream, ZividCameraFile &value)
Operator to set the value from a stream
Definition: FrameInfo.h:1872
Comments(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: FrameInfo.h:416
void setFromString(const std::string &value)
Set the value from string
Definition: FrameInfo.h:1290
bool operator==(const FileVersion &other) const
Comparison operator
Definition: FrameInfo.h:1152
friend std::ostream & operator<<(std::ostream &stream, const ZividCameraFile &value)
Operator to send the value as string to a stream
Definition: FrameInfo.h:1860
std::string ValueType
The type of the underlying value
Definition: FrameInfo.h:1122
bool operator>(const FileVersion &other) const
Comparison operator
Definition: FrameInfo.h:1167
bool operator>(const FileDescription &other) const
Comparison operator
Definition: FrameInfo.h:662
void setFromString(const std::string &value)
Set the value from string
Definition: FrameInfo.h:280
bool operator<(const Comments &other) const
Comparison operator
Definition: FrameInfo.h:1739
std::string toString() const
Get the value as string
Definition: FrameInfo.h:1654
bool operator==(const FileVersion &other) const
Comparison operator
Definition: FrameInfo.h:286
File version
Definition: FrameInfo.h:686
friend std::istream & operator>>(std::istream &stream, ZividStudio &value)
Operator to set the value from a stream
Definition: FrameInfo.h:573
bool operator<(const FileDescription &other) const
Comparison operator
Definition: FrameInfo.h:1090
bool operator>(const Comments &other) const
Comparison operator
Definition: FrameInfo.h:877
bool operator!=(const FileDescription &other) const
Comparison operator
Definition: FrameInfo.h:1518
ProductVersion(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: FrameInfo.h:344
const ValueType & value() const
Get the value
Definition: FrameInfo.h:638
void setFromString(const std::string &value)
Set the value from string
Definition: FrameInfo.h:1074
bool operator!=(const FileDescription &other) const
Comparison operator
Definition: FrameInfo.h:652
friend std::ostream & operator<<(std::ostream &stream, const FileVersion &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:739
friend std::ostream & operator<<(std::ostream &stream, const ZividStudio &value)
Operator to send the value as string to a stream
Definition: FrameInfo.h:561
bool operator!=(const FileVersion &other) const
Comparison operator
Definition: FrameInfo.h:724
bool operator!=(const FileDescription &other) const
Comparison operator
Definition: FrameInfo.h:219
friend std::istream & operator>>(std::istream &stream, ProductVersion &value)
Operator to set the value from a stream
Definition: FrameInfo.h:1683
constexpr TimeStamp(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: FrameInfo.h:77
void setFromString(const std::string &value)
Set the value from string
Definition: FrameInfo.h:1651
friend std::istream & operator>>(std::istream &stream, ProductVersion &value)
Operator to set the value from a stream
Definition: FrameInfo.h:1250
bool operator<(const Comments &other) const
Comparison operator
Definition: FrameInfo.h:1306
friend std::ostream & operator<<(std::ostream &stream, const FrameInfo &value)
Operator to send the value as string to a stream
Definition: FrameInfo.h:2344
bool operator>(const FileVersion &other) const
Comparison operator
Definition: FrameInfo.h:1600
void setFromString(const std::string &value)
Set from the given string
const FileVersion & fileVersion() const
Get FileVersion
Definition: FrameInfo.h:1792
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:523
const FileDescription & fileDescription() const
Get FileDescription
Definition: FrameInfo.h:910
friend std::ostream & operator<<(std::ostream &stream, const FileVersion &value)
Operator to serialize the value to a stream
Definition: FrameInfo.h:1172
const ValueType & value() const
Get the value
Definition: FrameInfo.h:1720
void traverseValues(const F &f) const
Traverse the entire tree using the given function with the value of the member as parameter...
Definition: FrameInfo.h:1407