Apache Portable Runtime
|
APR Versioning Interface. More...
#include "apr.h"
Go to the source code of this file.
Data Structures | |
struct | apr_version_t |
Defines | |
#define | APR_MAJOR_VERSION 1 |
#define | APR_MINOR_VERSION 4 |
#define | APR_PATCH_VERSION 5 |
#define | APR_VERSION_AT_LEAST(major, minor, patch) |
#define | APR_IS_DEV_STRING "-dev" |
#define | APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n) |
#define | APR_STRINGIFY_HELPER(n) #n |
#define | APR_VERSION_STRING |
#define | APR_VERSION_STRING_CSV |
Functions | |
void | apr_version (apr_version_t *pvsn) |
const char * | apr_version_string (void) |
APR Versioning Interface.
APR's Version
There are several different mechanisms for accessing the version. There is a string form, and a set of numbers; in addition, there are constants which can be compiled into your application, and you can query the library being used for its actual version.
Note that it is possible for an application to detect that it has been compiled against a different version of APR by use of the compile-time constants and the use of the run-time query function.
APR version numbering follows the guidelines specified in:
#define APR_IS_DEV_STRING "-dev" |
Internal: string form of the "is dev" flag
#define APR_MAJOR_VERSION 1 |
major version Major API changes that could cause compatibility problems for older programs such as structure size changes. No binary compatibility is possible across a change in the major version.
#define APR_MINOR_VERSION 4 |
minor version Minor API changes that do not cause binary compatibility problems. Reset to 0 when upgrading APR_MAJOR_VERSION
#define APR_PATCH_VERSION 5 |
patch level The Patch Level never includes API changes, simply bug fixes. Reset to 0 when upgrading APR_MINOR_VERSION
#define APR_STRINGIFY | ( | n | ) | APR_STRINGIFY_HELPER(n) |
Properly quote a value as a string in the C preprocessor
#define APR_STRINGIFY_HELPER | ( | n | ) | #n |
Helper macro for APR_STRINGIFY
#define APR_VERSION_AT_LEAST | ( | major, | |
minor, | |||
patch | |||
) |
(((major) < APR_MAJOR_VERSION) \ || ((major) == APR_MAJOR_VERSION && (minor) < APR_MINOR_VERSION) \ || ((major) == APR_MAJOR_VERSION && (minor) == APR_MINOR_VERSION && (patch) <= APR_PATCH_VERSION))
The symbol APR_IS_DEV_VERSION is only defined for internal, "development" copies of APR. It is undefined for released versions of APR. Check at compile time if the APR version is at least a certain level.
major | The major version component of the version checked for (e.g., the "1" of "1.3.0"). |
minor | The minor version component of the version checked for (e.g., the "3" of "1.3.0"). |
patch | The patch level component of the version checked for (e.g., the "0" of "1.3.0"). |
#define APR_VERSION_STRING |
APR_STRINGIFY(APR_MAJOR_VERSION) "." \ APR_STRINGIFY(APR_MINOR_VERSION) "." \ APR_STRINGIFY(APR_PATCH_VERSION) \ APR_IS_DEV_STRING
The formatted string of APR's version
#define APR_VERSION_STRING_CSV |
APR_MAJOR_VERSION ##, \ ##APR_MINOR_VERSION ##, \ ##APR_PATCH_VERSION
An alternative formatted string of APR's version
void apr_version | ( | apr_version_t * | pvsn | ) |
Return APR's version information information in a numeric form.
pvsn | Pointer to a version structure for returning the version information. |
const char* apr_version_string | ( | void | ) |
Return APR's version information as a string.