ICU 62.1 62.1
ures.h
Go to the documentation of this file.
1// © 2016 and later: Unicode, Inc. and others.
2// License & terms of use: http://www.unicode.org/copyright.html
3/*
4**********************************************************************
5* Copyright (C) 1997-2016, International Business Machines
6* Corporation and others. All Rights Reserved.
7**********************************************************************
8*
9* File URES.H (formerly CRESBUND.H)
10*
11* Modification History:
12*
13* Date Name Description
14* 04/01/97 aliu Creation.
15* 02/22/99 damiba overhaul.
16* 04/04/99 helena Fixed internal header inclusion.
17* 04/15/99 Madhu Updated Javadoc
18* 06/14/99 stephen Removed functions taking a filename suffix.
19* 07/20/99 stephen Language-independent typedef to void*
20* 11/09/99 weiv Added ures_getLocale()
21* 06/24/02 weiv Added support for resource sharing
22******************************************************************************
23*/
24
25#ifndef URES_H
26#define URES_H
27
28#include "unicode/utypes.h"
29#include "unicode/uloc.h"
31
54struct UResourceBundle;
55
60
133
134/*
135 * Functions to create and destroy resource bundles.
136 */
137
166U_STABLE UResourceBundle* U_EXPORT2
167ures_open(const char* packageName,
168 const char* locale,
169 UErrorCode* status);
170
171
189U_STABLE UResourceBundle* U_EXPORT2
190ures_openDirect(const char* packageName,
191 const char* locale,
192 UErrorCode* status);
193
212U_STABLE UResourceBundle* U_EXPORT2
213ures_openU(const UChar* packageName,
214 const char* locale,
215 UErrorCode* status);
216
217#ifndef U_HIDE_DEPRECATED_API
234U_DEPRECATED int32_t U_EXPORT2
236 const char* resourceKey,
237 UErrorCode* err);
238#endif /* U_HIDE_DEPRECATED_API */
239
248U_STABLE void U_EXPORT2
250
251#if U_SHOW_CPLUSPLUS_API
252
254
265
267
268#endif
269
270#ifndef U_HIDE_DEPRECATED_API
281U_DEPRECATED const char* U_EXPORT2
283#endif /* U_HIDE_DEPRECATED_API */
284
294U_STABLE void U_EXPORT2
296 UVersionInfo versionInfo);
297
298#ifndef U_HIDE_DEPRECATED_API
311U_DEPRECATED const char* U_EXPORT2
312ures_getLocale(const UResourceBundle* resourceBundle,
313 UErrorCode* status);
314#endif /* U_HIDE_DEPRECATED_API */
315
328U_STABLE const char* U_EXPORT2
331 UErrorCode* status);
332
333
334#ifndef U_HIDE_INTERNAL_API
351U_INTERNAL void U_EXPORT2
353 const char* packageName,
354 const char* localeID,
355 UErrorCode* status);
356#endif /* U_HIDE_INTERNAL_API */
357
375U_STABLE const UChar* U_EXPORT2
376ures_getString(const UResourceBundle* resourceBundle,
377 int32_t* len,
378 UErrorCode* status);
379
427U_STABLE const char * U_EXPORT2
429 char *dest, int32_t *length,
430 UBool forceCopy,
431 UErrorCode *status);
432
450U_STABLE const uint8_t* U_EXPORT2
451ures_getBinary(const UResourceBundle* resourceBundle,
452 int32_t* len,
453 UErrorCode* status);
454
472U_STABLE const int32_t* U_EXPORT2
473ures_getIntVector(const UResourceBundle* resourceBundle,
474 int32_t* len,
475 UErrorCode* status);
476
493U_STABLE uint32_t U_EXPORT2
494ures_getUInt(const UResourceBundle* resourceBundle,
495 UErrorCode *status);
496
513U_STABLE int32_t U_EXPORT2
514ures_getInt(const UResourceBundle* resourceBundle,
515 UErrorCode *status);
516
527U_STABLE int32_t U_EXPORT2
528ures_getSize(const UResourceBundle *resourceBundle);
529
538U_STABLE UResType U_EXPORT2
539ures_getType(const UResourceBundle *resourceBundle);
540
549U_STABLE const char * U_EXPORT2
550ures_getKey(const UResourceBundle *resourceBundle);
551
552/* ITERATION API
553 This API provides means for iterating through a resource
554*/
555
562U_STABLE void U_EXPORT2
564
572U_STABLE UBool U_EXPORT2
573ures_hasNext(const UResourceBundle *resourceBundle);
574
587U_STABLE UResourceBundle* U_EXPORT2
589 UResourceBundle *fillIn,
590 UErrorCode *status);
591
604U_STABLE const UChar* U_EXPORT2
606 int32_t* len,
607 const char ** key,
608 UErrorCode *status);
609
622U_STABLE UResourceBundle* U_EXPORT2
623ures_getByIndex(const UResourceBundle *resourceBundle,
624 int32_t indexR,
625 UResourceBundle *fillIn,
626 UErrorCode *status);
627
639U_STABLE const UChar* U_EXPORT2
641 int32_t indexS,
642 int32_t* len,
643 UErrorCode *status);
644
693U_STABLE const char * U_EXPORT2
695 int32_t stringIndex,
696 char *dest, int32_t *pLength,
697 UBool forceCopy,
698 UErrorCode *status);
699
712U_STABLE UResourceBundle* U_EXPORT2
713ures_getByKey(const UResourceBundle *resourceBundle,
714 const char* key,
715 UResourceBundle *fillIn,
716 UErrorCode *status);
717
730U_STABLE const UChar* U_EXPORT2
732 const char* key,
733 int32_t* len,
734 UErrorCode *status);
735
786U_STABLE const char * U_EXPORT2
788 const char *key,
789 char *dest, int32_t *pLength,
790 UBool forceCopy,
791 UErrorCode *status);
792
793#if U_SHOW_CPLUSPLUS_API
794#include "unicode/unistr.h"
795
808inline UnicodeString
811 int32_t len = 0;
812 const UChar *r = ures_getString(resB, &len, status);
813 if(U_SUCCESS(*status)) {
814 result.setTo(TRUE, r, len);
815 } else {
816 result.setToBogus();
817 }
818 return result;
819}
820
833inline UnicodeString
836 int32_t len = 0;
837 const UChar* r = ures_getNextString(resB, &len, key, status);
838 if(U_SUCCESS(*status)) {
839 result.setTo(TRUE, r, len);
840 } else {
841 result.setToBogus();
842 }
843 return result;
844}
845
855inline UnicodeString
858 int32_t len = 0;
859 const UChar* r = ures_getStringByIndex(resB, indexS, &len, status);
860 if(U_SUCCESS(*status)) {
861 result.setTo(TRUE, r, len);
862 } else {
863 result.setToBogus();
864 }
865 return result;
866}
867
878inline UnicodeString
881 int32_t len = 0;
882 const UChar* r = ures_getStringByKey(resB, key, &len, status);
883 if(U_SUCCESS(*status)) {
884 result.setTo(TRUE, r, len);
885 } else {
886 result.setToBogus();
887 }
888 return result;
889}
890
892
893#endif
894
903U_STABLE UEnumeration* U_EXPORT2
904ures_openAvailableLocales(const char *packageName, UErrorCode *status);
905
906
907#endif /*_URES*/
908/*eof*/
"Smart pointer" class, closes a UResourceBundle via ures_close().
"Smart pointer" base class; do not use directly: use LocalPointer etc.
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition unistr.h:287
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
"Smart pointer" definition macro, deletes objects via the closeFunction.
UnicodeString ures_getUnicodeString(const UResourceBundle *resB, UErrorCode *status)
Returns the string value from a string resource bundle.
Definition ures.h:809
UnicodeString ures_getUnicodeStringByIndex(const UResourceBundle *resB, int32_t indexS, UErrorCode *status)
Returns the string in a given resource array or table at the specified index.
Definition ures.h:856
UnicodeString ures_getNextUnicodeString(UResourceBundle *resB, const char **key, UErrorCode *status)
Returns the next string in a resource, or an empty string if there are no more resources to iterate o...
Definition ures.h:834
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:879
struct UEnumeration UEnumeration
structure representing an enumeration object instance
Definition uenum.h:43
C API: Locale.
ULocDataLocaleType
Constants for *_getLocale() Allow user to select whether she wants information on requested,...
Definition uloc.h:338
#define U_DEPRECATED
This is used to declare a function as a deprecated public ICU C API
Definition umachine.h:115
#define U_INTERNAL
This is used to declare a function as an internal ICU C API
Definition umachine.h:119
int8_t UBool
The ICU boolean type.
Definition umachine.h:236
uint16_t UChar
The base type for UTF-16 code units and pointers.
Definition umachine.h:353
#define TRUE
The TRUE value of a UBool.
Definition umachine.h:240
#define U_STABLE
This is used to declare a function as a stable public ICU C API.
Definition umachine.h:111
C++ API: Unicode String.
int32_t ures_countArrayItems(const UResourceBundle *resourceBundle, const char *resourceKey, UErrorCode *err)
Returns the number of strings/arrays in resource bundles.
const char * ures_getVersionNumber(const UResourceBundle *resourceBundle)
Return the version number associated with this ResourceBundle as a string.
void ures_getVersion(const UResourceBundle *resB, UVersionInfo versionInfo)
Return the version number associated with this ResourceBundle as an UVersionInfo array.
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.
const int32_t * ures_getIntVector(const UResourceBundle *resourceBundle, int32_t *len, UErrorCode *status)
Returns a 32 bit integer array from a resource.
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.
UResType
Numeric constants for types of resource items.
Definition ures.h:66
@ RES_BINARY
Definition ures.h:112
@ URES_TABLE
Resource type constant for tables of key-value pairs.
Definition ures.h:77
@ RES_ARRAY
Definition ures.h:120
@ URES_ALIAS
Resource type constant for aliases; internally stores a string which identifies the actual resource s...
Definition ures.h:86
@ URES_INT_VECTOR
Resource type constant for vectors of 32-bit integers.
Definition ures.h:105
@ URES_BINARY
Resource type constant for binary data.
Definition ures.h:74
@ RES_NONE
Definition ures.h:108
@ URES_ARRAY
Resource type constant for arrays of resources.
Definition ures.h:98
@ URES_NONE
Resource type constant for "no resource".
Definition ures.h:68
@ RES_RESERVED
Definition ures.h:124
@ URES_STRING
Resource type constant for 16-bit Unicode strings.
Definition ures.h:71
@ RES_INT_VECTOR
Definition ures.h:122
@ URES_INT
Resource type constant for a single 28-bit integer, interpreted as signed or unsigned by the ures_get...
Definition ures.h:95
@ RES_TABLE
Definition ures.h:114
@ RES_STRING
Definition ures.h:110
@ RES_ALIAS
Definition ures.h:116
@ RES_INT
Definition ures.h:118
@ URES_LIMIT
One more than the highest normal UResType value.
Definition ures.h:130
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,...
UResourceBundle * ures_getByIndex(const UResourceBundle *resourceBundle, int32_t indexR, UResourceBundle *fillIn, UErrorCode *status)
Returns the resource in a given resource at the specified index.
int32_t ures_getSize(const UResourceBundle *resourceBundle)
Returns the size of a resource.
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.
struct UResourceBundle UResourceBundle
Definition ures.h:59
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.
UResType ures_getType(const UResourceBundle *resourceBundle)
Returns the type of a resource.
UBool ures_hasNext(const UResourceBundle *resourceBundle)
Checks whether the given resource has another element to iterate over.
const char * ures_getLocale(const UResourceBundle *resourceBundle, UErrorCode *status)
Return the name of the Locale associated with this ResourceBundle.
const uint8_t * ures_getBinary(const UResourceBundle *resourceBundle, int32_t *len, UErrorCode *status)
Returns a binary data from a binary resource.
UResourceBundle * ures_openU(const UChar *packageName, const char *locale, UErrorCode *status)
Same as ures_open() but takes a const UChar *path.
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.
uint32_t ures_getUInt(const UResourceBundle *resourceBundle, UErrorCode *status)
Returns an unsigned integer from a resource.
const char * ures_getKey(const UResourceBundle *resourceBundle)
Returns the key associated with a given resource.
void ures_resetIterator(UResourceBundle *resourceBundle)
Resets the internal context of a resource so that iteration starts from the first element.
int32_t ures_getInt(const UResourceBundle *resourceBundle, UErrorCode *status)
Returns a signed integer from a resource.
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.
UResourceBundle * ures_openDirect(const char *packageName, const char *locale, UErrorCode *status)
This function does not care what kind of localeID is passed in.
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.
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.
UEnumeration * ures_openAvailableLocales(const char *packageName, UErrorCode *status)
Create a string enumerator, owned by the caller, of all locales located within the specified resource...
void ures_close(UResourceBundle *resourceBundle)
Close a resource bundle, all pointers returned from the various ures_getXXX calls on this particular ...
const UChar * ures_getString(const UResourceBundle *resourceBundle, int32_t *len, UErrorCode *status)
Returns a string from a string resource type.
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.
const char * ures_getLocaleByType(const UResourceBundle *resourceBundle, ULocDataLocaleType type, UErrorCode *status)
Return the name of the Locale associated with this ResourceBundle.
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers,...
Definition utypes.h:396
#define U_SUCCESS(x)
Does the error code indicate success?
Definition utypes.h:689
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition uversion.h:138
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:59
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition uversion.h:137