00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
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
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,
00130 RES_RESERVED=15
00131 } UResType;
00132
00133
00134
00135
00136
00164 U_CAPI UResourceBundle* U_EXPORT2
00165 ures_open(const char* path,
00166 const char* locale,
00167 UErrorCode* status);
00168
00169
00186 U_CAPI UResourceBundle* U_EXPORT2
00187 ures_openDirect(const char* path,
00188 const char* locale,
00189 UErrorCode* status);
00190
00206 U_CAPI UResourceBundle* U_EXPORT2
00207 ures_openU(const UChar* path,
00208 const char* locale,
00209 UErrorCode* status);
00210
00227 U_CAPI int32_t U_EXPORT2
00228 ures_countArrayItems(const UResourceBundle* resourceBundle,
00229 const char* resourceKey,
00230 UErrorCode* err);
00239 U_CAPI void U_EXPORT2
00240 ures_close(UResourceBundle* resourceBundle);
00241
00252 U_CAPI const char* U_EXPORT2
00253 ures_getVersionNumber(const UResourceBundle* resourceBundle);
00254
00264 U_CAPI void U_EXPORT2
00265 ures_getVersion(const UResourceBundle* resB,
00266 UVersionInfo versionInfo);
00267
00280 U_CAPI const char* U_EXPORT2
00281 ures_getLocale(const UResourceBundle* resourceBundle,
00282 UErrorCode* status);
00283
00284
00297 U_CAPI const char* U_EXPORT2
00298 ures_getLocaleByType(const UResourceBundle* resourceBundle,
00299 ULocDataLocaleType type,
00300 UErrorCode* status);
00301
00302
00316 U_CAPI void U_EXPORT2
00317 ures_openFillIn(UResourceBundle *r,
00318 const char* path,
00319 const char* localeID,
00320 UErrorCode* status);
00321
00339 U_CAPI const UChar* U_EXPORT2
00340 ures_getString(const UResourceBundle* resourceBundle,
00341 int32_t* len,
00342 UErrorCode* status);
00343
00361 U_CAPI const uint8_t* U_EXPORT2
00362 ures_getBinary(const UResourceBundle* resourceBundle,
00363 int32_t* len,
00364 UErrorCode* status);
00365
00383 U_CAPI const int32_t* U_EXPORT2
00384 ures_getIntVector(const UResourceBundle* resourceBundle,
00385 int32_t* len,
00386 UErrorCode* status);
00387
00404 U_CAPI uint32_t U_EXPORT2
00405 ures_getUInt(const UResourceBundle* resourceBundle,
00406 UErrorCode *status);
00407
00424 U_CAPI int32_t U_EXPORT2
00425 ures_getInt(const UResourceBundle* resourceBundle,
00426 UErrorCode *status);
00427
00438 U_CAPI int32_t U_EXPORT2
00439 ures_getSize(UResourceBundle *resourceBundle);
00440
00449 U_CAPI UResType U_EXPORT2
00450 ures_getType(UResourceBundle *resourceBundle);
00451
00460 U_CAPI const char * U_EXPORT2
00461 ures_getKey(UResourceBundle *resourceBundle);
00462
00463
00464
00465
00466
00473 U_CAPI void U_EXPORT2
00474 ures_resetIterator(UResourceBundle *resourceBundle);
00475
00483 U_CAPI UBool U_EXPORT2
00484 ures_hasNext(UResourceBundle *resourceBundle);
00485
00498 U_CAPI UResourceBundle* U_EXPORT2
00499 ures_getNextResource(UResourceBundle *resourceBundle,
00500 UResourceBundle *fillIn,
00501 UErrorCode *status);
00502
00515 U_CAPI const UChar* U_EXPORT2
00516 ures_getNextString(UResourceBundle *resourceBundle,
00517 int32_t* len,
00518 const char ** key,
00519 UErrorCode *status);
00520
00533 U_CAPI UResourceBundle* U_EXPORT2
00534 ures_getByIndex(const UResourceBundle *resourceBundle,
00535 int32_t indexR,
00536 UResourceBundle *fillIn,
00537 UErrorCode *status);
00538
00550 U_CAPI const UChar* U_EXPORT2
00551 ures_getStringByIndex(const UResourceBundle *resourceBundle,
00552 int32_t indexS,
00553 int32_t* len,
00554 UErrorCode *status);
00555
00568 U_CAPI UResourceBundle* U_EXPORT2
00569 ures_getByKey(const UResourceBundle *resourceBundle,
00570 const char* key,
00571 UResourceBundle *fillIn,
00572 UErrorCode *status);
00573
00586 U_CAPI const UChar* U_EXPORT2
00587 ures_getStringByKey(const UResourceBundle *resB,
00588 const char* key,
00589 int32_t* len,
00590 UErrorCode *status);
00591
00592 #ifdef XP_CPLUSPLUS
00593 #include "unicode/unistr.h"
00594
00595 U_NAMESPACE_BEGIN
00607 inline UnicodeString
00608 ures_getUnicodeString(const UResourceBundle *resB,
00609 UErrorCode* status)
00610 {
00611 int32_t len = 0;
00612 const UChar *r = ures_getString(resB, &len, status);
00613 return UnicodeString(TRUE, r, len);
00614 }
00615
00626 inline UnicodeString
00627 ures_getNextUnicodeString(UResourceBundle *resB,
00628 const char ** key,
00629 UErrorCode* status)
00630 {
00631 int32_t len = 0;
00632 const UChar* r = ures_getNextString(resB, &len, key, status);
00633 return UnicodeString(TRUE, r, len);
00634 }
00635
00645 inline UnicodeString
00646 ures_getUnicodeStringByIndex(const UResourceBundle *resB,
00647 int32_t indexS,
00648 UErrorCode* status)
00649 {
00650 int32_t len = 0;
00651 const UChar* r = ures_getStringByIndex(resB, indexS, &len, status);
00652 return UnicodeString(TRUE, r, len);
00653 }
00654
00665 inline UnicodeString
00666 ures_getUnicodeStringByKey(const UResourceBundle *resB,
00667 const char* key,
00668 UErrorCode* status)
00669 {
00670 int32_t len = 0;
00671 const UChar* r = ures_getStringByKey(resB, key, &len, status);
00672 return UnicodeString(TRUE, r, len);
00673 }
00674
00675 U_NAMESPACE_END
00676
00677 #endif
00678
00679 #endif
00680