XercesDefs.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: XercesDefs.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_XERCESDEFS_HPP)
00023 #define XERCESC_INCLUDE_GUARD_XERCESDEFS_HPP
00024 
00025 // ---------------------------------------------------------------------------
00026 //  The file xerces_hdr_config defines critical configuration information
00027 //  used by the remainder of this file.
00028 //
00029 //  There are two major configuration files:
00030 //      - xerces_autoconf_config.hpp-- Contains defines that are safe for
00031 //                                     access through public headers.
00032 //
00033 //      - config.h                  -- Contains defines that may conflict
00034 //                                     with other packages; should only be
00035 //                                     included by Xerces implementation files.
00036 //
00037 //  Both of these files are generated through the autoconf/configure process.
00038 // ---------------------------------------------------------------------------
00039 
00040 //
00041 // If this is an autoconf configured build, we include Xerces_autoconf_config.hpp
00042 // Otherwise we include a preconfigured config appropriate for the particular
00043 // platform that the specific makefile should copy over.
00044 //
00045 //  If the next line generates an error then you haven't run ./configure
00046 #include    <xercesc/util/Xerces_autoconf_config.hpp>
00047 
00048 // ---------------------------------------------------------------------------
00049 //  Include the Xerces version information; this is kept in a separate file to
00050 //  make modification simple and obvious. Updates to the version header file
00051 // ---------------------------------------------------------------------------
00052 #include    <xercesc/util/XercesVersion.hpp>
00053 
00054 
00055 // ---------------------------------------------------------------------------
00056 //  Some general typedefs that are defined for internal flexibility.
00057 //
00058 //  Note  that UTF16Ch is fixed at 16 bits, whereas XMLCh floats in size per
00059 //  platform, to whatever is the native wide char format there. UCS4Ch is
00060 //  fixed at 32 bits. The types we defined them in terms of are defined per
00061 //  compiler, using whatever types are the right ones for them to get these
00062 //  16/32 bit sizes.
00063 //
00064 // ---------------------------------------------------------------------------
00065 typedef unsigned char       XMLByte;
00066 typedef XMLUInt16           UTF16Ch;
00067 typedef XMLUInt32           UCS4Ch;
00068 
00069 
00070 // ---------------------------------------------------------------------------
00071 //  Handle boolean. If the platform can handle booleans itself, then we
00072 //  map our boolean type to the native type. Otherwise we create a default
00073 //  one as an int and define const values for true and false.
00074 //
00075 //  This flag will be set in the per-development environment stuff above.
00076 // ---------------------------------------------------------------------------
00077 #if defined(XERCES_NO_NATIVE_BOOL)
00078   #ifndef bool
00079     typedef int     bool;
00080   #endif
00081   #ifndef true
00082     #define  true     1
00083   #endif
00084   #ifndef false
00085     #define false 0
00086   #endif
00087 #endif
00088 
00089 // ---------------------------------------------------------------------------
00090 //  According to whether the compiler suports L"" type strings, we define
00091 //  the XMLStrL() macro one way or another.
00092 // ---------------------------------------------------------------------------
00093 #if defined(XERCES_LSTRSUPPORT)
00094 #define XMLStrL(str)  L##str
00095 #else
00096 #define XMLStrL(str)  str
00097 #endif
00098 
00099 
00100 // ---------------------------------------------------------------------------
00101 // Define namespace symbols if the compiler supports it.
00102 // ---------------------------------------------------------------------------
00103 #if defined(XERCES_HAS_CPP_NAMESPACE)
00104     #define XERCES_CPP_NAMESPACE_BEGIN namespace XERCES_CPP_NAMESPACE {
00105     #define XERCES_CPP_NAMESPACE_END  }
00106     #define XERCES_CPP_NAMESPACE_USE using namespace XERCES_CPP_NAMESPACE;
00107     #define XERCES_CPP_NAMESPACE_QUALIFIER XERCES_CPP_NAMESPACE::
00108 
00109     namespace XERCES_CPP_NAMESPACE { }
00110     namespace xercesc = XERCES_CPP_NAMESPACE;
00111 #else
00112     #define XERCES_CPP_NAMESPACE_BEGIN
00113     #define XERCES_CPP_NAMESPACE_END
00114     #define XERCES_CPP_NAMESPACE_USE
00115     #define XERCES_CPP_NAMESPACE_QUALIFIER
00116 #endif
00117 
00118 #if defined(XERCES_STD_NAMESPACE)
00119     #define XERCES_USING_STD(NAME) using std :: NAME;
00120     #define XERCES_STD_QUALIFIER  std ::
00121 #else
00122     #define XERCES_USING_STD(NAME)
00123     #define XERCES_STD_QUALIFIER 
00124 #endif
00125 
00126 
00127 // ---------------------------------------------------------------------------
00128 //  Set up the import/export keyword  for our core projects. The
00129 //  PLATFORM_XXXX keywords are set in the per-development environment
00130 //  include above.
00131 // ---------------------------------------------------------------------------
00132 
00133 // The DLL_EXPORT flag should be defined on the command line during the build of a DLL
00134 // configure conspires to make this happen.
00135 
00136 #if defined(DLL_EXPORT)
00137   #if defined(XERCES_BUILDING_LIBRARY)
00138     #define XMLUTIL_EXPORT XERCES_PLATFORM_EXPORT
00139     #define XMLPARSER_EXPORT XERCES_PLATFORM_EXPORT
00140     #define SAX_EXPORT XERCES_PLATFORM_EXPORT
00141     #define SAX2_EXPORT XERCES_PLATFORM_EXPORT
00142     #define CDOM_EXPORT XERCES_PLATFORM_EXPORT
00143     #define PARSERS_EXPORT  XERCES_PLATFORM_EXPORT
00144     #define VALIDATORS_EXPORT  XERCES_PLATFORM_EXPORT
00145     #define XINCLUDE_EXPORT  XERCES_PLATFORM_EXPORT
00146   #else
00147     #define XMLUTIL_EXPORT XERCES_PLATFORM_IMPORT
00148     #define XMLPARSER_EXPORT XERCES_PLATFORM_IMPORT
00149     #define SAX_EXPORT XERCES_PLATFORM_IMPORT
00150     #define SAX2_EXPORT XERCES_PLATFORM_IMPORT
00151     #define CDOM_EXPORT XERCES_PLATFORM_IMPORT
00152     #define PARSERS_EXPORT  XERCES_PLATFORM_IMPORT
00153     #define VALIDATORS_EXPORT  XERCES_PLATFORM_IMPORT
00154     #define XINCLUDE_EXPORT  XERCES_PLATFORM_IMPORT
00155   #endif
00156   #if defined(XERCES_BUILDING_DEPRECATED_LIBRARY)
00157     #define DEPRECATED_DOM_EXPORT XERCES_PLATFORM_EXPORT
00158   #else
00159     #define DEPRECATED_DOM_EXPORT XERCES_PLATFORM_IMPORT
00160   #endif
00161 #else
00162   #define XMLUTIL_EXPORT 
00163   #define XMLPARSER_EXPORT 
00164   #define SAX_EXPORT 
00165   #define SAX2_EXPORT
00166   #define CDOM_EXPORT
00167   #define DEPRECATED_DOM_EXPORT 
00168   #define PARSERS_EXPORT 
00169   #define VALIDATORS_EXPORT
00170   #define XINCLUDE_EXPORT
00171 #endif
00172 
00173 #endif

Generated on Wed Sep 24 16:36:33 2008 for Xerces-C++ by  doxygen 1.5.4