tdaq-develop-2025-02-12
TableVersion.h
1 #ifndef _ots_TableVersion_h_
2 #define _ots_TableVersion_h_
3 
4 #include <ostream>
5 
6 namespace ots
7 {
14 {
15  public:
16  static const unsigned int INVALID;
17  static const unsigned int DEFAULT;
18  static const unsigned int SCRATCH;
19 
20  explicit TableVersion(unsigned int version = INVALID);
21  explicit TableVersion(char* const& versionStr);
22  explicit TableVersion(const std::string& versionStr);
23  virtual ~TableVersion(void);
24 
25  unsigned int version(void) const;
26  bool isTemporaryVersion(void) const;
27  bool isScratchVersion(void) const;
28  bool isMockupVersion(void) const;
29  bool isInvalid(void) const;
30  std::string toString(void) const;
31 
33  TableVersion& operator=(const unsigned int version);
34  bool operator==(unsigned int version) const;
35  bool operator==(const TableVersion& version) const;
36  bool operator!=(unsigned int version) const;
37  bool operator!=(const TableVersion& version) const;
38  bool operator<(const TableVersion& version) const;
39  bool operator>(const TableVersion& version) const;
40  bool operator<=(const TableVersion& version) const { return !operator>(version); }
41  bool operator>=(const TableVersion& version) const { return !operator<(version); }
43  const unsigned int a);
45  const TableVersion a);
47  const TableVersion a);
49  const TableVersion a);
51  const TableVersion a);
52 
53  friend std::ostream& operator<<(std::ostream& out, const TableVersion& version)
54  {
55  if(version.isScratchVersion())
56  out << "ScratchVersion";
57  else if(version.isMockupVersion())
58  out << "Mock-up";
59  else if(version.isInvalid())
60  out << "InvalidVersion";
61  else
62  out << version.toString();
63  return out;
64  }
65 
68  const TableVersion& version = TableVersion());
69 
70  protected:
71  enum
72  {
73  NUM_OF_TEMP_VERSIONS = 10000
74  };
75 
76  unsigned int version_;
77 };
78 } // namespace ots
79 #endif
TableVersion & operator-=(const TableVersion a)
to support StringMacros on TableVersion types
Definition: TableVersion.cc:75
bool isMockupVersion(void) const
TableVersion & operator/=(const TableVersion a)
to support StringMacros on TableVersion types
Definition: TableVersion.cc:83
std::string toString(void) const
toString
Definition: TableVersion.cc:33
bool operator>(const TableVersion &version) const
operator>
TableVersion & operator=(const unsigned int version)
Operators.
Definition: TableVersion.cc:42
bool operator!=(unsigned int version) const
operator!=
bool isInvalid(void) const
isInvalid
bool operator==(unsigned int version) const
operator==
Definition: TableVersion.cc:91
bool operator<(const TableVersion &version) const
operator<
static TableVersion getNextVersion(const TableVersion &version=TableVersion())
bool isScratchVersion(void) const
bool isTemporaryVersion(void) const
unsigned int version(void) const
Definition: TableVersion.cc:29
TableVersion & operator+=(const TableVersion a)
to support StringMacros on TableVersion types
Definition: TableVersion.cc:67
TableVersion & operator*=(const unsigned int a)
to support StringMacros on TableVersion types
Definition: TableVersion.cc:51
static TableVersion getNextTemporaryVersion(const TableVersion &version=TableVersion())