| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

XmlGenericCnv.h

Go to the documentation of this file.
00001 // $Id: XmlGenericCnv.h,v 1.8 2007/02/02 08:17:08 marcocle Exp $
00002 
00003 #ifndef DETDESCCNV_XMLGENERICCNV_H
00004 #define DETDESCCNV_XMLGENERICCNV_H
00005 
00006 // Include files
00007 #include "GaudiKernel/Converter.h"
00008 #include "GaudiKernel/IConversionSvc.h"
00009 
00010 #include "XmlTools/IXmlSvc.h"
00011 
00012 #include <string>
00013 
00014 #include <xercesc/dom/DOMElement.hpp>
00015 #include <xercesc/dom/DOMText.hpp>
00016 
00017 
00018 // Forward and external declarations
00019 class ISvcLocator;
00020 class IXmlSvc;
00021 class GenericAddress;
00022 template <class TYPE> class CnvFactory;
00023 
00024 
00035 class XmlGenericCnv : public Converter {
00036 
00037  public:
00038 
00043   virtual StatusCode initialize();
00044   
00049   virtual StatusCode finalize();
00050   
00057   virtual StatusCode createObj (IOpaqueAddress* addr,
00058                                 DataObject*& refpObject);
00065   virtual StatusCode updateObj (IOpaqueAddress* pAddress,
00066                                 DataObject* pObject);
00067   
00074   virtual StatusCode createRep (DataObject* pObject,
00075                                 IOpaqueAddress*& refpAddress);
00076   
00083   virtual StatusCode updateRep (IOpaqueAddress* pAddress,
00084                                 DataObject* pObject);
00085 
00091   IXmlSvc* xmlSvc() {
00092     if (!m_xmlSvc) m_xmlSvc = dynamic_cast<IXmlSvc*>(conversionSvc());
00093     return m_xmlSvc;
00094   }
00095 
00100   static long storageType() {
00101     return XML_StorageType;
00102   }
00103 
00108   virtual long repSvcType() const  {
00109     return XML_StorageType;
00110   }
00111 
00112 
00113 protected:
00114 
00120   XmlGenericCnv (ISvcLocator* svc,const CLID& clid);
00121 
00125   ~XmlGenericCnv();
00126   
00137   virtual StatusCode internalCreateObj (xercesc::DOMElement* element,
00138                                         DataObject*& refpObject,
00139                                         IOpaqueAddress* address);
00140   
00149   virtual StatusCode i_createObj (xercesc::DOMElement* element,
00150                                   DataObject*& refpObject);
00151 
00159   virtual StatusCode i_fillObj (xercesc::DOMElement* childElement,
00160                                 DataObject* pObject,
00161                                 IOpaqueAddress* address);
00162 
00170   virtual StatusCode i_fillObj (xercesc::DOMText* childText,
00171                                 DataObject* pObject,
00172                                 IOpaqueAddress* address);
00173 
00180   virtual StatusCode i_processObj (DataObject* pObject,
00181                                    IOpaqueAddress* address);
00182 
00195   IOpaqueAddress* createAddressForHref (std::string href,
00196                                         CLID clid,
00197                                         IOpaqueAddress* parent) const;
00198   
00206   IOpaqueAddress* createXmlAddress (std::string location,
00207                                     std::string entryName,
00208                                     CLID clid) const;
00209 
00218   IOpaqueAddress* createCondDBAddress (std::string path,
00219                                        std::string entryName,
00220                                        unsigned long channelId,
00221                                        CLID clid) const;
00222 
00228   static const std::string dom2Std (const XMLCh* domString);
00229 
00231   IXmlSvc* m_xmlSvc;
00232 
00233 private:
00234 
00235   // Constant strings for element and parameter names
00236   const XMLCh* DDDBString;
00237   const XMLCh* materialsString;
00238   const XMLCh* versionString;
00239   const XMLCh* DTD_VersionString;
00240   const XMLCh* macroString;
00241   const XMLCh* nameString;
00242   const XMLCh* valueString;
00243   const XMLCh* parameterString;
00244   const XMLCh* detelemString;
00245   const XMLCh* conditionString;
00246   const XMLCh* classIDString;
00247   
00249   bool m_have_CONDDB_StorageType;
00250 
00251 };
00252 
00253 #endif // DETDESCCNV_XMLGENERICCNV_H
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:00:54 2011 for DetDescCnv by doxygen 1.4.7