]>
git.saurik.com Git - apple/icu.git/blob - icuSources/i18n/unicode/gender.h
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
4 *******************************************************************************
5 * Copyright (C) 2008-2013, International Business Machines Corporation and
6 * others. All Rights Reserved.
7 *******************************************************************************
12 * Modification History:*
13 * Date Name Description
15 ********************************************************************************
21 #include "unicode/utypes.h"
23 #if !UCONFIG_NO_FORMATTING
25 #include "unicode/locid.h"
26 #include "unicode/ugender.h"
27 #include "unicode/uobject.h"
31 #if U_SHOW_CPLUSPLUS_API
34 // Forward Declaration
35 void U_CALLCONV
GenderInfo_initCache(UErrorCode
&status
);
38 * GenderInfo computes the gender of a list as a whole given the gender of
42 class U_I18N_API GenderInfo
: public UObject
{
46 * Provides access to the predefined GenderInfo object for a given
49 * @param locale The locale for which a <code>GenderInfo</code> object is
51 * @param status Output param set to success/failure code on exit, which
52 * must not indicate a failure before the function call.
53 * @return The predefined <code>GenderInfo</code> object pointer for
54 * this locale. The returned object is immutable, so it is
55 * declared as const. Caller does not own the returned
56 * pointer, so it must not attempt to free it.
59 static const GenderInfo
* U_EXPORT2
getInstance(const Locale
& locale
, UErrorCode
& status
);
62 * Determines the gender of a list as a whole given the gender of each
65 * @param genders the gender of each element in the list.
66 * @param length the length of gender array.
67 * @param status Output param set to success/failure code on exit, which
68 * must not indicate a failure before the function call.
69 * @return the gender of the whole list.
72 UGender
getListGender(const UGender
* genders
, int32_t length
, UErrorCode
& status
) const;
79 virtual ~GenderInfo();
85 * Copy constructor. One object per locale invariant. Clients
86 * must never copy GenderInfo objects.
88 GenderInfo(const GenderInfo
& other
);
91 * Assignment operator. Not applicable to immutable objects.
93 GenderInfo
& operator=(const GenderInfo
&);
97 static const GenderInfo
* getNeutralInstance();
99 static const GenderInfo
* getMixedNeutralInstance();
101 static const GenderInfo
* getMaleTaintsInstance();
103 static const GenderInfo
* loadInstance(const Locale
& locale
, UErrorCode
& status
);
105 friend class ::GenderInfoTest
;
106 friend void U_CALLCONV
GenderInfo_initCache(UErrorCode
&status
);
110 #endif // U_SHOW_CPLUSPLUS_API
112 #endif /* #if !UCONFIG_NO_FORMATTING */