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