|
||||
File indexing completed on 2025-01-18 10:15:14
0001 /* src/xercesc/util/XercesVersion.hpp. Generated from XercesVersion.hpp.in by configure. */ 0002 /* 0003 * Licensed to the Apache Software Foundation (ASF) under one or more 0004 * contributor license agreements. See the NOTICE file distributed with 0005 * this work for additional information regarding copyright ownership. 0006 * The ASF licenses this file to You under the Apache License, Version 2.0 0007 * (the "License"); you may not use this file except in compliance with 0008 * the License. You may obtain a copy of the License at 0009 * 0010 * http://www.apache.org/licenses/LICENSE-2.0 0011 * 0012 * Unless required by applicable law or agreed to in writing, software 0013 * distributed under the License is distributed on an "AS IS" BASIS, 0014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 0015 * See the License for the specific language governing permissions and 0016 * limitations under the License. 0017 */ 0018 0019 /* 0020 * $Id: XercesVersion.hpp 1824295 2018-02-15 11:17:15Z rleigh $ 0021 */ 0022 0023 #if !defined(XERCESC_INCLUDE_GUARD_XERCESVERSION_HPP) 0024 #define XERCESC_INCLUDE_GUARD_XERCESVERSION_HPP 0025 0026 // --------------------------------------------------------------------------- 0027 // 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 0028 0029 /** 0030 * User Documentation for Xerces Version Values: 0031 * 0032 * 0033 * 0034 * Xerces Notes: 0035 * 0036 * Xerces Committers Documentation: 0037 * 0038 * Xerces committers normally only need to modify one or two of the 0039 * following macros: 0040 * 0041 * XERCES_VERSION_MAJOR 0042 * XERCES_VERSION_MINOR 0043 * XERCES_VERSION_REVISION 0044 * 0045 * The integer values of these macros define the Xerces version number. All 0046 * other constants and preprocessor macros are automatically generated from 0047 * these three definitions. 0048 * 0049 * The macro XERCES_GRAMMAR_SERIALIZATION_LEVEL has been added so that during 0050 * development if users are using the latest code they can use the grammar 0051 * serialization/deserialization features. Whenever a change is made to the 0052 * serialization code this macro should be incremented. 0053 * 0054 * Xerces User Documentation: 0055 * 0056 * The following sections in the user documentation have examples based upon 0057 * the following three version input values: 0058 * 0059 * #define XERCES_VERSION_MAJOR 19 0060 * #define XERCES_VERSION_MINOR 3 0061 * #define XERCES_VERSION_REVISION 74 0062 * 0063 * The minor and revision (patch level) numbers have two digits of resolution 0064 * which means that '3' becomes '03' in this example. This policy guarantees 0065 * that when using preprocessor macros, version 19.3.74 will be greater than 0066 * version 1.94.74 since the first will expand to 190374 and the second to 0067 * 19474. 0068 * 0069 * Preprocessor Macros: 0070 * 0071 * _XERCES_VERSION defines the primary preprocessor macro that users will 0072 * introduce into their code to perform conditional compilation where the 0073 * version of Xerces is detected in order to enable or disable version 0074 * specific capabilities. The value of _XERCES_VERSION for the above example 0075 * will be 190374. To use it a user would perform an operation such as the 0076 * following: 0077 * 0078 * #if _XERCES_VERSION >= 190374 0079 * // code specific to new version of Xerces... 0080 * #else 0081 * // old code here... 0082 * #endif 0083 * 0084 * XERCES_FULLVERSIONSTR is a preprocessor macro that expands to a string 0085 * constant whose value, for the above example, will be "19_3_74". 0086 * 0087 * XERCES_FULLVERSIONDOT is a preprocessor macro that expands to a string 0088 * constant whose value, for the above example, will be "19.3.74". 0089 * 0090 * XERCES_VERSIONSTR is a preprocessor macro that expands to a string 0091 * constant whose value, for the above example, will be "19_3". This 0092 * particular macro is very dangerous if it were to be used for comparing 0093 * version numbers since ordering will not be guaranteed. 0094 * 0095 * Xerces_DLLVersionStr is a preprocessor macro that expands to a string 0096 * constant whose value, for the above example, will be "19_3_74". This 0097 * macro is provided for backwards compatibility to pre-1.7 versions of 0098 * Xerces. 0099 * 0100 * String Constants: 0101 * 0102 * gXercesVersionStr is a global string constant whose value corresponds to 0103 * the value "19_3" for the above example. 0104 * 0105 * gXercesFullVersionStr is a global string constant whose value corresponds 0106 * to the value "19_3_74" for the above example. 0107 * 0108 * Numeric Constants: 0109 * 0110 * gXercesMajVersion is a global integer constant whose value corresponds to 0111 * the major version number. For the above example its value will be 19. 0112 * 0113 * gXercesMinVersion is a global integer constant whose value corresponds to 0114 * the minor version number. For the above example its value will be 3. 0115 * 0116 * gXercesRevision is a global integer constant whose value corresponds to 0117 * the revision (patch) version number. For the above example its value will 0118 * be 74. 0119 * 0120 */ 0121 0122 // --------------------------------------------------------------------------- 0123 // 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 0124 0125 /** 0126 * MODIFY THESE NUMERIC VALUES TO COINCIDE WITH XERCES VERSION 0127 * AND DO NOT MODIFY ANYTHING ELSE IN THIS VERSION HEADER FILE 0128 */ 0129 0130 #define XERCES_VERSION_MAJOR 3 0131 #define XERCES_VERSION_MINOR 3 0132 #define XERCES_VERSION_REVISION 0 0133 0134 /*** 0135 * 0136 * XERCES_GRAMMAR_SERIALIZATION_LEVEL = 4 SchemaAttDef, SchemaElementDecl serialize fPSVIScope 0137 * XERCES_GRAMMAR_SERIALIZATION_LEVEL = 5 XercesStep serializes the axis as an int 0138 * XERCES_GRAMMAR_SERIALIZATION_LEVEL = 6 added fIsExternal to XMLEntityDecl 0139 * XERCES_GRAMMAR_SERIALIZATION_LEVEL = 7 size of line/column fields has changed 0140 * 0141 ***/ 0142 #define XERCES_GRAMMAR_SERIALIZATION_LEVEL 7 0143 0144 /** DO NOT MODIFY BELOW THIS LINE */ 0145 0146 /** 0147 * MAGIC THAT AUTOMATICALLY GENERATES THE FOLLOWING: 0148 * 0149 * Xerces_DLLVersionStr, gXercesVersionStr, gXercesFullVersionStr, 0150 * gXercesMajVersion, gXercesMinVersion, gXercesRevision 0151 */ 0152 0153 // --------------------------------------------------------------------------- 0154 // 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 0155 0156 // two argument concatenation routines 0157 #define CAT2_SEP_UNDERSCORE(a, b) #a "_" #b 0158 #define CAT2_SEP_PERIOD(a, b) #a "." #b 0159 #define CAT2_SEP_NIL(a, b) #a #b 0160 #define CAT2_RAW_NUMERIC(a, b) a ## b 0161 0162 // two argument macro invokers 0163 #define INVK_CAT2_SEP_UNDERSCORE(a,b) CAT2_SEP_UNDERSCORE(a,b) 0164 #define INVK_CAT2_SEP_PERIOD(a,b) CAT2_SEP_PERIOD(a,b) 0165 #define INVK_CAT2_STR_SEP_NIL(a,b) CAT2_SEP_NIL(a,b) 0166 #define INVK_CAT2_RAW_NUMERIC(a,b) CAT2_RAW_NUMERIC(a,b) 0167 0168 // --------------------------------------------------------------------------- 0169 // 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 0170 0171 // three argument concatenation routines 0172 #define CAT3_SEP_UNDERSCORE(a, b, c) #a "_" #b "_" #c 0173 #define CAT3_SEP_PERIOD(a, b, c) #a "." #b "." #c 0174 #define CAT3_SEP_NIL(a, b, c) #a #b #c 0175 #define CAT3_RAW_NUMERIC(a, b, c) a ## b ## c 0176 #define CAT3_RAW_NUMERIC_SEP_UNDERSCORE(a, b, c) a ## _ ## b ## _ ## c 0177 0178 // three argument macro invokers 0179 #define INVK_CAT3_SEP_UNDERSCORE(a,b,c) CAT3_SEP_UNDERSCORE(a,b,c) 0180 #define INVK_CAT3_SEP_PERIOD(a,b,c) CAT3_SEP_PERIOD(a,b,c) 0181 #define INVK_CAT3_SEP_NIL(a,b,c) CAT3_SEP_NIL(a,b,c) 0182 #define INVK_CAT3_RAW_NUMERIC(a,b,c) CAT3_RAW_NUMERIC(a,b,c) 0183 #define INVK_CAT3_RAW_NUMERIC_SEP_UNDERSCORE(a,b,c) CAT3_RAW_NUMERIC_SEP_UNDERSCORE(a,b,c) 0184 0185 // --------------------------------------------------------------------------- 0186 // 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 0187 0188 #define MULTIPLY(factor,value) factor * value 0189 #define CALC_EXPANDED_FORM(a,b,c) ( MULTIPLY(10000,a) + MULTIPLY(100,b) + MULTIPLY(1,c) ) 0190 0191 // --------------------------------------------------------------------------- 0192 // X E R C E S V E R S I O N I N F O R M A T I O N 0193 0194 // Xerces version strings; these particular macros cannot be used for 0195 // conditional compilation as they are not numeric constants 0196 0197 #define XERCES_FULLVERSIONSTR INVK_CAT3_SEP_UNDERSCORE(XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR,XERCES_VERSION_REVISION) 0198 #define XERCES_FULLVERSIONDOT INVK_CAT3_SEP_PERIOD(XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR,XERCES_VERSION_REVISION) 0199 #define XERCES_FULLVERSIONNUM INVK_CAT3_SEP_NIL(XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR,XERCES_VERSION_REVISION) 0200 #define XERCES_VERSIONSTR INVK_CAT2_SEP_UNDERSCORE(XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR) 0201 0202 // Xerces C++ Namespace string, concatenated with full version string 0203 #define XERCES_PRODUCT xercesc 0204 #define XERCES_CPP_NAMESPACE INVK_CAT3_RAW_NUMERIC_SEP_UNDERSCORE(XERCES_PRODUCT,XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR) 0205 0206 // original from Xerces header 0207 #define Xerces_DLLVersionStr XERCES_FULLVERSIONSTR 0208 0209 const char* const gXercesVersionStr = XERCES_VERSIONSTR; 0210 const char* const gXercesFullVersionStr = XERCES_FULLVERSIONSTR; 0211 const unsigned int gXercesMajVersion = XERCES_VERSION_MAJOR; 0212 const unsigned int gXercesMinVersion = XERCES_VERSION_MINOR; 0213 const unsigned int gXercesRevision = XERCES_VERSION_REVISION; 0214 0215 // Xerces version numeric constants that can be used for conditional 0216 // compilation purposes. 0217 0218 #define _XERCES_VERSION CALC_EXPANDED_FORM (XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR,XERCES_VERSION_REVISION) 0219 0220 #endif // XERCESVERSION_HPP
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |