otsdaq  3.03.00
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(
25  const TableBase& configuration);
26  static std::string writeXML(
27  const TableBase* configuration);
28 
31  static std::string getXMLDir(const TableBase* configuration);
32 
33  private:
34  static void initPlatform(void);
35  static void terminatePlatform(void);
36  static bool validateNode(XMLCh* tagName,
37  xercesc::DOMNode* node,
38  const std::string& expectedValue);
39  static void outputXML(xercesc::DOMDocument* pmyDOMDocument, std::string filePath);
40  static std::string getXMLFileName(const TableBase& configuration,
41  TableVersion version);
42 
43  static xercesc::DOMNode* getNode(XMLCh* tagName,
44  xercesc::DOMNode* parent,
45  unsigned int itemNumber);
46  static xercesc::DOMNode* getNode(XMLCh* tagName,
47  xercesc::DOMElement* parent,
48  unsigned int itemNumber);
49  static xercesc::DOMElement* getElement(XMLCh* tagName,
50  xercesc::DOMNode* parent,
51  unsigned int itemNumber);
52  static xercesc::DOMElement* getElement(XMLCh* tagName,
53  xercesc::DOMElement* parent,
54  unsigned int itemNumber);
55  static XMLCh* rootTag_;
56  static XMLCh* headerTag_;
57  static XMLCh* typeTag_;
58  static XMLCh* extensionTableNameTag_;
59  static XMLCh* nameTag_;
60  static XMLCh* runTag_;
61  static XMLCh* runTypeTag_;
62  static XMLCh* runNumberTag_;
63  static XMLCh* runBeginTimestampTag_;
64  static XMLCh* locationTag_;
65  static XMLCh* datasetTag_;
66  static XMLCh* versionTag_;
67  static XMLCh* commentDescriptionTag_;
68  static XMLCh* createdByUserTag_;
69  static XMLCh* partTag_;
70  static XMLCh* nameLabelTag_;
71  static XMLCh* kindOfPartTag_;
72  static XMLCh* dataTag_;
73 };
74 
75 } // namespace ots
76 
77 #endif // ots_ConfigurationHandler_h
static std::string writeXML(const TableBase &configuration)
returns the file name
static std::string getXMLDir(const TableBase *configuration)