#include <CalibrationXML.h>
Public Types | |
typedef XERCES_CPP_NAMESPACE::DOMDocument | DOMDocument |
typedef XERCES_CPP_NAMESPACE::DOMElement | DOMElement |
typedef XERCES_CPP_NAMESPACE::DOMNode | DOMNode |
typedef XERCES_CPP_NAMESPACE::HandlerBase | HandlerBase |
typedef XERCES_CPP_NAMESPACE::XercesDOMParser | XercesDOMParser |
typedef XERCES_CPP_NAMESPACE::XMLPlatformUtils | XMLPlatformUtils |
typedef XERCES_CPP_NAMESPACE::XMLString | XMLString |
Public Member Functions | |
DOMElement * | calibrationDOM () |
CalibrationXML () | |
void | closeFile () |
void | openFile (const std::string &xmlFileName) |
void | saveFile (const std::string &xmlFileName) |
~CalibrationXML () | |
Static Public Member Functions | |
static DOMElement * | addChild (DOMNode *dom, const std::string &name) |
template<class T > | |
static T | readAttribute (DOMElement *dom, const std::string &name) |
template<class T > | |
static void | writeAttribute (DOMElement *dom, const std::string &name, const T &value) |
Private Attributes | |
DOMDocument * | doc |
HandlerBase * | errHandler |
DOMElement * | m_calibrationDOM |
std::string | m_xmlFileName |
XercesDOMParser * | parser |
Definition at line 12 of file CalibrationXML.h.
typedef XERCES_CPP_NAMESPACE::DOMDocument CalibrationXML::DOMDocument |
Definition at line 15 of file CalibrationXML.h.
typedef XERCES_CPP_NAMESPACE::DOMElement CalibrationXML::DOMElement |
Definition at line 16 of file CalibrationXML.h.
typedef XERCES_CPP_NAMESPACE::DOMNode CalibrationXML::DOMNode |
Definition at line 17 of file CalibrationXML.h.
typedef XERCES_CPP_NAMESPACE::HandlerBase CalibrationXML::HandlerBase |
Definition at line 18 of file CalibrationXML.h.
typedef XERCES_CPP_NAMESPACE::XercesDOMParser CalibrationXML::XercesDOMParser |
Definition at line 19 of file CalibrationXML.h.
typedef XERCES_CPP_NAMESPACE::XMLPlatformUtils CalibrationXML::XMLPlatformUtils |
Definition at line 20 of file CalibrationXML.h.
typedef XERCES_CPP_NAMESPACE::XMLString CalibrationXML::XMLString |
Definition at line 21 of file CalibrationXML.h.
XERCES_CPP_NAMESPACE_USE CalibrationXML::CalibrationXML | ( | ) |
Definition at line 22 of file CalibrationXML.cc.
: errHandler(0), parser(0) { }
CalibrationXML::~CalibrationXML | ( | ) |
Definition at line 27 of file CalibrationXML.cc.
References errHandler, and parser.
{ //TODO: delete!!!! if(errHandler) delete errHandler; if(parser) { delete parser; XMLPlatformUtils::Terminate(); } }
DOMElement * CalibrationXML::addChild | ( | DOMNode * | dom, |
const std::string & | name | ||
) | [static] |
Helper static function to add a child in a DOM Element with indentation
Definition at line 123 of file CalibrationXML.cc.
References tablePrinter::indent(), and testEve_cfg::level.
Referenced by CalibratedHistogramXML::write().
{ DOMNode *n1 = dom; int level=0; std::string indent="\n"; while(n1 && level < 100) { level++; indent+=" "; n1 = n1->getParentNode(); } if(dom->getFirstChild()==0) dom->appendChild(dom->getOwnerDocument()->createTextNode(XMLString::transcode(indent.c_str()))); DOMElement * child = (DOMElement *)dom->appendChild(dom->getOwnerDocument()->createElement(XMLString::transcode(name.c_str()))); dom->appendChild(dom->getOwnerDocument()->createTextNode(XMLString::transcode(indent.c_str()))); return child; }
DOMElement* CalibrationXML::calibrationDOM | ( | ) | [inline] |
Return the root DOM Element of the opened XML calibration file
Definition at line 47 of file CalibrationXML.h.
References m_calibrationDOM.
Referenced by AlgorithmCalibration< T, CO >::dom().
{ return m_calibrationDOM;}
void CalibrationXML::closeFile | ( | ) | [inline] |
Definition at line 37 of file CalibrationXML.h.
References errHandler, and parser.
Referenced by AlgorithmCalibration< T, CO >::AlgorithmCalibration().
{ if(errHandler) delete errHandler; if(parser) { delete parser; XMLPlatformUtils::Terminate(); } errHandler=0; parser=0; }
void CalibrationXML::openFile | ( | const std::string & | xmlFileName | ) |
Open an XML file
Definition at line 181 of file ErrorStreamSource.cc.
References ErrorStreamSource::fin_, recoMuon::in, pos, and prof2calltree::prefix.
Referenced by AlgorithmCalibration< T, CO >::dom().
static T CalibrationXML::readAttribute | ( | DOMElement * | dom, |
const std::string & | name | ||
) | [inline, static] |
Helper static function to read an attribute in a DOM Element
Definition at line 68 of file CalibrationXML.h.
References cmsPerfSuiteHarvest::release, and relativeConstraints::value.
{ XMLCh* nameStr = XMLString::transcode(name.c_str()); char * valueStr = XMLString::transcode(dom->getAttribute(nameStr)); std::istringstream buffer(valueStr); T value; buffer >> value; XMLString::release(&nameStr); XMLString::release(&valueStr); return value; }
void CalibrationXML::saveFile | ( | const std::string & | xmlFileName | ) |
Save DOM to file
Definition at line 113 of file CalibrationXML.cc.
References doc.
{ DOMImplementation * theImpl = DOMImplementationRegistry::getDOMImplementation(XMLString::transcode("Core")); DOMWriter * theSerializer = ((DOMImplementation*)theImpl)->createDOMWriter(); theSerializer->canSetFeature(XMLUni::fgDOMWRTFormatPrettyPrint, true); XMLFormatTarget* myFormTarget = new LocalFileFormatTarget(XMLString::transcode(xmlFileName.c_str())); theSerializer->writeNode(myFormTarget, *doc); delete myFormTarget; }
static void CalibrationXML::writeAttribute | ( | DOMElement * | dom, |
const std::string & | name, | ||
const T & | value | ||
) | [inline, static] |
Helper static function to write an attribute in a DOM Element
Definition at line 54 of file CalibrationXML.h.
References cmsPerfSuiteHarvest::release, and relativeConstraints::value.
Referenced by CalibratedHistogramXML::write().
{ std::ostringstream buffer; buffer << value; XMLCh * nameStr = XMLString::transcode(name.c_str()); XMLCh * valueStr = XMLString::transcode(buffer.str().c_str()); dom->setAttribute(nameStr, valueStr ); XMLString::release(&nameStr); XMLString::release(&valueStr); }
DOMDocument* CalibrationXML::doc [private] |
Definition at line 88 of file CalibrationXML.h.
Referenced by saveFile().
HandlerBase* CalibrationXML::errHandler [private] |
Definition at line 89 of file CalibrationXML.h.
Referenced by closeFile(), and ~CalibrationXML().
DOMElement* CalibrationXML::m_calibrationDOM [private] |
Definition at line 87 of file CalibrationXML.h.
Referenced by calibrationDOM().
std::string CalibrationXML::m_xmlFileName [private] |
Definition at line 86 of file CalibrationXML.h.
XercesDOMParser* CalibrationXML::parser [private] |
Definition at line 90 of file CalibrationXML.h.
Referenced by closeFile(), and ~CalibrationXML().