00001 /* 00002 * Licensed to the Apache Software Foundation (ASF) under one 00003 * or more contributor license agreements. See the NOTICE file 00004 * distributed with this work for additional information 00005 * regarding copyright ownership. The ASF licenses this file 00006 * to you under the Apache License, Version 2.0 (the "License"); 00007 * you may not use this file except in compliance with the License. 00008 * You may obtain a copy of the License at 00009 * 00010 * http://www.apache.org/licenses/LICENSE-2.0 00011 * 00012 * Unless required by applicable law or agreed to in writing, software 00013 * distributed under the License is distributed on an "AS IS" BASIS, 00014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00015 * See the License for the specific language governing permissions and 00016 * limitations under the License. 00017 */ 00018 00019 #if !defined(XALANVERSION_HEADER_GUARD_1357924680) 00020 #define XALANVERSION_HEADER_GUARD_1357924680 00021 00022 // --------------------------------------------------------------------------- 00023 // X A L A N 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 00024 00025 /** 00026 * User Documentation for Xalan Version Values: 00027 * 00028 * 00029 * 00030 * Xalan Notes: 00031 * 00032 * Xalan Committers Documentation: 00033 * 00034 * Xalan committers normally only need to modify one or two of the 00035 * following macros: 00036 * 00037 * XALAN_VERSION_MAJOR 00038 * XALAN_VERSION_MINOR 00039 * XALAN_VERSION_REVISION 00040 * 00041 * The integer values of these macros define the Xalan version number. All 00042 * other constants and preprocessor macros are automatically generated from 00043 * these three definitions. 00044 * 00045 * Xalan User Documentation: 00046 * 00047 * The following sections in the user documentation have examples based upon 00048 * the following three version input values: 00049 * 00050 * #define XALAN_VERSION_MAJOR 19 00051 * #define XALAN_VERSION_MINOR 3 00052 * #define XALAN_VERSION_REVISION 74 00053 * 00054 * The minor and revision (patch level) numbers have two digits of resolution 00055 * which means that '3' becomes '03' in this example. This policy guarantees 00056 * that when using preprocessor macros, version 19.3.74 will be greater than 00057 * version 1.94.74 since the first will expand to 190374 and the second to 00058 * 19474. 00059 * 00060 * Preprocessor Macros: 00061 * 00062 * _XALAN_VERSION defines the primary preprocessor macro that users will 00063 * introduce into their code to perform conditional compilation where the 00064 * version of Xalan is detected in order to enable or disable version 00065 * specific capabilities. The value of _XALAN_VERSION for the above example 00066 * will be 190374. To use it a user would perform an operation such as the 00067 * following: 00068 * 00069 * #if _XALAN_VERSION >= 190374 00070 * // code specific to new version of Xalan... 00071 * #else 00072 * // old code here... 00073 * #endif 00074 * 00075 * XALAN_FULLVERSIONSTR is a preprocessor macro that expands to a string 00076 * constant whose value, for the above example, will be "19_3_74". 00077 * 00078 * XALAN_FULLVERSIONDOT is a preprocessor macro that expands to a string 00079 * constant whose value, for the above example, will be "19.3.74". 00080 * 00081 * XALAN_VERSIONSTR is a preprocessor macro that expands to a string 00082 * constant whose value, for the above example, will be "19374". This 00083 * particular macro is very dangerous if it were to be used for comparing 00084 * version numbers since ordering will not be guaranteed. 00085 * 00086 * Xalan_DLLVersionStr is a preprocessor macro that expands to a string 00087 * constant whose value, for the above example, will be "19_3_74". This 00088 * macro is provided for backwards compatibility to pre-1.7 versions of 00089 * Xalan. 00090 * 00091 * String Constants: 00092 * 00093 * gXalanVersionStr is a global string constant whose value corresponds to 00094 * the value "19_3" for the above example. 00095 * 00096 * gXalanFullVersionStr is a global string constant whose value corresponds 00097 * to the value "19_3_74" for the above example. 00098 * 00099 * Numeric Constants: 00100 * 00101 * gXalanMajVersion is a global integer constant whose value corresponds to 00102 * the major version number. For the above example its value will be 19. 00103 * 00104 * gXalanMinVersion is a global integer constant whose value corresponds to 00105 * the minor version number. For the above example its value will be 3. 00106 * 00107 * gXalanRevision is a global integer constant whose value corresponds to 00108 * the revision (patch) version number. For the above example its value will 00109 * be 74. 00110 * 00111 */ 00112 00113 // --------------------------------------------------------------------------- 00114 // X A L A N V E R S I O N S P E C I F I C A T I O N 00115 00116 /** 00117 * MODIFY THESE NUMERIC VALUES TO COINCIDE WITH XALAN VERSION 00118 * AND DO NOT MODIFY ANYTHING ELSE IN THIS VERSION HEADER FILE 00119 */ 00120 00121 #define XALAN_VERSION_MAJOR 1 00122 #define XALAN_VERSION_MINOR 11 00123 #define XALAN_VERSION_REVISION 0 00124 00125 00126 /** DO NOT MODIFY BELOW THIS LINE */ 00127 00128 /** 00129 * MAGIC THAT AUTOMATICALLY GENERATES THE FOLLOWING: 00130 * 00131 * Xalan_DLLVersionStr, gXalanVersionStr, gXalanFullVersionStr, 00132 * gXalanMajVersion, gXalanMinVersion, gXalanRevision 00133 */ 00134 00135 // --------------------------------------------------------------------------- 00136 // 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 00137 00138 // two argument concatenation routines 00139 #define CAT2_SEP_UNDERSCORE(a, b) #a "_" #b 00140 #define CAT2_SEP_PERIOD(a, b) #a "." #b 00141 #define CAT2_SEP_NIL(a, b) #a #b 00142 #define CAT2_RAW_NUMERIC(a, b) a ## b 00143 #define CAT2_RAW_NUMERIC_SEP_UNDERSCORE(a, b) a ## _ ## b 00144 00145 // two argument macro invokers 00146 #define INVK_CAT2_SEP_UNDERSCORE(a,b) CAT2_SEP_UNDERSCORE(a,b) 00147 #define INVK_CAT2_SEP_PERIOD(a,b) CAT2_SEP_PERIOD(a,b) 00148 #define INVK_CAT2_STR_SEP_NIL(a,b) CAT2_SEP_NIL(a,b) 00149 #define INVK_CAT2_RAW_NUMERIC(a,b) CAT2_RAW_NUMERIC(a,b) 00150 #define INVK_CAT2_RAW_NUMERIC_SEP_UNDERSCORE(a,b) CAT2_RAW_NUMERIC_SEP_UNDERSCORE(a,b) 00151 00152 // --------------------------------------------------------------------------- 00153 // 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 00154 00155 // three argument concatenation routines 00156 #define CAT3_SEP_UNDERSCORE(a, b, c) #a "_" #b "_" #c 00157 #define CAT3_SEP_PERIOD(a, b, c) #a "." #b "." #c 00158 #define CAT3_SEP_NIL(a, b, c) #a #b #c 00159 #define CAT3_RAW_NUMERIC(a, b, c) a ## b ## c 00160 #define CAT3_RAW_NUMERIC_SEP_UNDERSCORE(a, b, c) a ## _ ## b ## _ ## c 00161 00162 // three argument macro invokers 00163 #define INVK_CAT3_SEP_UNDERSCORE(a,b,c) CAT3_SEP_UNDERSCORE(a,b,c) 00164 #define INVK_CAT3_SEP_PERIOD(a,b,c) CAT3_SEP_PERIOD(a,b,c) 00165 #define INVK_CAT3_SEP_NIL(a,b,c) CAT3_SEP_NIL(a,b,c) 00166 #define INVK_CAT3_RAW_NUMERIC(a,b,c) CAT3_RAW_NUMERIC(a,b,c) 00167 #define INVK_CAT3_RAW_NUMERIC_SEP_UNDERSCORE(a,b,c) CAT3_RAW_NUMERIC_SEP_UNDERSCORE(a,b,c) 00168 00169 // --------------------------------------------------------------------------- 00170 // 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 00171 00172 #define MULTIPLY(factor,value) factor * value 00173 #define CALC_EXPANDED_FORM(a,b,c) ( MULTIPLY(10000,a) + MULTIPLY(100,b) + MULTIPLY(1,c) ) 00174 00175 // --------------------------------------------------------------------------- 00176 // X A L A N V E R S I O N I N F O R M A T I O N 00177 00178 // Xalan version strings; these particular macros cannot be used for 00179 // conditional compilation as they are not numeric constants 00180 00181 #define XALAN_FULLVERSIONSTR INVK_CAT3_SEP_UNDERSCORE(XALAN_VERSION_MAJOR,XALAN_VERSION_MINOR,XALAN_VERSION_REVISION) 00182 #define XALAN_FULLVERSIONDOT INVK_CAT3_SEP_PERIOD(XALAN_VERSION_MAJOR,XALAN_VERSION_MINOR,XALAN_VERSION_REVISION) 00183 #define XALAN_FULLVERSIONNUM INVK_CAT3_SEP_NIL(XALAN_VERSION_MAJOR,XALAN_VERSION_MINOR,XALAN_VERSION_REVISION) 00184 #define XALAN_VERSIONSTR INVK_CAT2_SEP_UNDERSCORE(XALAN_VERSION_MAJOR,XALAN_VERSION_MINOR) 00185 00186 // Xalan C++ Namespace string, concatenated with full version string 00187 #define XALAN_PRODUCT xalanc 00188 #define XALAN_CPP_NAMESPACE INVK_CAT3_RAW_NUMERIC_SEP_UNDERSCORE(XALAN_PRODUCT,XALAN_VERSION_MAJOR,XALAN_VERSION_MINOR) 00189 00190 00191 // original from Xalan header 00192 #define Xalan_DLLVersionStr XALAN_FULLVERSIONSTR 00193 00194 const char* const gXalanVersionStr = XALAN_VERSIONSTR; 00195 const char* const gXalanFullVersionStr = XALAN_FULLVERSIONSTR; 00196 const unsigned int gXalanMajVersion = XALAN_VERSION_MAJOR; 00197 const unsigned int gXalanMinVersion = XALAN_VERSION_MINOR; 00198 const unsigned int gXalanRevision = XALAN_VERSION_REVISION; 00199 00200 // Xalan version numeric constants that can be used for conditional 00201 // compilation purposes. 00202 00203 #define _XALAN_VERSION CALC_EXPANDED_FORM (XALAN_VERSION_MAJOR,XALAN_VERSION_MINOR,XALAN_VERSION_REVISION) 00204 00205 #endif // XALANVERSION_HEADER_GUARD_1357924680
Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.
Xalan-C++ XSLT Processor Version 1.11 |
|