• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2 *****************************************************************************************
3 * Copyright (C) 2010-2012, 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  * @draft ICU 50
27  */
28 enum UGender {
29     /**
30      * Male gender.
31      * @draft ICU 50
32      */
33     UGENDER_MALE,
34     /**
35      * Female gender.
36      * @draft ICU 50
37      */
38     UGENDER_FEMALE,
39     /**
40      * Neutral gender.
41      * @draft ICU 50
42      */
43     UGENDER_OTHER
44 };
45 /**
46  * @draft ICU 50
47  */
48 typedef enum UGender UGender;
49 
50 /**
51  * Opaque UGenderInfo object for use in C programs.
52  * @draft 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  * @return A UGenderInfo for the specified locale, or NULL if an error occurred.
61  * @draft ICU 50
62  */
63 U_STABLE const UGenderInfo* U_EXPORT2
64 ugender_getInstance(const char *locale, UErrorCode *status);
65 
66 
67 /**
68  * Given a list, returns the gender of the list as a whole.
69  * @param genderInfo pointer that ugender_getInstance returns.
70  * @param genders the gender of each element in the list.
71  * @param size the size of the list.
72  * @param status A pointer to a UErrorCode to receive any errors.
73  * @return The gender of the list.
74  * @draft ICU 50
75  */
76 U_DRAFT UGender U_EXPORT2
77 ugender_getListGender(const UGenderInfo* genderinfo, const UGender *genders, int32_t size, UErrorCode *status);
78 
79 #endif /* #if !UCONFIG_NO_FORMATTING */
80 
81 #endif
82