• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #ifndef U_HIDE_DRAFT_API
15 
16 #include "unicode/localpointer.h"
17 
18 /**
19  * \file
20  * \brief C API: The purpose of this API is to compute the gender of a list as a
21  * whole given the gender of each element.
22  *
23  */
24 
25 /**
26  * Genders
27  * @draft ICU 50
28  */
29 enum UGender {
30     /**
31      * Male gender.
32      * @draft ICU 50
33      */
34     UGENDER_MALE,
35     /**
36      * Female gender.
37      * @draft ICU 50
38      */
39     UGENDER_FEMALE,
40     /**
41      * Neutral gender.
42      * @draft ICU 50
43      */
44     UGENDER_OTHER
45 };
46 /**
47  * @draft ICU 50
48  */
49 typedef enum UGender UGender;
50 
51 /**
52  * Opaque UGenderInfo object for use in C programs.
53  * @draft ICU 50
54  */
55 struct UGenderInfo;
56 typedef struct UGenderInfo UGenderInfo;
57 
58 /**
59  * Opens a new UGenderInfo object given locale.
60  * @param locale The locale for which the rules are desired.
61  * @return A UGenderInfo for the specified locale, or NULL if an error occurred.
62  * @draft ICU 50
63  */
64 U_DRAFT 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  * @draft ICU 50
76  */
77 U_DRAFT UGender U_EXPORT2
78 ugender_getListGender(const UGenderInfo* genderinfo, const UGender *genders, int32_t size, UErrorCode *status);
79 
80 #endif /* U_HIDE_DRAFT_API */
81 #endif /* #if !UCONFIG_NO_FORMATTING */
82 
83 #endif
84