Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals

ures.h

Go to the documentation of this file.
00001 /*
00002 **********************************************************************
00003 *   Copyright (C) 1997-2004, International Business Machines
00004 *   Corporation and others.  All Rights Reserved.
00005 **********************************************************************
00006 *
00007 * File URES.H (formerly CRESBUND.H)
00008 *
00009 * Modification History:
00010 *
00011 *   Date        Name        Description
00012 *   04/01/97    aliu        Creation.
00013 *   02/22/99    damiba      overhaul.
00014 *   04/04/99    helena      Fixed internal header inclusion.
00015 *   04/15/99    Madhu       Updated Javadoc  
00016 *   06/14/99    stephen     Removed functions taking a filename suffix.
00017 *   07/20/99    stephen     Language-independent ypedef to void*
00018 *   11/09/99    weiv        Added ures_getLocale()
00019 *   06/24/02    weiv        Added support for resource sharing
00020 ******************************************************************************
00021 */
00022 
00023 #ifndef URES_H
00024 #define URES_H
00025 
00026 #include "unicode/utypes.h"
00027 #include "unicode/uloc.h"
00028 
00051 struct UResourceBundle;
00052 
00056 typedef struct UResourceBundle UResourceBundle;
00057 
00063 typedef enum {
00065     URES_NONE=-1,
00066 
00068     URES_STRING=0,
00069 
00071     URES_BINARY=1,
00072 
00074     URES_TABLE=2,
00075 
00083     URES_ALIAS=3,
00084 
00091     URES_TABLE32=4,
00092 
00100     URES_INT=7,
00101 
00103     URES_ARRAY=8,
00104 
00110     URES_INT_VECTOR=14,
00111 
00112 #ifndef U_HIDE_DEPRECATED_API
00113 
00114     RES_NONE=URES_NONE,
00116     RES_STRING=URES_STRING,
00118     RES_BINARY=URES_BINARY,
00120     RES_TABLE=URES_TABLE,
00122     RES_ALIAS=URES_ALIAS,
00124     RES_INT=URES_INT,
00126     RES_ARRAY=URES_ARRAY,
00128     RES_INT_VECTOR=URES_INT_VECTOR,
00129 #endif /* U_HIDE_DEPRECATED_API */
00130 
00132     RES_RESERVED=15
00133 } UResType;
00134 
00135 /*
00136  * Functions to create and destroy resource bundles.
00137  */
00138 
00166 U_STABLE UResourceBundle*  U_EXPORT2 
00167 ures_open(const char*    path,
00168           const char*  locale, 
00169           UErrorCode*     status);
00170 
00171 
00188 U_STABLE UResourceBundle* U_EXPORT2 
00189 ures_openDirect(const char* path, 
00190                 const char* locale, 
00191                 UErrorCode* status);
00192 
00208 U_STABLE UResourceBundle* U_EXPORT2 
00209 ures_openU(const UChar* path, 
00210            const char* locale, 
00211            UErrorCode* status);
00212 
00229 U_DEPRECATED int32_t U_EXPORT2 
00230 ures_countArrayItems(const UResourceBundle* resourceBundle,
00231                      const char* resourceKey,
00232                      UErrorCode* err);
00241 U_STABLE void U_EXPORT2 
00242 ures_close(UResourceBundle* resourceBundle);
00243 
00254 U_DEPRECATED const char* U_EXPORT2 
00255 ures_getVersionNumber(const UResourceBundle*   resourceBundle);
00256 
00266 U_STABLE void U_EXPORT2 
00267 ures_getVersion(const UResourceBundle* resB, 
00268                 UVersionInfo versionInfo);
00269 
00282 U_DEPRECATED const char* U_EXPORT2 
00283 ures_getLocale(const UResourceBundle* resourceBundle, 
00284                UErrorCode* status);
00285 
00286 
00299 U_DRAFT const char* U_EXPORT2 
00300 ures_getLocaleByType(const UResourceBundle* resourceBundle, 
00301                      ULocDataLocaleType type, 
00302                      UErrorCode* status);
00303 
00304 
00318 U_INTERNAL void U_EXPORT2 
00319 ures_openFillIn(UResourceBundle *r, 
00320                 const char* path,
00321                 const char* localeID, 
00322                 UErrorCode* status);
00323 
00341 U_STABLE const UChar* U_EXPORT2 
00342 ures_getString(const UResourceBundle* resourceBundle, 
00343                int32_t* len, 
00344                UErrorCode* status);
00345 
00363 U_STABLE const uint8_t* U_EXPORT2 
00364 ures_getBinary(const UResourceBundle* resourceBundle, 
00365                int32_t* len, 
00366                UErrorCode* status);
00367 
00385 U_STABLE const int32_t* U_EXPORT2 
00386 ures_getIntVector(const UResourceBundle* resourceBundle, 
00387                   int32_t* len, 
00388                   UErrorCode* status);
00389 
00406 U_STABLE uint32_t U_EXPORT2 
00407 ures_getUInt(const UResourceBundle* resourceBundle, 
00408              UErrorCode *status);
00409 
00426 U_STABLE int32_t U_EXPORT2 
00427 ures_getInt(const UResourceBundle* resourceBundle, 
00428             UErrorCode *status);
00429 
00440 U_STABLE int32_t U_EXPORT2 
00441 ures_getSize(const UResourceBundle *resourceBundle);
00442 
00451 U_STABLE UResType U_EXPORT2 
00452 ures_getType(const UResourceBundle *resourceBundle);
00453 
00462 U_STABLE const char * U_EXPORT2 
00463 ures_getKey(const UResourceBundle *resourceBundle);
00464 
00465 /* ITERATION API 
00466     This API provides means for iterating through a resource
00467 */
00468 
00475 U_STABLE void U_EXPORT2 
00476 ures_resetIterator(UResourceBundle *resourceBundle);
00477 
00485 U_STABLE UBool U_EXPORT2 
00486 ures_hasNext(const UResourceBundle *resourceBundle);
00487 
00500 U_STABLE UResourceBundle* U_EXPORT2 
00501 ures_getNextResource(UResourceBundle *resourceBundle, 
00502                      UResourceBundle *fillIn, 
00503                      UErrorCode *status);
00504 
00517 U_STABLE const UChar* U_EXPORT2 
00518 ures_getNextString(UResourceBundle *resourceBundle, 
00519                    int32_t* len, 
00520                    const char ** key, 
00521                    UErrorCode *status);
00522 
00535 U_STABLE UResourceBundle* U_EXPORT2 
00536 ures_getByIndex(const UResourceBundle *resourceBundle, 
00537                 int32_t indexR, 
00538                 UResourceBundle *fillIn, 
00539                 UErrorCode *status);
00540 
00552 U_STABLE const UChar* U_EXPORT2 
00553 ures_getStringByIndex(const UResourceBundle *resourceBundle, 
00554                       int32_t indexS, 
00555                       int32_t* len, 
00556                       UErrorCode *status);
00557 
00570 U_STABLE UResourceBundle* U_EXPORT2 
00571 ures_getByKey(const UResourceBundle *resourceBundle, 
00572               const char* key, 
00573               UResourceBundle *fillIn, 
00574               UErrorCode *status);
00575 
00588 U_STABLE const UChar* U_EXPORT2 
00589 ures_getStringByKey(const UResourceBundle *resB, 
00590                     const char* key, 
00591                     int32_t* len, 
00592                     UErrorCode *status);
00593 
00594 #ifdef XP_CPLUSPLUS
00595 #include "unicode/unistr.h"
00596 
00597 U_NAMESPACE_BEGIN
00609 inline UnicodeString 
00610 ures_getUnicodeString(const UResourceBundle *resB, 
00611                       UErrorCode* status) 
00612 {
00613     int32_t len = 0;
00614     const UChar *r = ures_getString(resB, &len, status);
00615     return UnicodeString(TRUE, r, len);
00616 }
00617 
00628 inline UnicodeString 
00629 ures_getNextUnicodeString(UResourceBundle *resB, 
00630                           const char ** key, 
00631                           UErrorCode* status) 
00632 {
00633     int32_t len = 0;
00634     const UChar* r = ures_getNextString(resB, &len, key, status);
00635     return UnicodeString(TRUE, r, len);
00636 }
00637 
00647 inline UnicodeString 
00648 ures_getUnicodeStringByIndex(const UResourceBundle *resB, 
00649                              int32_t indexS, 
00650                              UErrorCode* status) 
00651 {
00652     int32_t len = 0;
00653     const UChar* r = ures_getStringByIndex(resB, indexS, &len, status);
00654     return UnicodeString(TRUE, r, len);
00655 }
00656 
00667 inline UnicodeString 
00668 ures_getUnicodeStringByKey(const UResourceBundle *resB, 
00669                            const char* key, 
00670                            UErrorCode* status) 
00671 {
00672     int32_t len = 0;
00673     const UChar* r = ures_getStringByKey(resB, key, &len, status);
00674     return UnicodeString(TRUE, r, len);
00675 }
00676 
00677 U_NAMESPACE_END
00678 
00679 #endif
00680 
00681 
00699 U_INTERNAL UResourceBundle* U_EXPORT2 
00700 ures_getByKeyWithFallback(const UResourceBundle *resB, 
00701                           const char* inKey, 
00702                           UResourceBundle *fillIn, 
00703                           UErrorCode *status);
00704 
00705 
00714 U_DRAFT UEnumeration* U_EXPORT2
00715 ures_openAvailableLocales(const char *path, UErrorCode *status);
00716 
00717 
00718 #endif /*_URES*/
00719 /*eof*/

Generated on Tue Jul 26 00:40:02 2005 for ICU 3.2 by  doxygen 1.3.9.1