ICU 56.1: ures.h Source File

ICU 56.1 56.1

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- File List
- Globals

ures.h
Go to the documentation of this file.
1 /*
2 **********************************************************************
3 * Copyright (C) 1997-2012,2014, International Business Machines
4 * Corporation and others. All Rights Reserved.
5 **********************************************************************
6 *
7 * File URES.H (formerly CRESBUND.H)
8 *
9 * Modification History:
10 *
11 * Date Name Description
12 * 04/01/97 aliu Creation.
13 * 02/22/99 damiba overhaul.
14 * 04/04/99 helena Fixed internal header inclusion.
15 * 04/15/99 Madhu Updated Javadoc
16 * 06/14/99 stephen Removed functions taking a filename suffix.
17 * 07/20/99 stephen Language-independent ypedef to void*
18 * 11/09/99 weiv Added ures_getLocale()
19 * 06/24/02 weiv Added support for resource sharing
20 ******************************************************************************
21 */
22
23 #ifndef URES_H
24 #define URES_H
25
26 #include "unicode/utypes.h"
27 #include "unicode/uloc.h"
28 #include "unicode/localpointer.h"
29
52 struct UResourceBundle;
53
57 typedef struct UResourceBundle UResourceBundle;
58
64 typedef enum {
66 URES_NONE=-1,
67
69 URES_STRING=0,
70
72 URES_BINARY=1,
73
75 URES_TABLE=2,
76
84 URES_ALIAS=3,
85
93 URES_INT=7,
94
96 URES_ARRAY=8,
97
103 URES_INT_VECTOR = 14,
104 #ifndef U_HIDE_DEPRECATED_API
105
106 RES_NONE=URES_NONE,
108 RES_STRING=URES_STRING,
110 RES_BINARY=URES_BINARY,
112 RES_TABLE=URES_TABLE,
114 RES_ALIAS=URES_ALIAS,
116 RES_INT=URES_INT,
118 RES_ARRAY=URES_ARRAY,
120 RES_INT_VECTOR=URES_INT_VECTOR,
122 RES_RESERVED=15,
123 #endif /* U_HIDE_DEPRECATED_API */
124
125 URES_LIMIT = 16
126 } UResType;
127
128 /*
129 * Functions to create and destroy resource bundles.
130 */
131
160 U_STABLE UResourceBundle* U_EXPORT2
161 ures_open(const char* packageName,
162 const char* locale,
163 UErrorCode* status);
164
165
183 U_STABLE UResourceBundle* U_EXPORT2
184 ures_openDirect(const char* packageName,
185 const char* locale,
186 UErrorCode* status);
187
206 U_STABLE UResourceBundle* U_EXPORT2
207 ures_openU(const UChar* packageName,
208 const char* locale,
209 UErrorCode* status);
210
211 #ifndef U_HIDE_DEPRECATED_API
212
228 U_DEPRECATED int32_t U_EXPORT2
229 ures_countArrayItems(const UResourceBundle* resourceBundle,
230 const char* resourceKey,
231 UErrorCode* err);
232 #endif /* U_HIDE_DEPRECATED_API */
233
242 U_STABLE void U_EXPORT2
243 ures_close(UResourceBundle* resourceBundle);
244
245 #if U_SHOW_CPLUSPLUS_API
246
247 U_NAMESPACE_BEGIN
248
258 U_DEFINE_LOCAL_OPEN_POINTER(LocalUResourceBundlePointer, UResourceBundle, ures_close);
259
260 U_NAMESPACE_END
261
262 #endif
263
264 #ifndef U_HIDE_DEPRECATED_API
265
275 U_DEPRECATED const char* U_EXPORT2
276 ures_getVersionNumber(const UResourceBundle* resourceBundle);
277 #endif /* U_HIDE_DEPRECATED_API */
278
288 U_STABLE void U_EXPORT2
289 ures_getVersion(const UResourceBundle* resB,
290 UVersionInfo versionInfo);
291
292 #ifndef U_HIDE_DEPRECATED_API
293
305 U_DEPRECATED const char* U_EXPORT2
306 ures_getLocale(const UResourceBundle* resourceBundle,
307 UErrorCode* status);
308 #endif /* U_HIDE_DEPRECATED_API */
309
322 U_STABLE const char* U_EXPORT2
323 ures_getLocaleByType(const UResourceBundle* resourceBundle,
324 ULocDataLocaleType type,
325 UErrorCode* status);
326
327
328 #ifndef U_HIDE_INTERNAL_API
329
345 U_INTERNAL void U_EXPORT2
346 ures_openFillIn(UResourceBundle *r,
347 const char* packageName,
348 const char* localeID,
349 UErrorCode* status);
350 #endif /* U_HIDE_INTERNAL_API */
351
369 U_STABLE const UChar* U_EXPORT2
370 ures_getString(const UResourceBundle* resourceBundle,
371 int32_t* len,
372 UErrorCode* status);
373
421 U_STABLE const char * U_EXPORT2
422 ures_getUTF8String(const UResourceBundle *resB,
423 char *dest, int32_t *length,
424 UBool forceCopy,
425 UErrorCode *status);
426
444 U_STABLE const uint8_t* U_EXPORT2
445 ures_getBinary(const UResourceBundle* resourceBundle,
446 int32_t* len,
447 UErrorCode* status);
448
466 U_STABLE const int32_t* U_EXPORT2
467 ures_getIntVector(const UResourceBundle* resourceBundle,
468 int32_t* len,
469 UErrorCode* status);
470
487 U_STABLE uint32_t U_EXPORT2
488 ures_getUInt(const UResourceBundle* resourceBundle,
489 UErrorCode *status);
490
507 U_STABLE int32_t U_EXPORT2
508 ures_getInt(const UResourceBundle* resourceBundle,
509 UErrorCode *status);
510
521 U_STABLE int32_t U_EXPORT2
522 ures_getSize(const UResourceBundle *resourceBundle);
523
532 U_STABLE UResType U_EXPORT2
533 ures_getType(const UResourceBundle *resourceBundle);
534
543 U_STABLE const char * U_EXPORT2
544 ures_getKey(const UResourceBundle *resourceBundle);
545
546 /* ITERATION API
547 This API provides means for iterating through a resource
548 */
549
556 U_STABLE void U_EXPORT2
557 ures_resetIterator(UResourceBundle *resourceBundle);
558
566 U_STABLE UBool U_EXPORT2
567 ures_hasNext(const UResourceBundle *resourceBundle);
568
581 U_STABLE UResourceBundle* U_EXPORT2
582 ures_getNextResource(UResourceBundle *resourceBundle,
583 UResourceBundle *fillIn,
584 UErrorCode *status);
585
598 U_STABLE const UChar* U_EXPORT2
599 ures_getNextString(UResourceBundle *resourceBundle,
600 int32_t* len,
601 const char ** key,
602 UErrorCode *status);
603
616 U_STABLE UResourceBundle* U_EXPORT2
617 ures_getByIndex(const UResourceBundle *resourceBundle,
618 int32_t indexR,
619 UResourceBundle *fillIn,
620 UErrorCode *status);
621
633 U_STABLE const UChar* U_EXPORT2
634 ures_getStringByIndex(const UResourceBundle *resourceBundle,
635 int32_t indexS,
636 int32_t* len,
637 UErrorCode *status);
638
687 U_STABLE const char * U_EXPORT2
688 ures_getUTF8StringByIndex(const UResourceBundle *resB,
689 int32_t stringIndex,
690 char *dest, int32_t *pLength,
691 UBool forceCopy,
692 UErrorCode *status);
693
706 U_STABLE UResourceBundle* U_EXPORT2
707 ures_getByKey(const UResourceBundle *resourceBundle,
708 const char* key,
709 UResourceBundle *fillIn,
710 UErrorCode *status);
711
724 U_STABLE const UChar* U_EXPORT2
725 ures_getStringByKey(const UResourceBundle *resB,
726 const char* key,
727 int32_t* len,
728 UErrorCode *status);
729
780 U_STABLE const char * U_EXPORT2
781 ures_getUTF8StringByKey(const UResourceBundle *resB,
782 const char *key,
783 char *dest, int32_t *pLength,
784 UBool forceCopy,
785 UErrorCode *status);
786
787 #if U_SHOW_CPLUSPLUS_API
788 #include "unicode/unistr.h"
789
790 U_NAMESPACE_BEGIN
802 inline UnicodeString
803 ures_getUnicodeString(const UResourceBundle *resB,
804 UErrorCode* status)
805 {
806 int32_t len = 0;
807 const UChar *r = ures_getString(resB, &len, status);
808 return UnicodeString(TRUE, r, len);
809 }
810
821 inline UnicodeString
822 ures_getNextUnicodeString(UResourceBundle *resB,
823 const char ** key,
824 UErrorCode* status)
825 {
826 int32_t len = 0;
827 const UChar* r = ures_getNextString(resB, &len, key, status);
828 return UnicodeString(TRUE, r, len);
829 }
830
840 inline UnicodeString
841 ures_getUnicodeStringByIndex(const UResourceBundle *resB,
842 int32_t indexS,
843 UErrorCode* status)
844 {
845 int32_t len = 0;
846 const UChar* r = ures_getStringByIndex(resB, indexS, &len, status);
847 return UnicodeString(TRUE, r, len);
848 }
849
860 inline UnicodeString
861 ures_getUnicodeStringByKey(const UResourceBundle *resB,
862 const char* key,
863 UErrorCode* status)
864 {
865 int32_t len = 0;
866 const UChar* r = ures_getStringByKey(resB, key, &len, status);
867 return UnicodeString(TRUE, r, len);
868 }
869
870 U_NAMESPACE_END
871
872 #endif
873
882 U_STABLE UEnumeration* U_EXPORT2
883 ures_openAvailableLocales(const char *packageName, UErrorCode *status);
884
885
886 #endif /*_URES*/
887 /*eof*/
UVersionInfo
uint8_t UVersionInfo[U_MAX_VERSION_LENGTH]
The binary form of a version on ICU APIs is an array of 4 uint8_t.
Definition: uversion.h:57
ures_openU
UResourceBundle * ures_openU(const UChar *packageName, const char *locale, UErrorCode *status)
Same as ures_open() but takes a const UChar *path.
ures_getString
const UChar * ures_getString(const UResourceBundle *resourceBundle, int32_t *len, UErrorCode *status)
Returns a string from a string resource type.
ures_hasNext
UBool ures_hasNext(const UResourceBundle *resourceBundle)
Checks whether the given resource has another element to iterate over.
URES_BINARY
Resource type constant for binary data.
Definition: ures.h:72
ures_getUTF8String
const char * ures_getUTF8String(const UResourceBundle *resB, char *dest, int32_t *length, UBool forceCopy, UErrorCode *status)
Returns a UTF-8 string from a string resource.
RES_ARRAY
Definition: ures.h:118
ures_getUTF8StringByIndex
const char * ures_getUTF8StringByIndex(const UResourceBundle *resB, int32_t stringIndex, char *dest, int32_t *pLength, UBool forceCopy, UErrorCode *status)
Returns a UTF-8 string from a resource at the specified index.
URES_INT_VECTOR
Resource type constant for vectors of 32-bit integers.
Definition: ures.h:103
ures_getInt
int32_t ures_getInt(const UResourceBundle *resourceBundle, UErrorCode *status)
Returns a signed integer from a resource.
RES_INT_VECTOR
Definition: ures.h:120
RES_NONE
Definition: ures.h:106
ures_getVersion
void ures_getVersion(const UResourceBundle *resB, UVersionInfo versionInfo)
Return the version number associated with this ResourceBundle as an UVersionInfo array.
unistr.h
C++ API: Unicode String.
UEnumeration
struct UEnumeration UEnumeration
structure representing an enumeration object instance
Definition: uenum.h:39
icu::ures_getUnicodeString
UnicodeString ures_getUnicodeString(const UResourceBundle *resB, UErrorCode *status)
returns a string from a string resource type
Definition: ures.h:803
ures_getKey
const char * ures_getKey(const UResourceBundle *resourceBundle)
Returns the key associated with a given resource.
RES_ALIAS
Definition: ures.h:114
U_INTERNAL
#define U_INTERNAL
This is used to declare a function as an internal ICU C API.
Definition: umachine.h:117
ures_getUTF8StringByKey
const char * ures_getUTF8StringByKey(const UResourceBundle *resB, const char *key, char *dest, int32_t *pLength, UBool forceCopy, UErrorCode *status)
Returns a UTF-8 string from a resource and a key.
ures_getByIndex
UResourceBundle * ures_getByIndex(const UResourceBundle *resourceBundle, int32_t indexR, UResourceBundle *fillIn, UErrorCode *status)
Returns the resource in a given resource at the specified index.
ures_getVersionNumber
const char * ures_getVersionNumber(const UResourceBundle *resourceBundle)
Return the version number associated with this ResourceBundle as a string.
ures_openDirect
UResourceBundle * ures_openDirect(const char *packageName, const char *locale, UErrorCode *status)
This function does not care what kind of localeID is passed in.
URES_NONE
Resource type constant for "no resource".
Definition: ures.h:66
ures_open
UResourceBundle * ures_open(const char *packageName, const char *locale, UErrorCode *status)
Opens a UResourceBundle, from which users can extract strings by using their corresponding keys...
U_DEPRECATED
#define U_DEPRECATED
This is used to declare a function as a deprecated public ICU C API.
Definition: umachine.h:113
URES_INT
Resource type constant for a single 28-bit integer, interpreted as signed or unsigned by the ures_get...
Definition: ures.h:93
ures_getNextString
const UChar * ures_getNextString(UResourceBundle *resourceBundle, int32_t *len, const char **key, UErrorCode *status)
Returns the next string in a given resource or NULL if there are no more resources to iterate over...
ures_getBinary
const uint8_t * ures_getBinary(const UResourceBundle *resourceBundle, int32_t *len, UErrorCode *status)
Returns a binary data from a binary resource.
U_NAMESPACE_BEGIN
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition: uversion.h:129
icu::ures_getNextUnicodeString
UnicodeString ures_getNextUnicodeString(UResourceBundle *resB, const char **key, UErrorCode *status)
Returns the next string in a resource or NULL if there are no more resources to iterate over...
Definition: ures.h:822
RES_RESERVED
Definition: ures.h:122
LocalUResourceBundlePointer
"Smart pointer" class, closes a UResourceBundle via ures_close().
U_DEFINE_LOCAL_OPEN_POINTER
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
"Smart pointer" definition macro, deletes objects via the closeFunction.
Definition: localpointer.h:535
localpointer.h
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
URES_TABLE
Resource type constant for tables of key-value pairs.
Definition: ures.h:75
ures_getSize
int32_t ures_getSize(const UResourceBundle *resourceBundle)
Returns the size of a resource.
UResType
UResType
Numeric constants for types of resource items.
Definition: ures.h:64
TRUE
#define TRUE
The TRUE value of a UBool.
Definition: umachine.h:238
ures_getLocale
const char * ures_getLocale(const UResourceBundle *resourceBundle, UErrorCode *status)
Return the name of the Locale associated with this ResourceBundle.
ures_resetIterator
void ures_resetIterator(UResourceBundle *resourceBundle)
Resets the internal context of a resource so that iteration starts from the first element...
URES_ARRAY
Resource type constant for arrays of resources.
Definition: ures.h:96
ures_countArrayItems
int32_t ures_countArrayItems(const UResourceBundle *resourceBundle, const char *resourceKey, UErrorCode *err)
Returns the number of strings/arrays in resource bundles.
UChar
uint16_t UChar
Define UChar to be UCHAR_TYPE, if that is #defined (for example, to char16_t), or wchar_t if that is ...
Definition: umachine.h:312
RES_BINARY
Definition: ures.h:110
ures_getType
UResType ures_getType(const UResourceBundle *resourceBundle)
Returns the type of a resource.
U_NAMESPACE_END
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition: uversion.h:130
ures_getUInt
uint32_t ures_getUInt(const UResourceBundle *resourceBundle, UErrorCode *status)
Returns an unsigned integer from a resource.
ures_getIntVector
const int32_t * ures_getIntVector(const UResourceBundle *resourceBundle, int32_t *len, UErrorCode *status)
Returns a 32 bit integer array from a resource.
ures_getStringByIndex
const UChar * ures_getStringByIndex(const UResourceBundle *resourceBundle, int32_t indexS, int32_t *len, UErrorCode *status)
Returns the string in a given resource at the specified index.
UErrorCode
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
Definition: utypes.h:476
ULocDataLocaleType
ULocDataLocaleType
Constants for *_getLocale() Allow user to select whether she wants information on requested...
Definition: uloc.h:336
RES_INT
Definition: ures.h:116
ures_getStringByKey
const UChar * ures_getStringByKey(const UResourceBundle *resB, const char *key, int32_t *len, UErrorCode *status)
Returns a string in a given resource that has a given key.
URES_STRING
Resource type constant for 16-bit Unicode strings.
Definition: ures.h:69
ures_openAvailableLocales
UEnumeration * ures_openAvailableLocales(const char *packageName, UErrorCode *status)
Create a string enumerator, owned by the caller, of all locales located within the specified resource...
ures_getLocaleByType
const char * ures_getLocaleByType(const UResourceBundle *resourceBundle, ULocDataLocaleType type, UErrorCode *status)
Return the name of the Locale associated with this ResourceBundle.
ures_getByKey
UResourceBundle * ures_getByKey(const UResourceBundle *resourceBundle, const char *key, UResourceBundle *fillIn, UErrorCode *status)
Returns a resource in a given resource that has a given key.
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
RES_STRING
Definition: ures.h:108
icu::ures_getUnicodeStringByKey
UnicodeString ures_getUnicodeStringByKey(const UResourceBundle *resB, const char *key, UErrorCode *status)
Returns a string in a resource that has a given key.
Definition: ures.h:861
icu::ures_getUnicodeStringByIndex
UnicodeString ures_getUnicodeStringByIndex(const UResourceBundle *resB, int32_t indexS, UErrorCode *status)
Returns the string in a given resource at the specified index.
Definition: ures.h:841
icu::UnicodeString
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:293
RES_TABLE
Definition: ures.h:112
UResourceBundle
struct UResourceBundle UResourceBundle
Definition: ures.h:57
ures_openFillIn
void ures_openFillIn(UResourceBundle *r, const char *packageName, const char *localeID, UErrorCode *status)
Same as ures_open() but uses the fill-in parameter instead of allocating a bundle, if r!=NULL.
URES_ALIAS
Resource type constant for aliases; internally stores a string which identifies the actual resource s...
Definition: ures.h:84
ures_getNextResource
UResourceBundle * ures_getNextResource(UResourceBundle *resourceBundle, UResourceBundle *fillIn, UErrorCode *status)
Returns the next resource in a given resource or NULL if there are no more resources to iterate over...
ures_close
void ures_close(UResourceBundle *resourceBundle)
Close a resource bundle, all pointers returned from the various ures_getXXX calls on this particular ...
U_STABLE
#define U_STABLE
This is used to declare a function as a stable public ICU C API.
Definition: umachine.h:109
UBool
int8_t UBool
The ICU boolean type.
Definition: umachine.h:234
uloc.h
C API: Locale.