otsdaq  v2_03_00
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 {
12 {
13  public:
14  TableViewColumnInfo(const std::string& type,
15  const std::string& name,
16  const std::string& storageName,
17  const std::string& dataType,
18  const std::string& dataChoicesCSV,
19  std::string* capturedExceptionString);
21  const TableViewColumnInfo& c); // copy constructor because of bitmap pointer
22  TableViewColumnInfo& operator=(
23  const TableViewColumnInfo& c); // assignment operator because of bitmap pointer
24 
25  virtual ~TableViewColumnInfo(void);
26 
27  const std::string& getType(void) const;
28  const std::string& getName(void) const;
29  const std::string& getStorageName(void) const;
30  const std::string& getDataType(void) const;
31  const std::string& getDefaultValue(void) const;
32  const std::vector<std::string>& getDataChoices(void) const;
33 
34  struct BitMapInfo // uses dataChoices CSV fields if type is TYPE_BITMAP_DATA
35  {
36  BitMapInfo() : minColor_(""), midColor_(""), maxColor_("") {}
37  unsigned int numOfRows_, numOfColumns_, cellBitSize_;
38  uint64_t minValue_, maxValue_, stepValue_;
39  std::string aspectRatio_;
40  std::string minColor_, midColor_, maxColor_;
41  std::string absMinColor_, absMaxColor_;
42  bool rowsAscending_, colsAscending_, snakeRows_, snakeCols_;
43  };
44  const BitMapInfo& getBitMapInfo(
45  void) const; // uses dataChoices CSV fields if type is TYPE_BITMAP_DATA
46 
47  static std::vector<std::string> getAllTypesForGUI(void);
48  static std::map<std::pair<std::string, std::string>, std::string>
49  getAllDefaultsForGUI(void);
50  static std::vector<std::string> getAllDataTypesForGUI(void);
51 
52  const bool isChildLink(void) const;
53  const bool isChildLinkUID(void) const;
54  const bool isChildLinkGroupID(void) const;
55  const bool isGroupID(void) const;
56  const bool isUID(void) const;
57  const bool isBoolType(void) const;
58  const bool isNumberDataType(void) const;
59 
60  std::string getChildLinkIndex(void) const;
61 
62  static const std::string TYPE_UID;
63  static const std::string TYPE_DATA, TYPE_UNIQUE_DATA, TYPE_UNIQUE_GROUP_DATA,
64  TYPE_MULTILINE_DATA, TYPE_FIXED_CHOICE_DATA, TYPE_BITMAP_DATA;
65  static const std::string TYPE_ON_OFF, TYPE_TRUE_FALSE, TYPE_YES_NO;
66  static const std::string TYPE_COMMENT, TYPE_AUTHOR, TYPE_TIMESTAMP;
67  static const std::string TYPE_START_CHILD_LINK, TYPE_START_CHILD_LINK_UID,
68  TYPE_START_CHILD_LINK_GROUP_ID, TYPE_START_GROUP_ID;
69  static const std::string DATATYPE_NUMBER, DATATYPE_STRING, DATATYPE_TIME;
70 
71  static const std::string TYPE_VALUE_YES;
72  static const std::string TYPE_VALUE_NO;
73  static const std::string TYPE_VALUE_TRUE;
74  static const std::string TYPE_VALUE_FALSE;
75  static const std::string TYPE_VALUE_ON;
76  static const std::string TYPE_VALUE_OFF;
77 
78  static const std::string DATATYPE_STRING_DEFAULT;
79  static const std::string DATATYPE_COMMENT_DEFAULT;
80  static const std::string DATATYPE_BOOL_DEFAULT;
81  static const std::string DATATYPE_NUMBER_DEFAULT;
82  static const std::string DATATYPE_TIME_DEFAULT;
83  static const std::string DATATYPE_LINK_DEFAULT;
84 
85  static const std::string COL_NAME_STATUS, COL_NAME_PRIORITY;
86 
87  private:
88  TableViewColumnInfo(); // private constructor, only used in assignment operator
89  void extractBitMapInfo();
90 
91  protected:
92  std::string type_;
93  std::string name_;
94  std::string storageName_;
95  std::string dataType_;
96  std::vector<std::string> dataChoices_;
97  BitMapInfo* bitMapInfoP_;
98 };
99 
100 } // namespace ots
101 
102 #endif