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