#include <CaloOnlineTools/HcalOnlineDb/interface/XMLProcessor.h>
Usage: <usage>
Definition at line 44 of file XMLProcessor.h.
typedef struct XMLProcessor::_DBConfig XMLProcessor::DBConfig |
typedef struct XMLProcessor::_LMapRowHBEF XMLProcessor::LMapRowHBEF |
typedef struct XMLProcessor::_LMapRowHO XMLProcessor::LMapRowHO |
typedef struct XMLProcessor::_loaderBaseConfig XMLProcessor::loaderBaseConfig |
XMLProcessor::~XMLProcessor | ( | ) | [virtual] |
Definition at line 51 of file XMLProcessor.cc.
References terminate().
00052 { 00053 // terminates Xerces 00054 terminate(); 00055 }
XMLProcessor::XMLProcessor | ( | ) | [private] |
Definition at line 45 of file XMLProcessor.cc.
References init().
Referenced by getInstance().
00046 { 00047 // initializes Xerces, must be done only once 00048 init(); 00049 }
XMLProcessor::XMLProcessor | ( | const XMLProcessor & | ) | [private] |
XMLCh * XMLProcessor::_toXMLCh | ( | time_t | temp | ) | [inline, static] |
Definition at line 206 of file XMLProcessor.h.
References GenMuonPlsPt100GeV_cfg::cout, lat::endl(), StDecayID::status, and transcode().
00207 { 00208 char buf[100]; 00209 int status = strftime( buf, 50, "%c", gmtime( &temp ) ); 00210 if ( status == 0 ) 00211 { 00212 cout << "XMLProcessor::_toXMLCh(int temp): buffer overflow, the string is indeterminate!" << endl; 00213 } 00214 XMLCh* buff = XMLString::transcode( buf ); 00215 return buff; 00216 }
XMLCh * XMLProcessor::_toXMLCh | ( | int | temp | ) | [inline, static] |
Definition at line 190 of file XMLProcessor.h.
References GenMuonPlsPt100GeV_cfg::cout, lat::endl(), StDecayID::status, and transcode().
00191 { 00192 char buf[100]; 00193 int status = snprintf( buf, 100, "%d", temp ); 00194 if ( status >= 100 ) 00195 { 00196 cout << "XMLProcessor::_toXMLCh(int temp): buffer overflow, the string will be truncated!" << endl; 00197 } 00198 else if ( status <0 ) 00199 { 00200 cout << "XMLProcessor::_toXMLCh(int temp): output error" << endl; 00201 } 00202 XMLCh* buff = XMLString::transcode( buf ); 00203 return buff; 00204 }
XMLCh * XMLProcessor::_toXMLCh | ( | std::string | temp | ) | [inline, static] |
Definition at line 184 of file XMLProcessor.h.
References transcode().
Referenced by LutXml::addData(), addLMapHBEFDataset(), LMapLoader::addLMapHBEFDataset(), addLMapHODataset(), LMapLoader::addLMapHODataset(), LutXml::addLut(), LutXml::addParameter(), XMLZeroSuppression::addPattern(), XMLHTRPatterns::addPattern(), XMLRBXPedestalsLoader::addRBXSlot(), LMapLoader::createLMapHBEFXMLBase(), createLMapHBEFXMLBase(), createLMapHOXMLBase(), XMLDOMBlock::getTagAttribute(), XMLDOMBlock::getTagValue(), XMLDOMBlock::init(), serializeDOM(), XMLDOMBlock::setTagAttribute(), XMLDOMBlock::setTagValue(), and test().
00185 { 00186 XMLCh* buff = XMLString::transcode(temp.c_str()); 00187 return buff; 00188 }
int XMLProcessor::addLMapHBEFDataset | ( | XMLDOMBlock * | doc, | |
LMapRowHBEF * | row, | |||
string | templateFileName | |||
) |
Definition at line 95 of file XMLProcessor.cc.
References _toXMLCh(), ecalMGPA::adc(), eta, phi, and pydbsAccessor::root.
00096 { 00097 DOMDocument * loader = doc -> getDocument(); 00098 DOMElement * root = loader -> getDocumentElement(); 00099 00100 XMLDOMBlock dataSetDoc( templateFileName ); 00101 DOMDocument * dataSet = dataSetDoc . getDocument(); 00102 00103 //Dataset 00104 dataSet -> getElementsByTagName( _toXMLCh( "SIDE" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> side ) ); 00105 dataSet -> getElementsByTagName( _toXMLCh( "ETA" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> eta) ); 00106 dataSet -> getElementsByTagName( _toXMLCh( "PHI" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> phi ) ); 00107 dataSet -> getElementsByTagName( _toXMLCh( "DELTA_PHI" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> dphi ) ); 00108 00109 dataSet -> getElementsByTagName( _toXMLCh( "DEPTH" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> depth ) ); 00110 dataSet -> getElementsByTagName( _toXMLCh( "SUBDETECTOR" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> det ) ); 00111 dataSet -> getElementsByTagName( _toXMLCh( "RBX_SLOT" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> rbx ) ); 00112 dataSet -> getElementsByTagName( _toXMLCh( "WEDGE" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> wedge ) ); 00113 00114 dataSet -> getElementsByTagName( _toXMLCh( "RM_SLOT" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> rm ) ); 00115 dataSet -> getElementsByTagName( _toXMLCh( "HPD_PIXEL" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> pixel ) ); 00116 dataSet -> getElementsByTagName( _toXMLCh( "QIE_SLOT" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> qie ) ); 00117 dataSet -> getElementsByTagName( _toXMLCh( "ADC" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> adc ) ); 00118 dataSet -> getElementsByTagName( _toXMLCh( "RM_FIBER" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> rm_fi ) ); 00119 00120 dataSet -> getElementsByTagName( _toXMLCh( "FIBER_CHANNEL" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> fi_ch)); 00121 dataSet -> getElementsByTagName( _toXMLCh( "CRATE" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> crate ) ); 00122 dataSet -> getElementsByTagName( _toXMLCh( "HTR_SLOT" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> htr ) ); 00123 dataSet -> getElementsByTagName( _toXMLCh( "HTR_FPGA" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> fpga ) ); 00124 00125 dataSet -> getElementsByTagName( _toXMLCh( "HTR_FIBER" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> htr_fi )); 00126 dataSet -> getElementsByTagName( _toXMLCh( "DCC_SL" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> dcc_sl ) ); 00127 dataSet -> getElementsByTagName( _toXMLCh( "SPIGOT" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> spigo ) ); 00128 dataSet -> getElementsByTagName( _toXMLCh( "DCC_SLOT" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> dcc ) ); 00129 dataSet -> getElementsByTagName( _toXMLCh( "SLB_SITE" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> slb ) ); 00130 dataSet -> getElementsByTagName( _toXMLCh( "SLB_CHANNEL" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> slbin )); 00131 dataSet -> getElementsByTagName( _toXMLCh( "SLB_CHANNEL2" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> slbin2)); 00132 00133 dataSet -> getElementsByTagName( _toXMLCh( "SLB_CABLE" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> slnam ) ); 00134 dataSet -> getElementsByTagName( _toXMLCh( "RCT_CRATE" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> rctcra ) ); 00135 dataSet -> getElementsByTagName( _toXMLCh( "RCT_CARD" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> rctcar ) ); 00136 dataSet -> getElementsByTagName( _toXMLCh( "RCT_CONNECTOR" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row ->rctcon)); 00137 dataSet -> getElementsByTagName( _toXMLCh( "RCT_NAME" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> rctnam ) ); 00138 dataSet -> getElementsByTagName( _toXMLCh( "FED_ID" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> fedid ) ); 00139 00140 00141 // copy the <data_set> node into the final XML 00142 DOMNode * cloneDataSet = loader -> importNode( dataSet -> getDocumentElement(), true ); 00143 root -> appendChild( cloneDataSet ); 00144 00145 return 0; 00146 }
int XMLProcessor::addLMapHODataset | ( | XMLDOMBlock * | doc, | |
LMapRowHO * | row, | |||
string | templateFileName | |||
) |
Definition at line 161 of file XMLProcessor.cc.
References _toXMLCh(), and pydbsAccessor::root.
00162 { 00163 DOMDocument * loader = doc -> getDocument(); 00164 DOMElement * root = loader -> getDocumentElement(); 00165 00166 XMLDOMBlock dataSetDoc( templateFileName ); 00167 DOMDocument * dataSet = dataSetDoc . getDocument(); 00168 00169 //Dataset 00170 dataSet -> getElementsByTagName( _toXMLCh( "SIDE" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> sideO ) ); 00171 dataSet -> getElementsByTagName( _toXMLCh( "ETA" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> etaO ) ); 00172 dataSet -> getElementsByTagName( _toXMLCh( "PHI" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> phiO ) ); 00173 dataSet -> getElementsByTagName( _toXMLCh( "DELTA_PHI" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> dphiO ) ); 00174 00175 dataSet -> getElementsByTagName( _toXMLCh( "DEPTH" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> depthO ) ); 00176 dataSet -> getElementsByTagName( _toXMLCh( "SUBDETECTOR" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> detO ) ); 00177 dataSet -> getElementsByTagName( _toXMLCh( "RBX_SLOT" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> rbxO ) ); 00178 dataSet -> getElementsByTagName( _toXMLCh( "SECTOR" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> sectorO ) ); 00179 00180 dataSet -> getElementsByTagName( _toXMLCh( "RM_SLOT" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> rmO ) ); 00181 dataSet -> getElementsByTagName( _toXMLCh( "HPD_PIXEL" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> pixelO ) ); 00182 dataSet -> getElementsByTagName( _toXMLCh( "QIE_SLOT" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> qieO ) ); 00183 dataSet -> getElementsByTagName( _toXMLCh( "ADC" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> adcO ) ); 00184 dataSet -> getElementsByTagName( _toXMLCh( "RM_FIBER" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> rm_fiO ) ); 00185 dataSet -> getElementsByTagName( _toXMLCh( "FIBER_CHANNEL" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row ->fi_chO)); 00186 00187 dataSet -> getElementsByTagName( _toXMLCh( "LETTER_CODE" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh(row ->let_codeO)); 00188 dataSet -> getElementsByTagName( _toXMLCh( "CRATE" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> crateO ) ); 00189 dataSet -> getElementsByTagName( _toXMLCh( "HTR_SLOT" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> htrO ) ); 00190 dataSet -> getElementsByTagName( _toXMLCh( "HTR_FPGA" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> fpgaO ) ); 00191 00192 dataSet -> getElementsByTagName( _toXMLCh( "HTR_FIBER" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> htr_fiO ) ); 00193 dataSet -> getElementsByTagName( _toXMLCh( "DCC_SL" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> dcc_slO ) ); 00194 dataSet -> getElementsByTagName( _toXMLCh( "SPIGOT" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> spigoO ) ); 00195 dataSet -> getElementsByTagName( _toXMLCh( "DCC_SLOT" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> dccO ) ); 00196 dataSet -> getElementsByTagName( _toXMLCh( "FED_ID" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( row -> fedidO ) ); 00197 00198 00199 // copy the <data_set> node into the final XML 00200 DOMNode * cloneDataSet = loader -> importNode( dataSet -> getDocumentElement(), true ); 00201 root -> appendChild( cloneDataSet ); 00202 00203 return 0; 00204 }
XMLDOMBlock * XMLProcessor::createLMapHBEFXMLBase | ( | string | templateFileName | ) |
Definition at line 82 of file XMLProcessor.cc.
References _toXMLCh(), and HLT_VtxMuL3::result.
00083 { 00084 XMLDOMBlock * result = new XMLDOMBlock( templateFileName ); 00085 DOMDocument * loader = result -> getDocument(); 00086 //DOMElement * root = loader -> getDocumentElement(); 00087 00088 loader -> getElementsByTagName( _toXMLCh( "NAME" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( "HCAL LMAP for HB, HE, HF" ) ); 00089 //DOMElement * _tag = (DOMElement *)(loader -> getElementsByTagName( _toXMLCh( "TAG" ) ) -> item(0)); 00090 //_tag -> setAttribute( _toXMLCh("mode"), _toXMLCh("test_mode") ); 00091 00092 return result; 00093 }
XMLDOMBlock * XMLProcessor::createLMapHOXMLBase | ( | string | templateFileName | ) |
Definition at line 148 of file XMLProcessor.cc.
References _toXMLCh(), and HLT_VtxMuL3::result.
00149 { 00150 XMLDOMBlock * result = new XMLDOMBlock( templateFileName ); 00151 DOMDocument * loader = result -> getDocument(); 00152 //DOMElement * root = loader -> getDocumentElement(); 00153 00154 loader -> getElementsByTagName( _toXMLCh( "NAME" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( "HCAL LMAP for HO" ) ); 00155 //DOMElement * _tag = (DOMElement *)(loader -> getElementsByTagName( _toXMLCh( "TAG" ) ) -> item(0)); 00156 //_tag -> setAttribute( _toXMLCh("mode"), _toXMLCh("test_mode") ); 00157 00158 return result; 00159 }
static XMLProcessor* XMLProcessor::getInstance | ( | ) | [inline, static] |
Definition at line 147 of file XMLProcessor.h.
References instance, and XMLProcessor().
Referenced by XMLDOMBlock::getNewDocument(), HCALConfigDB::getOnlineLUT(), XMLDOMBlock::init(), and XMLDOMBlock::XMLDOMBlock().
00148 { 00149 if (!instance) instance = new XMLProcessor(); 00150 return instance; 00151 }
Definition at line 299 of file XMLProcessor.cc.
References GenMuonPlsPt100GeV_cfg::cout, and lat::endl().
Referenced by XMLProcessor().
00300 { 00301 cout << "Intializing Xerces..."; 00302 try { 00303 XMLPlatformUtils::Initialize(); 00304 } 00305 catch (const XMLException& toCatch) { 00306 cout << " FAILED! Exiting..." << endl; 00307 return 1; 00308 } 00309 cout << " done" << endl; 00310 00311 return 0; 00312 }
XMLCh * XMLProcessor::serializeDOM | ( | DOMNode * | node, | |
string | target = "stdout" | |||
) |
Definition at line 239 of file XMLProcessor.cc.
References _toXMLCh(), GenMuonPlsPt100GeV_cfg::cout, NULL, release(), and transcode().
Referenced by XMLDOMBlock::getString(), test(), and write().
00240 { 00241 XMLCh tempStr[100]; 00242 XMLString::transcode("LS", tempStr, 99); 00243 DOMImplementation *impl = DOMImplementationRegistry::getDOMImplementation(tempStr); 00244 DOMWriter* theSerializer = ((DOMImplementationLS*)impl)->createDOMWriter(); 00245 00246 if (theSerializer->canSetFeature(XMLUni::fgDOMWRTDiscardDefaultContent, true)) 00247 theSerializer->setFeature(XMLUni::fgDOMWRTDiscardDefaultContent, true); 00248 00249 if (theSerializer->canSetFeature(XMLUni::fgDOMWRTFormatPrettyPrint, true)) 00250 theSerializer->setFeature(XMLUni::fgDOMWRTFormatPrettyPrint, true); 00251 00252 XMLFormatTarget * myFormTarget = 0; 00253 XMLCh * _string = 0; 00254 if ( target == "stdout" || target == "string" ) 00255 { 00256 myFormTarget = new StdOutFormatTarget(); 00257 } 00258 //else if ( target == "memory" ) 00259 // { 00260 // myFormTarget = new MemBufFormatTarget(); 00261 // } 00262 else 00263 { 00264 myFormTarget = new LocalFileFormatTarget( _toXMLCh( target ) ); 00265 } 00266 00267 try { 00268 if ( target == "string" ){ 00269 _string = theSerializer->writeToString( *node ); 00270 } 00271 else{ 00272 theSerializer->writeNode(myFormTarget, *node); 00273 } 00274 } 00275 catch (const XMLException& toCatch) { 00276 char* message = XMLString::transcode(toCatch.getMessage()); 00277 cout << "Exception message is: \n" 00278 << message << "\n"; 00279 XMLString::release(&message); 00280 return 0; 00281 } 00282 catch (const DOMException& toCatch) { 00283 char* message = XMLString::transcode(toCatch.msg); 00284 cout << "Exception message is: \n" 00285 << message << "\n"; 00286 XMLString::release(&message); 00287 return NULL; 00288 } 00289 catch (...) { 00290 cout << "Unexpected Exception \n" ; 00291 return NULL; 00292 } 00293 00294 theSerializer->release(); 00295 if ( myFormTarget ) delete myFormTarget; 00296 return _string; 00297 }
Definition at line 314 of file XMLProcessor.cc.
References GenMuonPlsPt100GeV_cfg::cout, and lat::endl().
Referenced by ~XMLProcessor().
00315 { 00316 cout << "Terminating Xerces..."; 00317 XMLPlatformUtils::Terminate(); 00318 cout << " done" << endl; 00319 00320 // Other terminations and cleanup. 00321 00322 return 0; 00323 }
Definition at line 218 of file XMLProcessor.cc.
References _toXMLCh(), GenMuonPlsPt100GeV_cfg::cout, lat::endl(), serializeDOM(), and transcode().
00219 { 00220 //if ( init() != 0 ) return 1; 00221 00222 XMLDOMBlock dataBlock( "HCAL_TRIG_PRIM_LOOKUP_TABLE.datablock.template" ); 00223 00224 DOMDocument * dataBlockDocument = dataBlock . getDocument(); 00225 00226 cout << "===> Tag length: " << dataBlockDocument -> getElementsByTagName( _toXMLCh( "CREATED_BY_USER" ) ) -> getLength() << endl; 00227 cout << "===> Tag name: " << XMLString::transcode( dataBlockDocument -> getElementsByTagName( _toXMLCh( "CREATED_BY_USER" ) ) -> item(0) -> getNodeName() ) << endl; 00228 dataBlockDocument -> getElementsByTagName( _toXMLCh( "CREATED_BY_USER" ) ) -> item(0) -> getFirstChild() -> setNodeValue( _toXMLCh( "kukarzev test" ) ); 00229 00230 XMLCh * _t; 00231 _t = serializeDOM( dataBlockDocument ); 00232 delete _t; 00233 00234 //terminate(); 00235 00236 return 0; 00237 }
int XMLProcessor::write | ( | XMLDOMBlock * | doc, | |
string | target = "stdout" | |||
) |
Definition at line 206 of file XMLProcessor.cc.
References serializeDOM().
00207 { 00208 DOMDocument * loader = doc -> getDocument(); 00209 //DOMElement * root = loader -> getDocumentElement(); 00210 00211 XMLCh * _t; 00212 _t = serializeDOM( loader, target ); 00213 delete _t; 00214 00215 return 0; 00216 }
XMLProcessor * XMLProcessor::instance = NULL [static, private] |