tdaq-develop-2025-02-12
ConfigurationHandler.h
1 #ifndef _ots_ConfigurationHandler_h_
2 #define _ots_ConfigurationHandler_h_
3 
4 #include <string>
5 #include <xercesc/dom/DOMDocument.hpp>
6 #include <xercesc/util/XMLChar.hpp>
7 
8 #include "otsdaq/TableCore/TableVersion.h"
9 
10 namespace ots
11 {
12 class TableBase;
13 
15 {
16  public:
18  virtual ~ConfigurationHandler(void);
19  virtual void read(TableBase& /*configuration*/) { ; }
20  virtual void write(const TableBase& /*configuration*/) { ; }
21 
22  static void readXML(TableBase& configuration, TableVersion version);
23  static void readXML(TableBase* configuration, TableVersion version);
24  static std::string writeXML(const TableBase& configuration);
25  static std::string writeXML(const TableBase* configuration);
26 
29  static std::string getXMLDir(const TableBase* configuration);
30 
31  private:
32  static void initPlatform(void);
33  static void terminatePlatform(void);
34  static bool validateNode(XMLCh* tagName,
35  xercesc::DOMNode* node,
36  const std::string& expectedValue);
37  static void outputXML(xercesc::DOMDocument* pmyDOMDocument, std::string filePath);
38  static std::string getXMLFileName(const TableBase& configuration,
39  TableVersion version);
40 
41  static xercesc::DOMNode* getNode(XMLCh* tagName,
42  xercesc::DOMNode* parent,
43  unsigned int itemNumber);
44  static xercesc::DOMNode* getNode(XMLCh* tagName,
45  xercesc::DOMElement* parent,
46  unsigned int itemNumber);
47  static xercesc::DOMElement* getElement(XMLCh* tagName,
48  xercesc::DOMNode* parent,
49  unsigned int itemNumber);
50  static xercesc::DOMElement* getElement(XMLCh* tagName,
51  xercesc::DOMElement* parent,
52  unsigned int itemNumber);
53  static XMLCh* rootTag_;
54  static XMLCh* headerTag_;
55  static XMLCh* typeTag_;
56  static XMLCh* extensionTableNameTag_;
57  static XMLCh* nameTag_;
58  static XMLCh* runTag_;
59  static XMLCh* runTypeTag_;
60  static XMLCh* runNumberTag_;
61  static XMLCh* runBeginTimestampTag_;
62  static XMLCh* locationTag_;
63  static XMLCh* datasetTag_;
64  static XMLCh* versionTag_;
65  static XMLCh* commentDescriptionTag_;
66  static XMLCh* createdByUserTag_;
67  static XMLCh* partTag_;
68  static XMLCh* nameLabelTag_;
69  static XMLCh* kindOfPartTag_;
70  static XMLCh* dataTag_;
71 };
72 
73 } // namespace ots
74 
75 #endif // ots_ConfigurationHandler_h
static std::string writeXML(const TableBase &configuration)
returns the file name
static std::string getXMLDir(const TableBase *configuration)