ICU 50.1.2  50.1.2
resbund.h
Go to the documentation of this file.
1 /*
2 ******************************************************************************
3 *
4 * Copyright (C) 1996-2011, International Business Machines Corporation
5 * and others. All Rights Reserved.
6 *
7 ******************************************************************************
8 *
9 * File resbund.h
10 *
11 * CREATED BY
12 * Richard Gillam
13 *
14 * Modification History:
15 *
16 * Date Name Description
17 * 2/5/97 aliu Added scanForLocaleInFile. Added
18 * constructor which attempts to read resource bundle
19 * from a specific file, without searching other files.
20 * 2/11/97 aliu Added UErrorCode return values to constructors. Fixed
21 * infinite loops in scanForFile and scanForLocale.
22 * Modified getRawResourceData to not delete storage
23 * in localeData and resourceData which it doesn't own.
24 * Added Mac compatibility #ifdefs for tellp() and
25 * ios::nocreate.
26 * 2/18/97 helena Updated with 100% documentation coverage.
27 * 3/13/97 aliu Rewrote to load in entire resource bundle and store
28 * it as a Hashtable of ResourceBundleData objects.
29 * Added state table to govern parsing of files.
30 * Modified to load locale index out of new file
31 * distinct from default.txt.
32 * 3/25/97 aliu Modified to support 2-d arrays, needed for timezone
33 * data. Added support for custom file suffixes. Again,
34 * needed to support timezone data.
35 * 4/7/97 aliu Cleaned up.
36 * 03/02/99 stephen Removed dependency on FILE*.
37 * 03/29/99 helena Merged Bertrand and Stephen's changes.
38 * 06/11/99 stephen Removed parsing of .txt files.
39 * Reworked to use new binary format.
40 * Cleaned up.
41 * 06/14/99 stephen Removed methods taking a filename suffix.
42 * 11/09/99 weiv Added getLocale(), fRealLocale, removed fRealLocaleID
43 ******************************************************************************
44 */
45 
46 #ifndef RESBUND_H
47 #define RESBUND_H
48 
49 #include "unicode/utypes.h"
50 #include "unicode/uobject.h"
51 #include "unicode/ures.h"
52 #include "unicode/unistr.h"
53 #include "unicode/locid.h"
54 
61 
79 public:
106  ResourceBundle(const UnicodeString& packageName,
107  const Locale& locale,
108  UErrorCode& err);
109 
121  ResourceBundle(const UnicodeString& packageName,
122  UErrorCode& err);
123 
131 
146  ResourceBundle(const char* packageName,
147  const Locale& locale,
148  UErrorCode& err);
149 
156  ResourceBundle(const ResourceBundle &original);
157 
168  UErrorCode &status);
169 
177  operator=(const ResourceBundle& other);
178 
182  virtual ~ResourceBundle();
183 
195  ResourceBundle *clone() const;
196 
207  int32_t
208  getSize(void) const;
209 
221  getString(UErrorCode& status) const;
222 
235  const uint8_t*
236  getBinary(int32_t& len, UErrorCode& status) const;
237 
238 
250  const int32_t*
251  getIntVector(int32_t& len, UErrorCode& status) const;
252 
264  uint32_t
265  getUInt(UErrorCode& status) const;
266 
278  int32_t
279  getInt(UErrorCode& status) const;
280 
287  UBool
288  hasNext(void) const;
289 
295  void
296  resetIterator(void);
297 
305  const char*
306  getKey(void) const;
307 
315  const char*
316  getName(void) const;
317 
318 
325  UResType
326  getType(void) const;
327 
336  getNext(UErrorCode& status);
337 
347  getNextString(UErrorCode& status);
348 
359  getNextString(const char ** key,
360  UErrorCode& status);
361 
371  get(int32_t index,
372  UErrorCode& status) const;
373 
383  getStringEx(int32_t index,
384  UErrorCode& status) const;
385 
396  get(const char* key,
397  UErrorCode& status) const;
398 
409  getStringEx(const char* key,
410  UErrorCode& status) const;
411 
412 #ifndef U_HIDE_DEPRECATED_API
413 
422  const char*
423  getVersionNumber(void) const;
424 #endif /* U_HIDE_DEPRECATED_API */
425 
433  void
434  getVersion(UVersionInfo versionInfo) const;
435 
436 #ifndef U_HIDE_DEPRECATED_API
437 
443  const Locale&
444  getLocale(void) const;
445 #endif /* U_HIDE_DEPRECATED_API */
446 
457  const Locale
458  getLocale(ULocDataLocaleType type, UErrorCode &status) const;
459 #ifndef U_HIDE_INTERNAL_API
460 
465  getWithFallback(const char* key, UErrorCode& status);
466 #endif /* U_HIDE_INTERNAL_API */
467 
472  virtual UClassID getDynamicClassID() const;
473 
479  static UClassID U_EXPORT2 getStaticClassID();
480 
481 private:
482  ResourceBundle(); // default constructor not implemented
483 
484  UResourceBundle *fResource;
485  void constructForLocale(const UnicodeString& path, const Locale& locale, UErrorCode& error);
486  Locale *fLocale;
487 
488 };
489 
491 #endif
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
virtual UClassID getDynamicClassID() const =0
ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class.
C++ API: Unicode String.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Definition: uobject.h:96
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition: uversion.h:129
A class representing a collection of resource information pertaining to a given locale.
Definition: resbund.h:78
UResType
Numeric constants for types of resource items.
Definition: ures.h:64
C++ API: Common ICU base class UObject.
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition: uversion.h:130
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
Definition: utypes.h:476
ULocDataLocaleType
Constants for *_getLocale() Allow user to select whether she wants information on requested...
Definition: uloc.h:336
C++ API: Locale ID object.
Basic definitions for ICU, for both C and C++ APIs.
#define U_COMMON_API
Set to export library symbols from inside the common library, and to import them from outside...
Definition: utypes.h:357
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:246
struct UResourceBundle UResourceBundle
Definition: ures.h:57
UObject is the common ICU "boilerplate" class.
Definition: uobject.h:229
C API: Resource Bundle.
int8_t UBool
The ICU boolean type.
Definition: umachine.h:200
A Locale object represents a specific geographical, political, or cultural region.
Definition: locid.h:182