Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-07-05 09:12:53

0001 //==========================================================================
0002 //  AIDA Detector description implementation 
0003 //--------------------------------------------------------------------------
0004 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
0005 // All rights reserved.
0006 //
0007 // For the licensing terms see $DD4hepINSTALL/LICENSE.
0008 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
0009 //
0010 // Author     : M.Frank
0011 //
0012 //==========================================================================
0013 //
0014 // Setup XML parsing for the use of Apache Xerces-C and TiXml
0015 //
0016 //==========================================================================
0017 #ifndef XML_CONFIG_H
0018 #define XML_CONFIG_H
0019 
0020 #include <Parsers/config.h>
0021 
0022 #if      defined(DD4HEP_USE_TINYXML)
0023 #define  __TIXML__
0024 #endif
0025 
0026 // C/C++ include files
0027 #include <cstdlib>
0028 
0029 #ifndef  __TIXML__
0030 // This is the absolute minimal include necessary to comply with XercesC
0031 // Not includuing this file leads to clashes in XmlChar aka XMLCh in XercesC.
0032 //
0033 // We do not load here many dependencies. This simply sets up primitive types.
0034 #include <xercesc/util/Xerces_autoconf_config.hpp>
0035 #endif
0036 
0037 /// Namespace for the AIDA detector description toolkit
0038 namespace dd4hep {
0039 
0040   /// Namespace for the AIDA detector description toolkit supporting XML utilities
0041   namespace xml {
0042     class XmlElement;
0043     class XmlDocument;
0044     class XmlNodeList;
0045     class XmlNode;
0046     class XmlAttr;
0047     typedef std::size_t XmlSize_t;
0048 #ifdef  __TIXML__
0049     typedef char XmlChar;
0050 #else
0051     /// Use the definition from the autoconf header of Xerces:
0052     typedef XERCES_XMLCH_T XmlChar;
0053     // These only work for very specific XercesC implementations:
0054     //typedef char16_t       XmlChar;
0055     //typedef unsigned short XmlChar;
0056 #endif
0057   }
0058 }
0059 
0060 #ifdef  __TIXML__
0061 #define XML_IMPLEMENTATION_TYPE " TinyXML DOM mini-parser   "
0062 #else   // Xerces-C
0063 #define XML_IMPLEMENTATION_TYPE " Apache Xerces-C DOM Parser"
0064 #endif  // __TIXML__
0065 #endif // XML_CONFIG_H