8 #include "otsdaq-core/ConfigurationDataFormats/RegisterSequencerInfoReader.h"
9 #include "otsdaq-core/Macros/CoutHeaderMacros.h"
10 #include "otsdaq-core/MessageFacility/MessageFacility.h"
11 #include "otsdaq-core/XmlUtilities/ConvertFromXML.h"
15 #include <xercesc/dom/DOMElement.hpp>
16 #include <xercesc/dom/DOMNodeList.hpp>
20 RegisterSequencerInfoReader::RegisterSequencerInfoReader()
24 xercesc::XMLString::release(&rootTag_);
25 xercesc::XMLString::release(&headerTag_);
26 xercesc::XMLString::release(&typeTag_);
27 xercesc::XMLString::release(&extensionTableNameTag_);
28 xercesc::XMLString::release(&nameTag_);
29 xercesc::XMLString::release(&dataSetTag_);
30 xercesc::XMLString::release(&versionTag_);
31 xercesc::XMLString::release(&commentDescriptionTag_);
32 xercesc::XMLString::release(&createdByUserTag_);
33 xercesc::XMLString::release(&componentNameTag_);
34 xercesc::XMLString::release(®isterNameTag_);
35 xercesc::XMLString::release(®isterValueTag_);
36 xercesc::XMLString::release(&sequenceNumberTag_);
37 xercesc::XMLString::release(&stateTag_);
41 TLOG(TLVL_ERROR, __FILE__)
42 <<
"Unknown exception encountered in TagNames destructor"
47 RegisterSequencerInfoReader::~RegisterSequencerInfoReader()
53 void RegisterSequencerInfoReader::initPlatform(
void)
57 xercesc::XMLPlatformUtils::Initialize();
59 catch(xercesc::XMLException& e)
61 TLOG(TLVL_ERROR, __FILE__)
62 <<
"XML toolkit initialization error: " << XML_TO_CHAR(e.getMessage())
69 void RegisterSequencerInfoReader::terminatePlatform(
void)
73 xercesc::XMLPlatformUtils::Terminate();
75 catch(xercesc::XMLException& e)
77 TLOG(TLVL_ERROR, __FILE__)
78 <<
"XML toolkit teardown error: " << XML_TO_CHAR(e.getMessage()) <<
" ";
83 xercesc::DOMNode* RegisterSequencerInfoReader::getNode(XMLCh* tagName,
84 xercesc::DOMNode* parent,
85 unsigned int itemNumber)
87 return getNode(tagName, dynamic_cast<xercesc::DOMElement*>(parent), itemNumber);
91 xercesc::DOMNode* RegisterSequencerInfoReader::getNode(XMLCh* tagName,
92 xercesc::DOMElement* parent,
93 unsigned int itemNumber)
95 xercesc::DOMNodeList* nodeList = parent->getElementsByTagName(tagName);
98 throw(std::runtime_error(std::string(
"Can't find ") + XML_TO_CHAR(tagName) +
100 std::cout << __COUT_HDR_FL__
101 << (std::string(
"Can't find ") + XML_TO_CHAR(tagName) +
" tag!")
110 return nodeList->item(itemNumber);
114 xercesc::DOMElement* RegisterSequencerInfoReader::getElement(XMLCh* tagName,
115 xercesc::DOMNode* parent,
116 unsigned int itemNumber)
118 return dynamic_cast<xercesc::DOMElement*
>(getNode(tagName, parent, itemNumber));
122 xercesc::DOMElement* RegisterSequencerInfoReader::getElement(XMLCh* tagName,
123 xercesc::DOMElement* parent,
124 unsigned int itemNumber)
126 return dynamic_cast<xercesc::DOMElement*
>(getNode(tagName, parent, itemNumber));
130 void RegisterSequencerInfoReader::read(
RegisterBase& configuration)
236 void RegisterSequencerInfoReader::read(
RegisterBase* configuration)
238 read(*configuration);