ICU 4.8.1.1  4.8.1.1
uversion.h
Go to the documentation of this file.
00001 /*
00002 *******************************************************************************
00003 *   Copyright (C) 2000-2010, International Business Machines
00004 *   Corporation and others.  All Rights Reserved.
00005 *******************************************************************************
00006 *
00007 *   file name:  uversion.h
00008 *   encoding:   US-ASCII
00009 *   tab size:   8 (not used)
00010 *   indentation:4
00011 *
00012 *   Created by: Vladimir Weinstein
00013 *
00014 *  Gets included by utypes.h and Windows .rc files
00015 */
00016 
00021 /*===========================================================================*/
00022 /* Main ICU version information                                              */
00023 /*===========================================================================*/
00024 
00025 #ifndef UVERSION_H
00026 #define UVERSION_H
00027 
00028 #include "unicode/umachine.h"
00029 
00030 /* Actual version info lives in uvernum.h */
00031 #include "unicode/uvernum.h"
00032 
00036 #define U_COPYRIGHT_STRING_LENGTH  128
00037 
00041 #define U_MAX_VERSION_LENGTH 4
00042 
00046 #define U_VERSION_DELIMITER '.'
00047 
00051 #define U_MAX_VERSION_STRING_LENGTH 20
00052 
00057 typedef uint8_t UVersionInfo[U_MAX_VERSION_LENGTH];
00058 
00059 /*===========================================================================*/
00060 /* C++ namespace if supported. Versioned unless versioning is disabled.      */
00061 /*===========================================================================*/
00062 
00101 /* Define namespace symbols if the compiler supports it. */
00102 #ifdef XP_CPLUSPLUS
00103 #if U_HAVE_NAMESPACE
00104 #   if U_DISABLE_RENAMING
00105 #       define U_ICU_NAMESPACE icu
00106         namespace U_ICU_NAMESPACE { }
00107 #   else
00108 #       define U_ICU_NAMESPACE U_ICU_ENTRY_POINT_RENAME(icu)
00109         namespace U_ICU_NAMESPACE { }
00110         namespace icu = U_ICU_NAMESPACE;
00111 #   endif
00112 
00113 #   define U_NAMESPACE_BEGIN extern "C++" { namespace U_ICU_NAMESPACE {
00114 #   define U_NAMESPACE_END } }
00115 #   define U_NAMESPACE_USE using namespace U_ICU_NAMESPACE;
00116 #   define U_NAMESPACE_QUALIFIER U_ICU_NAMESPACE::
00117 
00118 #   ifndef U_USING_ICU_NAMESPACE
00119 #       define U_USING_ICU_NAMESPACE 1
00120 #   endif
00121 #   if U_USING_ICU_NAMESPACE
00122         U_NAMESPACE_USE
00123 #   endif
00124 #else
00125 #   define U_NAMESPACE_BEGIN extern "C++" {
00126 #   define U_NAMESPACE_END }
00127 #   define U_NAMESPACE_USE
00128 #   define U_NAMESPACE_QUALIFIER
00129 #endif
00130 #else
00131 #   define U_NAMESPACE_BEGIN
00132 #   define U_NAMESPACE_END
00133 #   define U_NAMESPACE_USE
00134 #   define U_NAMESPACE_QUALIFIER
00135 #endif
00136 
00137 /*===========================================================================*/
00138 /* General version helper functions. Definitions in putil.c                  */
00139 /*===========================================================================*/
00140 
00152 U_STABLE void U_EXPORT2
00153 u_versionFromString(UVersionInfo versionArray, const char *versionString);
00154 
00166 U_STABLE void U_EXPORT2
00167 u_versionFromUString(UVersionInfo versionArray, const UChar *versionString);
00168 
00169 
00182 U_STABLE void U_EXPORT2
00183 u_versionToString(UVersionInfo versionArray, char *versionString);
00184 
00193 U_STABLE void U_EXPORT2
00194 u_getVersion(UVersionInfo versionArray);
00195 #endif
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines