tdaq-develop-2025-02-12
TableViewColumnInfo.h
1 #ifndef _ots_TableTableViewColumnInfo_h_
2 #define _ots_TableTableViewColumnInfo_h_
3 
4 #include <map>
5 #include <memory> /* shared_ptr */
6 #include <string>
7 #include <vector>
8 
9 namespace ots
10 {
11 // clang-format off
13 {
14  public:
15  TableViewColumnInfo(const std::string& type,
16  const std::string& name,
17  const std::string& storageName,
18  const std::string& dataType,
19  const std::string* defaultValue,
20  const std::string& dataChoicesCSV,
21  const std::string* minValue,
22  const std::string* maxValue,
23  std::string* capturedExceptionString);
24 
27 
28  virtual ~TableViewColumnInfo(void);
29 
30  const std::string& getType(void) const;
31  const std::string& getName(void) const;
32  const std::string& getStorageName(void) const;
33  const std::string& getDataType(void) const;
34  const std::string& getDefaultValue(void) const;
35  const std::string& getMinValue(void) const;
36  const std::string& getMaxValue(void) const;
37  static const std::string& getDefaultDefaultValue(const std::string& type, const std::string& dataType);
38  static const std::string& getMinDefaultValue(const std::string& dataType);
39  static const std::string& getMaxDefaultValue(const std::string& dataType);
40  const std::vector<std::string>& getDataChoices(void) const;
41 
42  struct BitMapInfo
43  {
44  BitMapInfo() : minColor_(""), midColor_(""), maxColor_("") {}
45  unsigned int numOfRows_, numOfColumns_, cellBitSize_;
46  uint64_t minValue_, maxValue_, stepValue_;
47  std::string aspectRatio_;
48  std::string minColor_, midColor_, maxColor_;
49  std::string absMinColor_, absMaxColor_;
50  bool rowsAscending_, colsAscending_, snakeRows_, snakeCols_;
51  };
52  const BitMapInfo& getBitMapInfo(void) const;
53 
54  static std::vector<std::string> getAllTypesForGUI(void);
55  static std::map<std::pair<std::string, std::string>, std::string> getAllDefaultsForGUI(void);
56  static std::vector<std::string> getAllDataTypesForGUI(void);
57 
58  bool isChildLink(void) const;
59  static bool isChildLink(const std::string& type);
60  bool isChildLinkUID(void) const;
61  bool isChildLinkGroupID(void) const;
62  bool isGroupID(void) const;
63  bool isUID(void) const;
64  bool isBoolType(void) const;
65  bool isNumberDataType(void) const;
66 
67  std::string getChildLinkIndex(void) const;
68 
69  static const std::string TYPE_UID;
70  static const std::string TYPE_DATA, TYPE_UNIQUE_DATA, TYPE_UNIQUE_GROUP_DATA, TYPE_MULTILINE_DATA, TYPE_FIXED_CHOICE_DATA, TYPE_BITMAP_DATA;
71  static const std::string TYPE_ON_OFF, TYPE_TRUE_FALSE, TYPE_YES_NO;
72  static const std::string TYPE_COMMENT, TYPE_AUTHOR, TYPE_TIMESTAMP;
73  static const std::string TYPE_START_CHILD_LINK, TYPE_START_CHILD_LINK_UID, TYPE_START_CHILD_LINK_GROUP_ID, TYPE_START_GROUP_ID;
74  static const std::string DATATYPE_NUMBER, DATATYPE_STRING, DATATYPE_TIME;
75 
76  static const std::string TYPE_VALUE_YES;
77  static const std::string TYPE_VALUE_NO;
78  static const std::string TYPE_VALUE_TRUE;
79  static const std::string TYPE_VALUE_FALSE;
80  static const std::string TYPE_VALUE_ON;
81  static const std::string TYPE_VALUE_OFF;
82 
83  static const std::string DATATYPE_STRING_DEFAULT;
84  static const std::string DATATYPE_COMMENT_DEFAULT;
85  static const std::string DATATYPE_BOOL_DEFAULT;
86  static const std::string DATATYPE_NUMBER_DEFAULT;
87  static const std::string DATATYPE_NUMBER_MIN_DEFAULT;
88  static const std::string DATATYPE_NUMBER_MAX_DEFAULT;
89  static const std::string DATATYPE_TIME_DEFAULT;
90  static const std::string DATATYPE_LINK_DEFAULT;
91 
92  static const std::string COL_NAME_STATUS, COL_NAME_ENABLED, COL_NAME_PRIORITY, COL_NAME_COMMENT, COL_NAME_AUTHOR, COL_NAME_CREATION;
93 
94  private:
96  void extractBitMapInfo();
97 
98  std::vector<std::string> getDataChoicesFromString(const std::string& dataChoicesCSV) const;
99 
100  protected:
101  const std::string type_;
102  const std::string name_;
103  const std::string storageName_;
104  const std::string dataType_;
105  const std::string defaultValue_;
106  const std::vector<std::string> dataChoices_;
107  const std::string minValue_;
108  const std::string maxValue_;
109  BitMapInfo* bitMapInfoP_;
110 }; //end TableViewColumnInfo class
111 // clang-format on
112 } // namespace ots
113 
114 #endif
static const std::string DATATYPE_NUMBER
static std::map< std::pair< std::string, std::string >, std::string > getAllDefaultsForGUI(void)
map of datatype,type to default value
std::string getChildLinkIndex(void) const
getChildLinkIndex
TableViewColumnInfo & operator=(const TableViewColumnInfo &c)
assignment operator because of bitmap pointer
bool isUID(void) const
isUID
static const std::string TYPE_UID
NOTE: Do NOT put '-' in static const TYPEs because it will mess up javascript handling in the web gui...
static const std::string & getMaxDefaultValue(const std::string &dataType)
function to get max default value
const BitMapInfo & getBitMapInfo(void) const
uses dataChoices CSV fields if type is TYPE_BITMAP_DATA
static const std::string & getMinDefaultValue(const std::string &dataType)
function to get min default value
bool isBoolType(void) const
TODO check if min and max values need a function called getallminmaxforgui or something like that for...
bool isNumberDataType(void) const
isNumberDataType
bool isChildLinkGroupID(void) const
< uses dataChoices CSV fields if type is TYPE_BITMAP_DATA