]>
git.saurik.com Git - apple/icu.git/blob - icuSources/i18n/unicode/gender.h
2 *******************************************************************************
3 * Copyright (C) 2008-2013, International Business Machines Corporation and
4 * others. All Rights Reserved.
5 *******************************************************************************
10 * Modification History:*
11 * Date Name Description
13 ********************************************************************************
19 #include "unicode/utypes.h"
21 #if !UCONFIG_NO_FORMATTING
23 #include "unicode/locid.h"
24 #include "unicode/ugender.h"
25 #include "unicode/uobject.h"
31 // Forward Declaration
32 void U_CALLCONV
GenderInfo_initCache(UErrorCode
&status
);
35 * GenderInfo computes the gender of a list as a whole given the gender of
39 class U_I18N_API GenderInfo
: public UObject
{
43 * Provides access to the predefined GenderInfo object for a given
46 * @param locale The locale for which a <code>GenderInfo</code> object is
48 * @param status Output param set to success/failure code on exit, which
49 * must not indicate a failure before the function call.
50 * @return The predefined <code>GenderInfo</code> object pointer for
51 * this locale. The returned object is immutable, so it is
52 * declared as const. Caller does not own the returned
53 * pointer, so it must not attempt to free it.
56 static const GenderInfo
* U_EXPORT2
getInstance(const Locale
& locale
, UErrorCode
& status
);
59 * Determines the gender of a list as a whole given the gender of each
62 * @param genders the gender of each element in the list.
63 * @param length the length of gender array.
64 * @param status Output param set to success/failure code on exit, which
65 * must not indicate a failure before the function call.
66 * @return the gender of the whole list.
69 UGender
getListGender(const UGender
* genders
, int32_t length
, UErrorCode
& status
) const;
76 virtual ~GenderInfo();
82 * Copy constructor. One object per locale invariant. Clients
83 * must never copy GenderInfo objects.
85 GenderInfo(const GenderInfo
& other
);
88 * Assignment operator. Not applicable to immutable objects.
90 GenderInfo
& operator=(const GenderInfo
&);
94 static const GenderInfo
* getNeutralInstance();
96 static const GenderInfo
* getMixedNeutralInstance();
98 static const GenderInfo
* getMaleTaintsInstance();
100 static const GenderInfo
* loadInstance(const Locale
& locale
, UErrorCode
& status
);
102 friend class ::GenderInfoTest
;
103 friend void U_CALLCONV
GenderInfo_initCache(UErrorCode
&status
);
108 #endif /* #if !UCONFIG_NO_FORMATTING */