8 #include "otsdaq-core/ConfigurationDataFormats/RegisterSequencerInfoReader.h"
9 #include "otsdaq-core/XmlUtilities/ConvertFromXML.h"
10 #include "otsdaq-core/MessageFacility/MessageFacility.h"
11 #include "otsdaq-core/Macros/CoutHeaderMacros.h"
13 #include <xercesc/dom/DOMElement.hpp>
14 #include <xercesc/dom/DOMNodeList.hpp>
20 RegisterSequencerInfoReader::RegisterSequencerInfoReader() {
23 xercesc::XMLString::release( &rootTag_ );
24 xercesc::XMLString::release( &headerTag_ );
25 xercesc::XMLString::release( &typeTag_ );
26 xercesc::XMLString::release( &extensionTableNameTag_ );
27 xercesc::XMLString::release( &nameTag_ );
28 xercesc::XMLString::release( &dataSetTag_ );
29 xercesc::XMLString::release( &versionTag_ );
30 xercesc::XMLString::release( &commentDescriptionTag_ );
31 xercesc::XMLString::release( &createdByUserTag_ );
32 xercesc::XMLString::release( &componentNameTag_ );
33 xercesc::XMLString::release( ®isterNameTag_ );
34 xercesc::XMLString::release( ®isterValueTag_ );
35 xercesc::XMLString::release( &sequenceNumberTag_ );
36 xercesc::XMLString::release( &stateTag_ );
40 mf::LogError(__FILE__) <<
"Unknown exception encountered in TagNames destructor" <<
" ";
45 RegisterSequencerInfoReader::~RegisterSequencerInfoReader() {
50 void RegisterSequencerInfoReader::initPlatform(
void)
54 xercesc::XMLPlatformUtils::Initialize();
56 catch( xercesc::XMLException& e )
58 mf::LogError(__FILE__) <<
"XML toolkit initialization error: " << XML_TO_CHAR(e.getMessage()) <<
" ";
64 void RegisterSequencerInfoReader::terminatePlatform(
void)
68 xercesc::XMLPlatformUtils::Terminate();
70 catch( xercesc::XMLException& e )
72 mf::LogError(__FILE__) <<
"XML toolkit teardown error: " << XML_TO_CHAR(e.getMessage()) <<
" ";
77 xercesc::DOMNode* RegisterSequencerInfoReader::getNode(XMLCh* tagName, xercesc::DOMNode* parent,
unsigned int itemNumber)
79 return getNode(tagName, dynamic_cast< xercesc::DOMElement* >(parent), itemNumber);
83 xercesc::DOMNode* RegisterSequencerInfoReader::getNode(XMLCh* tagName, xercesc::DOMElement* parent,
unsigned int itemNumber)
85 xercesc::DOMNodeList* nodeList = parent->getElementsByTagName(tagName);
88 throw(std::runtime_error( std::string(
"Can't find ") + XML_TO_CHAR(tagName) +
" tag!"));
89 std::cout << __COUT_HDR_FL__ << (std::string(
"Can't find ") + XML_TO_CHAR(tagName) +
" tag!") << std::endl;
94 return nodeList->item(itemNumber);
98 xercesc::DOMElement* RegisterSequencerInfoReader::getElement(XMLCh* tagName, xercesc::DOMNode* parent,
unsigned int itemNumber)
100 return dynamic_cast< xercesc::DOMElement*
>(getNode(tagName,parent,itemNumber));
104 xercesc::DOMElement* RegisterSequencerInfoReader::getElement(XMLCh* tagName, xercesc::DOMElement* parent,
unsigned int itemNumber)
106 return dynamic_cast< xercesc::DOMElement*
>(getNode(tagName,parent,itemNumber));
110 void RegisterSequencerInfoReader::read(
RegisterBase& configuration)
205 void RegisterSequencerInfoReader::read(
RegisterBase* configuration)
207 read(*configuration);