1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/* 2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru****************************************************************************** 3ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 459d709d503bab6e2b61931737e662dd293b40578ccornelius* Copyright (C) 1996-2013, International Business Machines Corporation 5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* and others. All Rights Reserved. 6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru****************************************************************************** 8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* File resbund.h 10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* CREATED BY 12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Richard Gillam 13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Modification History: 15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Date Name Description 17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 2/5/97 aliu Added scanForLocaleInFile. Added 18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* constructor which attempts to read resource bundle 19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* from a specific file, without searching other files. 20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 2/11/97 aliu Added UErrorCode return values to constructors. Fixed 21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* infinite loops in scanForFile and scanForLocale. 22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Modified getRawResourceData to not delete storage 23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* in localeData and resourceData which it doesn't own. 24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Added Mac compatibility #ifdefs for tellp() and 25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* ios::nocreate. 26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 2/18/97 helena Updated with 100% documentation coverage. 27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 3/13/97 aliu Rewrote to load in entire resource bundle and store 28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* it as a Hashtable of ResourceBundleData objects. 29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Added state table to govern parsing of files. 30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Modified to load locale index out of new file 31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* distinct from default.txt. 32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 3/25/97 aliu Modified to support 2-d arrays, needed for timezone 33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* data. Added support for custom file suffixes. Again, 34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* needed to support timezone data. 35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 4/7/97 aliu Cleaned up. 36ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 03/02/99 stephen Removed dependency on FILE*. 37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 03/29/99 helena Merged Bertrand and Stephen's changes. 38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 06/11/99 stephen Removed parsing of .txt files. 39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Reworked to use new binary format. 40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Cleaned up. 41ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 06/14/99 stephen Removed methods taking a filename suffix. 42ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 11/09/99 weiv Added getLocale(), fRealLocale, removed fRealLocaleID 43ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru****************************************************************************** 44ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*/ 45ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 46ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifndef RESBUND_H 47ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define RESBUND_H 48ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 49ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/utypes.h" 50ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/uobject.h" 51ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/ures.h" 52ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/unistr.h" 53ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/locid.h" 54ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 55ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 56ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * \file 57ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * \brief C++ API: Resource Bundle 58ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 59ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 60ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_NAMESPACE_BEGIN 61ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 62ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 63ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * A class representing a collection of resource information pertaining to a given 64ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * locale. A resource bundle provides a way of accessing locale- specfic information in 65ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * a data file. You create a resource bundle that manages the resources for a given 66ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * locale and then ask it for individual resources. 67ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * <P> 68ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Resource bundles in ICU4C are currently defined using text files which conform to the following 69ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * <a href="http://source.icu-project.org/repos/icu/icuhtml/trunk/design/bnf_rb.txt">BNF definition</a>. 70ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * More on resource bundle concepts and syntax can be found in the 71ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * <a href="http://icu-project.org/userguide/ResourceManagement.html">Users Guide</a>. 72ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * <P> 73ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 74ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * The ResourceBundle class is not suitable for subclassing. 75ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 76ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 77ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 78ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclass U_COMMON_API ResourceBundle : public UObject { 79ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querupublic: 80ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 81ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Constructor 82ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 83ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param packageName The packageName and locale together point to an ICU udata object, 84ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * as defined by <code> udata_open( packageName, "res", locale, err) </code> 85ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * or equivalent. Typically, packageName will refer to a (.dat) file, or to 86ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * a package registered with udata_setAppData(). Using a full file or directory 87ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * pathname for packageName is deprecated. 88ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param locale This is the locale this resource bundle is for. To get resources 89ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * for the French locale, for example, you would create a 90ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * ResourceBundle passing Locale::FRENCH for the "locale" parameter, 91ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * and all subsequent calls to that resource bundle will return 92ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * resources that pertain to the French locale. If the caller doesn't 93ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * pass a locale parameter, the default locale for the system (as 94ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * returned by Locale::getDefault()) will be used. 95ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param err The Error Code. 96ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * The UErrorCode& err parameter is used to return status information to the user. To 97ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * check whether the construction succeeded or not, you should check the value of 98ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * U_SUCCESS(err). If you wish more detailed information, you can check for 99ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * informational error results which still indicate success. U_USING_FALLBACK_WARNING 100ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * indicates that a fall back locale was used. For example, 'de_CH' was requested, 101ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * but nothing was found there, so 'de' was used. U_USING_DEFAULT_WARNING indicates that 102ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * the default locale data was used; neither the requested locale nor any of its 103ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * fall back locales could be found. 104ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 105ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 106ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ResourceBundle(const UnicodeString& packageName, 107ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru const Locale& locale, 108ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UErrorCode& err); 109ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 110ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 111ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Construct a resource bundle for the default bundle in the specified package. 112ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 113ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param packageName The packageName and locale together point to an ICU udata object, 114ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * as defined by <code> udata_open( packageName, "res", locale, err) </code> 115ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * or equivalent. Typically, packageName will refer to a (.dat) file, or to 116ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * a package registered with udata_setAppData(). Using a full file or directory 117ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * pathname for packageName is deprecated. 118ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param err A UErrorCode value 119ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 120ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 121ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ResourceBundle(const UnicodeString& packageName, 122ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UErrorCode& err); 123ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 124ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 125ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Construct a resource bundle for the ICU default bundle. 126ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 127ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param err A UErrorCode value 128ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 129ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 130ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ResourceBundle(UErrorCode &err); 131ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 132ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 133ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Standard constructor, onstructs a resource bundle for the locale-specific 134ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * bundle in the specified package. 135ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 136ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param packageName The packageName and locale together point to an ICU udata object, 137ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * as defined by <code> udata_open( packageName, "res", locale, err) </code> 138ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * or equivalent. Typically, packageName will refer to a (.dat) file, or to 139ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * a package registered with udata_setAppData(). Using a full file or directory 140ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * pathname for packageName is deprecated. 141ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * NULL is used to refer to ICU data. 142ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param locale The locale for which to open a resource bundle. 143ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param err A UErrorCode value 144ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 145ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 146ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ResourceBundle(const char* packageName, 147ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru const Locale& locale, 148ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UErrorCode& err); 149ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 150ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 151ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Copy constructor. 152ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 153ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param original The resource bundle to copy. 154ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 155ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 156ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ResourceBundle(const ResourceBundle &original); 157ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 158ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 159ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Constructor from a C UResourceBundle. The resource bundle is 160ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * copied and not adopted. ures_close will still need to be used on the 161ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * original resource bundle. 162ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 163ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param res A pointer to the C resource bundle. 164ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param status A UErrorCode value. 165ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 166ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 167ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ResourceBundle(UResourceBundle *res, 168ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UErrorCode &status); 169ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 170ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 171ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Assignment operator. 172ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 173ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param other The resource bundle to copy. 174ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 175ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 176ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ResourceBundle& 177ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru operator=(const ResourceBundle& other); 178ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 179ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** Destructor. 180ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 181ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 182ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru virtual ~ResourceBundle(); 183ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 184ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 185ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Clone this object. 186ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Clones can be used concurrently in multiple threads. 187ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * If an error occurs, then NULL is returned. 188ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * The caller must delete the clone. 189ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 190ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return a clone of this object 191ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 192ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @see getDynamicClassID 193ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.8 194ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 195ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ResourceBundle *clone() const; 196ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 197ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 198ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Returns the size of a resource. Size for scalar types is always 1, and for vector/table types is 199ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * the number of child resources. 200ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @warning Integer array is treated as a scalar type. There are no 201ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * APIs to access individual members of an integer array. It 202ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * is always returned as a whole. 203ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 204ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return number of resources in a given resource. 205ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 206ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 207ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru int32_t 208ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru getSize(void) const; 209ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 210ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 211ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * returns a string from a string resource type 212ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 213ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param status fills in the outgoing error code 214ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found 215ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * could be a warning 216ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAULT_WARNING </TT> 217ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return a pointer to a zero-terminated UChar array which lives in a memory mapped/DLL file. 218ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 219ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 220ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UnicodeString 221ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru getString(UErrorCode& status) const; 222ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 223ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 224ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * returns a binary data from a resource. Can be used at most primitive resource types (binaries, 225ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * strings, ints) 226ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 227ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param len fills in the length of resulting byte chunk 228ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param status fills in the outgoing error code 229ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found 230ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * could be a warning 231ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAULT_WARNING </TT> 232ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return a pointer to a chunk of unsigned bytes which live in a memory mapped/DLL file. 233ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 234ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 235ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru const uint8_t* 236ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru getBinary(int32_t& len, UErrorCode& status) const; 237ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 238ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 239ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 240ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * returns an integer vector from a resource. 241ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 242ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param len fills in the length of resulting integer vector 243ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param status fills in the outgoing error code 244ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found 245ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * could be a warning 246ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAULT_WARNING </TT> 247ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return a pointer to a vector of integers that lives in a memory mapped/DLL file. 248ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 249ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 250ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru const int32_t* 251ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru getIntVector(int32_t& len, UErrorCode& status) const; 252ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 253ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 254ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * returns an unsigned integer from a resource. 255ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * This integer is originally 28 bits. 256ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 257ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param status fills in the outgoing error code 258ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found 259ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * could be a warning 260ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAULT_WARNING </TT> 261ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return an unsigned integer value 262ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 263ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 264ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru uint32_t 265ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru getUInt(UErrorCode& status) const; 266ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 267ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 268ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * returns a signed integer from a resource. 269ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * This integer is originally 28 bit and the sign gets propagated. 270ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 271ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param status fills in the outgoing error code 272ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found 273ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * could be a warning 274ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAULT_WARNING </TT> 275ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return a signed integer value 276ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 277ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 278ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru int32_t 279ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru getInt(UErrorCode& status) const; 280ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 281ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 282ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Checks whether the resource has another element to iterate over. 283ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 284ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return TRUE if there are more elements, FALSE if there is no more elements 285ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 286ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 287ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UBool 288ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru hasNext(void) const; 289ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 290ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 291ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Resets the internal context of a resource so that iteration starts from the first element. 292ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 293ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 294ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 295ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru void 296ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru resetIterator(void); 297ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 298ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 299ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Returns the key associated with this resource. Not all the resources have a key - only 300ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * those that are members of a table. 301ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 302ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return a key associated to this resource, or NULL if it doesn't have a key 303ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 304ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 305ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru const char* 306ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru getKey(void) const; 307ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 308ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 309ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Gets the locale ID of the resource bundle as a string. 310ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Same as getLocale().getName() . 311ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 312ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return the locale ID of the resource bundle as a string 313ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 314ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 315ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru const char* 316ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru getName(void) const; 317ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 318ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 319ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 320ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Returns the type of a resource. Available types are defined in enum UResType 321ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 322ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return type of the given resource. 323ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 324ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 325ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UResType 326ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru getType(void) const; 327ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 328ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 329ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Returns the next resource in a given resource or NULL if there are no more resources 330ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 331ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param status fills in the outgoing error code 332ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return ResourceBundle object. 333ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 334ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 335ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ResourceBundle 336ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru getNext(UErrorCode& status); 337ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 338ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 339ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Returns the next string in a resource or NULL if there are no more resources 340ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * to iterate over. 341ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 342ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param status fills in the outgoing error code 343ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return an UnicodeString object. 344ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 345ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 346ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UnicodeString 347ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru getNextString(UErrorCode& status); 348ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 349ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 350ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Returns the next string in a resource or NULL if there are no more resources 351ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * to iterate over. 352ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 353ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param key fill in for key associated with this string 354ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param status fills in the outgoing error code 355ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return an UnicodeString object. 356ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 357ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 358ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UnicodeString 359ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru getNextString(const char ** key, 360ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UErrorCode& status); 361ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 362ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 363ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Returns the resource in a resource at the specified index. 364ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 365ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param index an index to the wanted resource. 366ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param status fills in the outgoing error code 367ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return ResourceBundle object. If there is an error, resource is invalid. 368ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 369ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 370ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ResourceBundle 371ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru get(int32_t index, 372ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UErrorCode& status) const; 373ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 374ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 375ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Returns the string in a given resource at the specified index. 376ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 377ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param index an index to the wanted string. 378ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param status fills in the outgoing error code 379ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return an UnicodeString object. If there is an error, string is bogus 380ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 381ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 382ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UnicodeString 383ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru getStringEx(int32_t index, 384ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UErrorCode& status) const; 385ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 386ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 387ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Returns a resource in a resource that has a given key. This procedure works only with table 388ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * resources. 389ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 390ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param key a key associated with the wanted resource 391ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param status fills in the outgoing error code. 392ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return ResourceBundle object. If there is an error, resource is invalid. 393ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 394ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 395ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ResourceBundle 396ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru get(const char* key, 397ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UErrorCode& status) const; 398ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 399ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 400ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Returns a string in a resource that has a given key. This procedure works only with table 401ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * resources. 402ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 403ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param key a key associated with the wanted string 404ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param status fills in the outgoing error code 405ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return an UnicodeString object. If there is an error, string is bogus 406ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 407ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 408ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UnicodeString 409ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru getStringEx(const char* key, 410ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UErrorCode& status) const; 411ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 41283a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef U_HIDE_DEPRECATED_API 413ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 414ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Return the version number associated with this ResourceBundle as a string. Please 415ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * use getVersion, as this method is going to be deprecated. 416ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 417ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return A version number string as specified in the resource bundle or its parent. 418ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * The caller does not own this string. 419ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @see getVersion 420ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @deprecated ICU 2.8 Use getVersion instead. 421ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 422ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru const char* 423ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru getVersionNumber(void) const; 42483a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#endif /* U_HIDE_DEPRECATED_API */ 425ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 426ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 427ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Return the version number associated with this ResourceBundle as a UVersionInfo array. 428ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 429ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param versionInfo A UVersionInfo array that is filled with the version number 430ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * as specified in the resource bundle or its parent. 431ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 432ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 433ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru void 434ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru getVersion(UVersionInfo versionInfo) const; 435ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 43683a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef U_HIDE_DEPRECATED_API 437ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 438ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Return the Locale associated with this ResourceBundle. 439ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 440ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return a Locale object 441ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @deprecated ICU 2.8 Use getLocale(ULocDataLocaleType type, UErrorCode &status) overload instead. 442ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 443ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru const Locale& 444ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru getLocale(void) const; 44583a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#endif /* U_HIDE_DEPRECATED_API */ 446ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 447ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 448ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Return the Locale associated with this ResourceBundle. 449ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param type You can choose between requested, valid and actual 450ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * locale. For description see the definition of 451ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * ULocDataLocaleType in uloc.h 452ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param status just for catching illegal arguments 453ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 454ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return a Locale object 455ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.8 456ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 457ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru const Locale 458ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru getLocale(ULocDataLocaleType type, UErrorCode &status) const; 45983a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef U_HIDE_INTERNAL_API 460ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 461ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * This API implements multilevel fallback 462ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 463ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 464ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ResourceBundle 465ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru getWithFallback(const char* key, UErrorCode& status); 46683a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#endif /* U_HIDE_INTERNAL_API */ 467ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 468ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * ICU "poor man's RTTI", returns a UClassID for the actual class. 469ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 470ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.2 471ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 472ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru virtual UClassID getDynamicClassID() const; 473ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 474ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 475ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * ICU "poor man's RTTI", returns a UClassID for this class. 476ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 477ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.2 478ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 479ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru static UClassID U_EXPORT2 getStaticClassID(); 480ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 481ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruprivate: 482ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ResourceBundle(); // default constructor not implemented 483ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 484ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UResourceBundle *fResource; 485ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru void constructForLocale(const UnicodeString& path, const Locale& locale, UErrorCode& error); 486ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru Locale *fLocale; 487ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}; 488ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 489ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_NAMESPACE_END 490ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif 491