1/*
2*******************************************************************************
3*
4*   Copyright (C) 1998-2011, International Business Machines
5*   Corporation and others.  All Rights Reserved.
6*
7*******************************************************************************
8*
9* File locbund.h
10*
11* Modification History:
12*
13*   Date        Name        Description
14*   10/16/98    stephen     Creation.
15*   02/25/99    stephen     Modified for new C API.
16*******************************************************************************
17*/
18
19#ifndef LOCBUND_H
20#define LOCBUND_H
21
22#include "unicode/utypes.h"
23
24#if !UCONFIG_NO_FORMATTING
25
26#include "unicode/unum.h"
27
28#define ULOCALEBUNDLE_NUMBERFORMAT_COUNT ((int32_t)UNUM_SPELLOUT)
29
30typedef struct ULocaleBundle {
31    char            *fLocale;
32
33    UNumberFormat   *fNumberFormat[ULOCALEBUNDLE_NUMBERFORMAT_COUNT];
34    UBool           isInvariantLocale;
35} ULocaleBundle;
36
37
38/**
39 * Initialize a ULocaleBundle, initializing all formatters to 0.
40 * @param result A ULocaleBundle to initialize.
41 * @param loc The locale of the ULocaleBundle.
42 * @return A pointer to a ULocaleBundle, or 0 if <TT>loc</TT> was invalid.
43 */
44U_CAPI ULocaleBundle *
45u_locbund_init(ULocaleBundle *result, const char *loc);
46
47/**
48 * Create a new ULocaleBundle, initializing all formatters to 0.
49 * @param loc The locale of the ULocaleBundle.
50 * @return A pointer to a ULocaleBundle, or 0 if <TT>loc</TT> was invalid.
51 */
52/*U_CAPI  ULocaleBundle *
53u_locbund_new(const char *loc);*/
54
55/**
56 * Create a deep copy of this ULocaleBundle;
57 * @param bundle The ULocaleBundle to clone.
58 * @return A new ULocaleBundle.
59 */
60/*U_CAPI ULocaleBundle *
61u_locbund_clone(const ULocaleBundle *bundle);*/
62
63/**
64 * Delete the specified ULocaleBundle, freeing all associated memory.
65 * @param bundle The ULocaleBundle to delete
66 */
67U_CAPI void
68u_locbund_close(ULocaleBundle *bundle);
69
70/**
71 * Get the NumberFormat used to format and parse numbers in a ULocaleBundle.
72 * @param bundle The ULocaleBundle to use
73 * @return A pointer to the NumberFormat used for number formatting and parsing.
74 */
75U_CAPI UNumberFormat *
76u_locbund_getNumberFormat(ULocaleBundle *bundle, UNumberFormatStyle style);
77
78#endif /* #if !UCONFIG_NO_FORMATTING */
79
80#endif
81