|
1 /* |
|
2 ***************************************************************************************** |
|
3 * Copyright (C) 2010-2013, International Business Machines |
|
4 * Corporation and others. All Rights Reserved. |
|
5 ***************************************************************************************** |
|
6 */ |
|
7 |
|
8 #ifndef UGENDER_H |
|
9 #define UGENDER_H |
|
10 |
|
11 #include "unicode/utypes.h" |
|
12 |
|
13 #if !UCONFIG_NO_FORMATTING |
|
14 |
|
15 #include "unicode/localpointer.h" |
|
16 |
|
17 /** |
|
18 * \file |
|
19 * \brief C API: The purpose of this API is to compute the gender of a list as a |
|
20 * whole given the gender of each element. |
|
21 * |
|
22 */ |
|
23 |
|
24 /** |
|
25 * Genders |
|
26 * @stable ICU 50 |
|
27 */ |
|
28 enum UGender { |
|
29 /** |
|
30 * Male gender. |
|
31 * @stable ICU 50 |
|
32 */ |
|
33 UGENDER_MALE, |
|
34 /** |
|
35 * Female gender. |
|
36 * @stable ICU 50 |
|
37 */ |
|
38 UGENDER_FEMALE, |
|
39 /** |
|
40 * Neutral gender. |
|
41 * @stable ICU 50 |
|
42 */ |
|
43 UGENDER_OTHER |
|
44 }; |
|
45 /** |
|
46 * @stable ICU 50 |
|
47 */ |
|
48 typedef enum UGender UGender; |
|
49 |
|
50 /** |
|
51 * Opaque UGenderInfo object for use in C programs. |
|
52 * @stable ICU 50 |
|
53 */ |
|
54 struct UGenderInfo; |
|
55 typedef struct UGenderInfo UGenderInfo; |
|
56 |
|
57 /** |
|
58 * Opens a new UGenderInfo object given locale. |
|
59 * @param locale The locale for which the rules are desired. |
|
60 * @param status UErrorCode pointer |
|
61 * @return A UGenderInfo for the specified locale, or NULL if an error occurred. |
|
62 * @stable ICU 50 |
|
63 */ |
|
64 U_STABLE const UGenderInfo* U_EXPORT2 |
|
65 ugender_getInstance(const char *locale, UErrorCode *status); |
|
66 |
|
67 |
|
68 /** |
|
69 * Given a list, returns the gender of the list as a whole. |
|
70 * @param genderInfo pointer that ugender_getInstance returns. |
|
71 * @param genders the gender of each element in the list. |
|
72 * @param size the size of the list. |
|
73 * @param status A pointer to a UErrorCode to receive any errors. |
|
74 * @return The gender of the list. |
|
75 * @stable ICU 50 |
|
76 */ |
|
77 U_STABLE UGender U_EXPORT2 |
|
78 ugender_getListGender(const UGenderInfo* genderinfo, const UGender *genders, int32_t size, UErrorCode *status); |
|
79 |
|
80 #endif /* #if !UCONFIG_NO_FORMATTING */ |
|
81 |
|
82 #endif |