http://xml.apache.org/http://www.apache.org/http://www.w3.org/

Home

Readme
Release Info

Installation
Download
Build

FAQs
Samples
API Docs

DOM C++ Binding
Programming
Migration Guide

Feedback
Bug-Reporting
PDF Document

CVS Repository
Mail Archive

API Docs for SAX and DOM
 

Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

XercesVersion.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright 2002-2004 The Apache Software Foundation.
00003  * 
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  * 
00008  *      http://www.apache.org/licenses/LICENSE-2.0
00009  * 
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 #if !defined(XERCESVERSION_HPP)
00018 #define XERCESVERSION_HPP
00019 
00020 // ---------------------------------------------------------------------------
00021 // X E R C E S   V E R S I O N   H E A D E R   D O C U M E N T A T I O N
00022 
00116 // ---------------------------------------------------------------------------
00117 // X E R C E S   V E R S I O N   S P E C I F I C A T I O N
00118 
00124 #define XERCES_VERSION_MAJOR 2
00125 #define XERCES_VERSION_MINOR 6
00126 #define XERCES_VERSION_REVISION 0
00127 
00128 /***
00129  * data member added to XSAnnotation
00130  ***/
00131 #define XERCES_GRAMMAR_SERIALIZATION_LEVEL 3
00132 
00142 // ---------------------------------------------------------------------------
00143 // T W O   A R G U M E N T   C O N C A T E N A T I O N   M A C R O S
00144 
00145 // two argument concatenation routines
00146 #define CAT2_SEP_UNDERSCORE(a, b) #a "_" #b
00147 #define CAT2_SEP_PERIOD(a, b) #a "." #b
00148 #define CAT2_SEP_NIL(a, b) #a #b
00149 #define CAT2_RAW_NUMERIC(a, b) a ## b
00150 
00151 // two argument macro invokers
00152 #define INVK_CAT2_SEP_UNDERSCORE(a,b) CAT2_SEP_UNDERSCORE(a,b)
00153 #define INVK_CAT2_SEP_PERIOD(a,b)     CAT2_SEP_PERIOD(a,b)
00154 #define INVK_CAT2_STR_SEP_NIL(a,b)    CAT2_SEP_NIL(a,b)
00155 #define INVK_CAT2_RAW_NUMERIC(a,b)    CAT2_RAW_NUMERIC(a,b)
00156 
00157 // ---------------------------------------------------------------------------
00158 // T H R E E   A R G U M E N T   C O N C A T E N A T I O N   M A C R O S
00159 
00160 // three argument concatenation routines
00161 #define CAT3_SEP_UNDERSCORE(a, b, c) #a "_" #b "_" #c
00162 #define CAT3_SEP_PERIOD(a, b, c) #a "." #b "." #c
00163 #define CAT3_SEP_NIL(a, b, c) #a #b #c
00164 #define CAT3_RAW_NUMERIC(a, b, c) a ## b ## c
00165 #define CAT3_RAW_NUMERIC_SEP_UNDERSCORE(a, b, c) a ## _ ## b ## _ ## c
00166 
00167 // three argument macro invokers
00168 #define INVK_CAT3_SEP_UNDERSCORE(a,b,c) CAT3_SEP_UNDERSCORE(a,b,c)
00169 #define INVK_CAT3_SEP_PERIOD(a,b,c)     CAT3_SEP_PERIOD(a,b,c)
00170 #define INVK_CAT3_SEP_NIL(a,b,c)        CAT3_SEP_NIL(a,b,c)
00171 #define INVK_CAT3_RAW_NUMERIC(a,b,c)    CAT3_RAW_NUMERIC(a,b,c)
00172 #define INVK_CAT3_RAW_NUMERIC_SEP_UNDERSCORE(a,b,c)    CAT3_RAW_NUMERIC_SEP_UNDERSCORE(a,b,c)
00173 
00174 // ---------------------------------------------------------------------------
00175 // C A L C U L A T E   V E R S I O N   -   E X P A N D E D   F O R M
00176 
00177 #define MULTIPLY(factor,value) factor * value
00178 #define CALC_EXPANDED_FORM(a,b,c) ( MULTIPLY(10000,a) + MULTIPLY(100,b) + MULTIPLY(1,c) )
00179 
00180 // ---------------------------------------------------------------------------
00181 // X E R C E S   V E R S I O N   I N F O R M A T I O N
00182 
00183 // Xerces version strings; these particular macros cannot be used for
00184 // conditional compilation as they are not numeric constants
00185 
00186 #define XERCES_FULLVERSIONSTR INVK_CAT3_SEP_UNDERSCORE(XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR,XERCES_VERSION_REVISION)
00187 #define XERCES_FULLVERSIONDOT INVK_CAT3_SEP_PERIOD(XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR,XERCES_VERSION_REVISION)
00188 #define XERCES_FULLVERSIONNUM INVK_CAT3_SEP_NIL(XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR,XERCES_VERSION_REVISION)
00189 #define XERCES_VERSIONSTR     INVK_CAT2_SEP_UNDERSCORE(XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR)
00190 
00191 // Xerces C++ Namespace string, concatenated with full version string
00192 #define XERCES_PRODUCT xercesc
00193 #define XERCES_CPP_NAMESPACE INVK_CAT3_RAW_NUMERIC_SEP_UNDERSCORE(XERCES_PRODUCT,XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR)
00194 
00195 // original from Xerces header
00196 #define Xerces_DLLVersionStr XERCES_FULLVERSIONSTR
00197 
00198 const char* const    gXercesVersionStr = XERCES_VERSIONSTR;
00199 const char* const    gXercesFullVersionStr = XERCES_FULLVERSIONSTR;
00200 const unsigned int   gXercesMajVersion = XERCES_VERSION_MAJOR;
00201 const unsigned int   gXercesMinVersion = XERCES_VERSION_MINOR;
00202 const unsigned int   gXercesRevision   = XERCES_VERSION_REVISION;
00203 
00204 // Xerces version numeric constants that can be used for conditional
00205 // compilation purposes.
00206 
00207 #define _XERCES_VERSION CALC_EXPANDED_FORM (XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR,XERCES_VERSION_REVISION)
00208 
00209 #endif // XERCESVERSION_HPP


Copyright © 1994-2004 The Apache Software Foundation. All Rights Reserved.