source: icXML/icXML-devel/src/xercesc/util/XercesDefs.hpp @ 2732

Last change on this file since 2732 was 2722, checked in by cameron, 7 years ago

Original Xerces files with import mods for icxercesc

File size: 6.6 KB
Line 
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements.  See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License.  You may obtain a copy of the License at
8 *
9 *      http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18/*
19 * $Id: XercesDefs.hpp 932887 2010-04-11 13:04:59Z borisk $
20 */
21
22#if !defined(XERCESC_INCLUDE_GUARD_XERCESDEFS_HPP)
23#define XERCESC_INCLUDE_GUARD_XERCESDEFS_HPP
24
25// ---------------------------------------------------------------------------
26//  The file xerces_hdr_config defines critical configuration information
27//      used by the remainder of this file.
28//
29//      There are two major configuration files:
30//              - xerces_autoconf_config.hpp-- Contains defines that are safe for
31//                                                                         access through public headers.
32//
33//              - config.h                                      -- Contains defines that may conflict
34//                                                                         with other packages; should only be
35//                                                                         included by Xerces implementation files.
36//
37//      Both of these files are generated through the autoconf/configure process.
38// ---------------------------------------------------------------------------
39
40//
41// If this is an autoconf configured build, we include Xerces_autoconf_config.hpp
42// Otherwise we include a preconfigured config appropriate for the particular
43// platform that the specific makefile should copy over.
44//
45//  If the next line generates an error then you haven't run ./configure
46#include        <xercesc/util/Xerces_autoconf_config.hpp>
47
48// ---------------------------------------------------------------------------
49//  Include the Xerces version information; this is kept in a separate file to
50//  make modification simple and obvious. Updates to the version header file
51// ---------------------------------------------------------------------------
52#include    <xercesc/util/XercesVersion.hpp>
53
54
55// ---------------------------------------------------------------------------
56//  Some general typedefs that are defined for internal flexibility.
57//
58//  Note  that UTF16Ch is fixed at 16 bits, whereas XMLCh floats in size per
59//  platform, to whatever is the native wide char format there. UCS4Ch is
60//  fixed at 32 bits. The types we defined them in terms of are defined per
61//  compiler, using whatever types are the right ones for them to get these
62//  16/32 bit sizes.
63//
64// ---------------------------------------------------------------------------
65typedef unsigned char       XMLByte;
66typedef XMLUInt16           UTF16Ch;
67typedef XMLUInt32           UCS4Ch;
68
69
70// ---------------------------------------------------------------------------
71//  Handle boolean. If the platform can handle booleans itself, then we
72//  map our boolean type to the native type. Otherwise we create a default
73//  one as an int and define const values for true and false.
74//
75//  This flag will be set in the per-development environment stuff above.
76// ---------------------------------------------------------------------------
77#if defined(XERCES_NO_NATIVE_BOOL)
78  #ifndef bool
79    typedef int     bool;
80  #endif
81  #ifndef true
82    #define  true     1
83  #endif
84  #ifndef false
85    #define false 0
86  #endif
87#endif
88
89// ---------------------------------------------------------------------------
90//  According to whether the compiler supports L"" type strings, we define
91//  the XMLStrL() macro one way or another.
92// ---------------------------------------------------------------------------
93#if defined(XERCES_LSTRSUPPORT)
94#define XMLStrL(str)  L##str
95#else
96#define XMLStrL(str)  str
97#endif
98
99
100// ---------------------------------------------------------------------------
101// Define namespace symbols if the compiler supports it.
102// ---------------------------------------------------------------------------
103#if defined(XERCES_HAS_CPP_NAMESPACE)
104    #define XERCES_CPP_NAMESPACE_BEGIN namespace XERCES_CPP_NAMESPACE {
105    #define XERCES_CPP_NAMESPACE_END  }
106    #define XERCES_CPP_NAMESPACE_USE using namespace XERCES_CPP_NAMESPACE;
107    #define XERCES_CPP_NAMESPACE_QUALIFIER XERCES_CPP_NAMESPACE::
108
109    namespace XERCES_CPP_NAMESPACE { }
110    namespace xercesc = XERCES_CPP_NAMESPACE;
111#else
112    #define XERCES_CPP_NAMESPACE_BEGIN
113    #define XERCES_CPP_NAMESPACE_END
114    #define XERCES_CPP_NAMESPACE_USE
115    #define XERCES_CPP_NAMESPACE_QUALIFIER
116#endif
117
118#if defined(XERCES_STD_NAMESPACE)
119        #define XERCES_USING_STD(NAME) using std :: NAME;
120        #define XERCES_STD_QUALIFIER  std ::
121#else
122        #define XERCES_USING_STD(NAME)
123        #define XERCES_STD_QUALIFIER
124#endif
125
126
127// ---------------------------------------------------------------------------
128//  Set up the import/export keyword  for our core projects. The
129//  PLATFORM_XXXX keywords are set in the per-development environment
130//  include above.
131// ---------------------------------------------------------------------------
132
133// The DLL_EXPORT flag should be defined on the command line during the build of a DLL
134// configure conspires to make this happen.
135
136#if defined(DLL_EXPORT)
137  #if defined(XERCES_BUILDING_LIBRARY)
138    #define XMLUTIL_EXPORT XERCES_PLATFORM_EXPORT
139    #define XMLPARSER_EXPORT XERCES_PLATFORM_EXPORT
140    #define SAX_EXPORT XERCES_PLATFORM_EXPORT
141    #define SAX2_EXPORT XERCES_PLATFORM_EXPORT
142    #define CDOM_EXPORT XERCES_PLATFORM_EXPORT
143    #define PARSERS_EXPORT  XERCES_PLATFORM_EXPORT
144    #define VALIDATORS_EXPORT  XERCES_PLATFORM_EXPORT
145    #define XINCLUDE_EXPORT  XERCES_PLATFORM_EXPORT
146  #else
147    #define XMLUTIL_EXPORT XERCES_PLATFORM_IMPORT
148    #define XMLPARSER_EXPORT XERCES_PLATFORM_IMPORT
149    #define SAX_EXPORT XERCES_PLATFORM_IMPORT
150    #define SAX2_EXPORT XERCES_PLATFORM_IMPORT
151    #define CDOM_EXPORT XERCES_PLATFORM_IMPORT
152    #define PARSERS_EXPORT  XERCES_PLATFORM_IMPORT
153    #define VALIDATORS_EXPORT  XERCES_PLATFORM_IMPORT
154    #define XINCLUDE_EXPORT  XERCES_PLATFORM_IMPORT
155  #endif
156  #if defined(XERCES_BUILDING_DEPRECATED_LIBRARY)
157    #define DEPRECATED_DOM_EXPORT XERCES_PLATFORM_EXPORT
158  #else
159    #define DEPRECATED_DOM_EXPORT XERCES_PLATFORM_IMPORT
160  #endif
161#else
162  #define XMLUTIL_EXPORT
163  #define XMLPARSER_EXPORT
164  #define SAX_EXPORT
165  #define SAX2_EXPORT
166  #define CDOM_EXPORT
167  #define DEPRECATED_DOM_EXPORT
168  #define PARSERS_EXPORT
169  #define VALIDATORS_EXPORT
170  #define XINCLUDE_EXPORT
171#endif
172
173#endif
Note: See TracBrowser for help on using the repository browser.