Annotation of win32/apache22/srclib/apr/include/apr_version.h, revision 1.1

1.1     ! moko        1: /* Licensed to the Apache Software Foundation (ASF) under one or more
        !             2:  * contributor license agreements.  See the NOTICE file distributed with
        !             3:  * this work for additional information regarding copyright ownership.
        !             4:  * The ASF licenses this file to You under the Apache License, Version 2.0
        !             5:  * (the "License"); you may not use this file except in compliance with
        !             6:  * the License.  You may obtain a copy of the License at
        !             7:  *
        !             8:  *     http://www.apache.org/licenses/LICENSE-2.0
        !             9:  *
        !            10:  * Unless required by applicable law or agreed to in writing, software
        !            11:  * distributed under the License is distributed on an "AS IS" BASIS,
        !            12:  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
        !            13:  * See the License for the specific language governing permissions and
        !            14:  * limitations under the License.
        !            15:  */
        !            16: 
        !            17: #ifndef APR_VERSION_H
        !            18: #define APR_VERSION_H
        !            19: 
        !            20: /**
        !            21:  * @file apr_version.h
        !            22:  * @brief APR Versioning Interface
        !            23:  * 
        !            24:  * APR's Version
        !            25:  *
        !            26:  * There are several different mechanisms for accessing the version. There
        !            27:  * is a string form, and a set of numbers; in addition, there are constants
        !            28:  * which can be compiled into your application, and you can query the library
        !            29:  * being used for its actual version.
        !            30:  *
        !            31:  * Note that it is possible for an application to detect that it has been
        !            32:  * compiled against a different version of APR by use of the compile-time
        !            33:  * constants and the use of the run-time query function.
        !            34:  *
        !            35:  * APR version numbering follows the guidelines specified in:
        !            36:  *
        !            37:  *     http://apr.apache.org/versioning.html
        !            38:  */
        !            39: 
        !            40: 
        !            41: #define APR_COPYRIGHT "Copyright (c) 2013 The Apache Software " \
        !            42:                       "Foundation or its licensors, as applicable."
        !            43: 
        !            44: /* The numeric compile-time version constants. These constants are the
        !            45:  * authoritative version numbers for APR. 
        !            46:  */
        !            47: 
        !            48: /** major version 
        !            49:  * Major API changes that could cause compatibility problems for older
        !            50:  * programs such as structure size changes.  No binary compatibility is
        !            51:  * possible across a change in the major version.
        !            52:  */
        !            53: #define APR_MAJOR_VERSION       1
        !            54: 
        !            55: /** minor version
        !            56:  * Minor API changes that do not cause binary compatibility problems.
        !            57:  * Reset to 0 when upgrading APR_MAJOR_VERSION
        !            58:  */
        !            59: #define APR_MINOR_VERSION       4
        !            60: 
        !            61: /** patch level 
        !            62:  * The Patch Level never includes API changes, simply bug fixes.
        !            63:  * Reset to 0 when upgrading APR_MINOR_VERSION
        !            64:  */
        !            65: #define APR_PATCH_VERSION       8
        !            66: 
        !            67: /** 
        !            68:  * The symbol APR_IS_DEV_VERSION is only defined for internal,
        !            69:  * "development" copies of APR.  It is undefined for released versions
        !            70:  * of APR.
        !            71:  */
        !            72: /* #define APR_IS_DEV_VERSION */
        !            73: 
        !            74: /**
        !            75:  * Check at compile time if the APR version is at least a certain
        !            76:  * level.
        !            77:  * @param major The major version component of the version checked
        !            78:  * for (e.g., the "1" of "1.3.0").
        !            79:  * @param minor The minor version component of the version checked
        !            80:  * for (e.g., the "3" of "1.3.0").
        !            81:  * @param patch The patch level component of the version checked
        !            82:  * for (e.g., the "0" of "1.3.0").
        !            83:  * @remark This macro is available with APR versions starting with
        !            84:  * 1.3.0.
        !            85:  */
        !            86: #define APR_VERSION_AT_LEAST(major,minor,patch)                    \
        !            87: (((major) < APR_MAJOR_VERSION)                                     \
        !            88:  || ((major) == APR_MAJOR_VERSION && (minor) < APR_MINOR_VERSION) \
        !            89:  || ((major) == APR_MAJOR_VERSION && (minor) == APR_MINOR_VERSION && (patch) <= APR_PATCH_VERSION))
        !            90: 
        !            91: #if defined(APR_IS_DEV_VERSION) || defined(DOXYGEN)
        !            92: /** Internal: string form of the "is dev" flag */
        !            93: #ifndef APR_IS_DEV_STRING
        !            94: #define APR_IS_DEV_STRING "-dev"
        !            95: #endif
        !            96: #else
        !            97: #define APR_IS_DEV_STRING ""
        !            98: #endif
        !            99: 
        !           100: /* APR_STRINGIFY is defined here, and also in apr_general.h, so wrap it */
        !           101: #ifndef APR_STRINGIFY
        !           102: /** Properly quote a value as a string in the C preprocessor */
        !           103: #define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
        !           104: /** Helper macro for APR_STRINGIFY */
        !           105: #define APR_STRINGIFY_HELPER(n) #n
        !           106: #endif
        !           107: 
        !           108: /** The formatted string of APR's version */
        !           109: #define APR_VERSION_STRING \
        !           110:      APR_STRINGIFY(APR_MAJOR_VERSION) "." \
        !           111:      APR_STRINGIFY(APR_MINOR_VERSION) "." \
        !           112:      APR_STRINGIFY(APR_PATCH_VERSION) \
        !           113:      APR_IS_DEV_STRING
        !           114: 
        !           115: /** An alternative formatted string of APR's version */
        !           116: /* macro for Win32 .rc files using numeric csv representation */
        !           117: #define APR_VERSION_STRING_CSV APR_MAJOR_VERSION ##, \
        !           118:                              ##APR_MINOR_VERSION ##, \
        !           119:                              ##APR_PATCH_VERSION
        !           120: 
        !           121: 
        !           122: #ifndef APR_VERSION_ONLY
        !           123: 
        !           124: /* The C language API to access the version at run time, 
        !           125:  * as opposed to compile time.  APR_VERSION_ONLY may be defined 
        !           126:  * externally when preprocessing apr_version.h to obtain strictly 
        !           127:  * the C Preprocessor macro declarations.
        !           128:  */
        !           129: 
        !           130: #include "apr.h"
        !           131: 
        !           132: #ifdef __cplusplus
        !           133: extern "C" {
        !           134: #endif
        !           135: 
        !           136: /** 
        !           137:  * The numeric version information is broken out into fields within this 
        !           138:  * structure. 
        !           139:  */
        !           140: typedef struct {
        !           141:     int major;      /**< major number */
        !           142:     int minor;      /**< minor number */
        !           143:     int patch;      /**< patch number */
        !           144:     int is_dev;     /**< is development (1 or 0) */
        !           145: } apr_version_t;
        !           146: 
        !           147: /**
        !           148:  * Return APR's version information information in a numeric form.
        !           149:  *
        !           150:  *  @param pvsn Pointer to a version structure for returning the version
        !           151:  *              information.
        !           152:  */
        !           153: APR_DECLARE(void) apr_version(apr_version_t *pvsn);
        !           154: 
        !           155: /** Return APR's version information as a string. */
        !           156: APR_DECLARE(const char *) apr_version_string(void);
        !           157: 
        !           158: #ifdef __cplusplus
        !           159: }
        !           160: #endif
        !           161: 
        !           162: #endif /* ndef APR_VERSION_ONLY */
        !           163: 
        !           164: #endif /* ndef APR_VERSION_H */

E-mail: