tdaq-develop-2025-02-12
TableInfoReader.h
1 #ifndef _ots_TableInfoReader_h_
2 #define _ots_TableInfoReader_h_
3 
4 #include <string>
5 #include <xercesc/dom/DOMDocument.hpp>
6 #include <xercesc/util/XMLChar.hpp>
7 
8 namespace ots
9 {
10 class TableBase;
11 
13 {
14  public:
15  TableInfoReader(bool allowIllegalColumns = false);
16  ~TableInfoReader(void);
17  std::string read(TableBase& table);
18  std::string read(TableBase* table);
19 
20  void setAllowColumnErrors(bool setValue);
21  const bool& getAllowColumnErrors(void);
22 
23  private:
24  void initPlatform(void);
25  void terminatePlatform(void);
26  bool checkViewType(std::string type);
27 
28  xercesc::DOMNode* getNode(XMLCh* tagName,
29  xercesc::DOMNode* parent,
30  unsigned int itemNumber);
31  xercesc::DOMNode* getNode(XMLCh* tagName,
32  xercesc::DOMElement* parent,
33  unsigned int itemNumber);
34  xercesc::DOMElement* getElement(XMLCh* tagName,
35  xercesc::DOMNode* parent,
36  unsigned int itemNumber);
37  xercesc::DOMElement* getElement(XMLCh* tagName,
38  xercesc::DOMElement* parent,
39  unsigned int itemNumber);
40 
41  XMLCh* rootTag_;
42  XMLCh* tableTag_;
43  XMLCh* tableNameAttributeTag_;
44  XMLCh* viewTag_;
45  XMLCh* viewNameAttributeTag_;
46  XMLCh* viewTypeAttributeTag_;
47  XMLCh* viewDescriptionAttributeTag_;
48  XMLCh* columnTag_;
49  XMLCh* columnTypeAttributeTag_;
50  XMLCh* columnNameAttributeTag_;
51  XMLCh* columnStorageNameAttributeTag_;
52  XMLCh* columnDataTypeAttributeTag_;
53  XMLCh* columnDataChoicesAttributeTag_;
54  XMLCh* columnDefaultValueAttributeTag_;
55  XMLCh* columnMinValueAttributeTag_;
56  XMLCh* columnMaxValueAttributeTag_;
57 
60  bool allowIllegalColumns_;
61 
62  // static const std::string CONFIGURATION_BACKEND_TYPE_;
63 };
64 
65 } // namespace ots
66 
67 #endif