ICU 50.2 50.2
ures.h
Go to the documentation of this file.
1/*
2**********************************************************************
3* Copyright (C) 1997-2012, 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"
29
47
52struct UResourceBundle;
53
58
127
128/*
129 * Functions to create and destroy resource bundles.
130 */
131
160U_STABLE UResourceBundle* U_EXPORT2
161ures_open(const char* packageName,
162 const char* locale,
163 UErrorCode* status);
164
165
183U_STABLE UResourceBundle* U_EXPORT2
184ures_openDirect(const char* packageName,
185 const char* locale,
186 UErrorCode* status);
187
206U_STABLE UResourceBundle* U_EXPORT2
207ures_openU(const UChar* packageName,
208 const char* locale,
209 UErrorCode* status);
210
211#ifndef U_HIDE_DEPRECATED_API
228U_DEPRECATED int32_t U_EXPORT2
230 const char* resourceKey,
231 UErrorCode* err);
232#endif /* U_HIDE_DEPRECATED_API */
241U_STABLE void U_EXPORT2
243
244#if U_SHOW_CPLUSPLUS_API
245
247
258
260
261#endif
262
263#ifndef U_HIDE_DEPRECATED_API
274U_DEPRECATED const char* U_EXPORT2
276#endif /* U_HIDE_DEPRECATED_API */
277
287U_STABLE void U_EXPORT2
289 UVersionInfo versionInfo);
290
291#ifndef U_HIDE_DEPRECATED_API
304U_DEPRECATED const char* U_EXPORT2
305ures_getLocale(const UResourceBundle* resourceBundle,
306 UErrorCode* status);
307#endif /* U_HIDE_DEPRECATED_API */
308
321U_STABLE const char* U_EXPORT2
323 ULocDataLocaleType type,
324 UErrorCode* status);
325
326
327#ifndef U_HIDE_INTERNAL_API
344U_INTERNAL void U_EXPORT2
346 const char* packageName,
347 const char* localeID,
348 UErrorCode* status);
349#endif /* U_HIDE_INTERNAL_API */
350
368U_STABLE const UChar* U_EXPORT2
369ures_getString(const UResourceBundle* resourceBundle,
370 int32_t* len,
371 UErrorCode* status);
372
420U_STABLE const char * U_EXPORT2
422 char *dest, int32_t *length,
423 UBool forceCopy,
424 UErrorCode *status);
425
443U_STABLE const uint8_t* U_EXPORT2
444ures_getBinary(const UResourceBundle* resourceBundle,
445 int32_t* len,
446 UErrorCode* status);
447
465U_STABLE const int32_t* U_EXPORT2
466ures_getIntVector(const UResourceBundle* resourceBundle,
467 int32_t* len,
468 UErrorCode* status);
469
486U_STABLE uint32_t U_EXPORT2
487ures_getUInt(const UResourceBundle* resourceBundle,
488 UErrorCode *status);
489
506U_STABLE int32_t U_EXPORT2
507ures_getInt(const UResourceBundle* resourceBundle,
508 UErrorCode *status);
509
520U_STABLE int32_t U_EXPORT2
521ures_getSize(const UResourceBundle *resourceBundle);
522
531U_STABLE UResType U_EXPORT2
532ures_getType(const UResourceBundle *resourceBundle);
533
542U_STABLE const char * U_EXPORT2
543ures_getKey(const UResourceBundle *resourceBundle);
544
545/* ITERATION API
546 This API provides means for iterating through a resource
547*/
548
555U_STABLE void U_EXPORT2
557
565U_STABLE UBool U_EXPORT2
566ures_hasNext(const UResourceBundle *resourceBundle);
567
580U_STABLE UResourceBundle* U_EXPORT2
582 UResourceBundle *fillIn,
583 UErrorCode *status);
584
597U_STABLE const UChar* U_EXPORT2
599 int32_t* len,
600 const char ** key,
601 UErrorCode *status);
602
615U_STABLE UResourceBundle* U_EXPORT2
616ures_getByIndex(const UResourceBundle *resourceBundle,
617 int32_t indexR,
618 UResourceBundle *fillIn,
619 UErrorCode *status);
620
632U_STABLE const UChar* U_EXPORT2
634 int32_t indexS,
635 int32_t* len,
636 UErrorCode *status);
637
686U_STABLE const char * U_EXPORT2
688 int32_t stringIndex,
689 char *dest, int32_t *pLength,
690 UBool forceCopy,
691 UErrorCode *status);
692
705U_STABLE UResourceBundle* U_EXPORT2
706ures_getByKey(const UResourceBundle *resourceBundle,
707 const char* key,
708 UResourceBundle *fillIn,
709 UErrorCode *status);
710
723U_STABLE const UChar* U_EXPORT2
725 const char* key,
726 int32_t* len,
727 UErrorCode *status);
728
779U_STABLE const char * U_EXPORT2
781 const char *key,
782 char *dest, int32_t *pLength,
783 UBool forceCopy,
784 UErrorCode *status);
785
786#if U_SHOW_CPLUSPLUS_API
787#include "unicode/unistr.h"
788
801inline UnicodeString
803 UErrorCode* status)
804{
805 int32_t len = 0;
806 const UChar *r = ures_getString(resB, &len, status);
807 return UnicodeString(TRUE, r, len);
808}
809
820inline UnicodeString
822 const char ** key,
823 UErrorCode* status)
824{
825 int32_t len = 0;
826 const UChar* r = ures_getNextString(resB, &len, key, status);
827 return UnicodeString(TRUE, r, len);
828}
829
839inline UnicodeString
841 int32_t indexS,
842 UErrorCode* status)
843{
844 int32_t len = 0;
845 const UChar* r = ures_getStringByIndex(resB, indexS, &len, status);
846 return UnicodeString(TRUE, r, len);
847}
848
859inline UnicodeString
861 const char* key,
862 UErrorCode* status)
863{
864 int32_t len = 0;
865 const UChar* r = ures_getStringByKey(resB, key, &len, status);
866 return UnicodeString(TRUE, r, len);
867}
868
870
871#endif
872
881U_STABLE UEnumeration* U_EXPORT2
882ures_openAvailableLocales(const char *packageName, UErrorCode *status);
883
884
885#endif /*_URES*/
886/*eof*/
"Smart pointer" class, closes a UResourceBundle via ures_close().
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition unistr.h:247
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.
struct UEnumeration UEnumeration
structure representing an enumeration object instance
Definition uenum.h:39
C API: Locale.
ULocDataLocaleType
Constants for *_getLocale() Allow user to select whether she wants information on requested,...
Definition uloc.h:336
#define U_DEPRECATED
This is used to declare a function as a deprecated public ICU C API.
Definition umachine.h:113
#define U_INTERNAL
This is used to declare a function as an internal ICU C API.
Definition umachine.h:117
int8_t UBool
The ICU boolean type.
Definition umachine.h:200
#define TRUE
The TRUE value of a UBool.
Definition umachine.h:204
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:278
#define U_STABLE
This is used to declare a function as a stable public ICU C API.
Definition umachine.h:109
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.
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:821
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:64
@ RES_BINARY
Definition ures.h:110
@ URES_TABLE
Resource type constant for tables of key-value pairs.
Definition ures.h:75
@ RES_ARRAY
Definition ures.h:118
@ URES_ALIAS
Resource type constant for aliases; internally stores a string which identifies the actual resource s...
Definition ures.h:84
@ URES_INT_VECTOR
Resource type constant for vectors of 32-bit integers.
Definition ures.h:103
@ URES_BINARY
Resource type constant for binary data.
Definition ures.h:72
@ RES_NONE
Definition ures.h:106
@ URES_ARRAY
Resource type constant for arrays of resources.
Definition ures.h:96
@ URES_NONE
Resource type constant for "no resource".
Definition ures.h:66
@ RES_RESERVED
Definition ures.h:122
@ URES_STRING
Resource type constant for 16-bit Unicode strings.
Definition ures.h:69
@ RES_INT_VECTOR
Definition ures.h:120
@ URES_INT
Resource type constant for a single 28-bit integer, interpreted as signed or unsigned by the ures_get...
Definition ures.h:93
@ RES_TABLE
Definition ures.h:112
@ RES_STRING
Definition ures.h:108
@ RES_ALIAS
Definition ures.h:114
@ RES_INT
Definition ures.h:116
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:57
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.
U_NAMESPACE_BEGIN UnicodeString ures_getUnicodeString(const UResourceBundle *resB, UErrorCode *status)
returns a string from a string resource type
Definition ures.h:802
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.
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:860
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 ...
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:840
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:476
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition uversion.h:130
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
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition uversion.h:129