154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius/* 254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius***************************************************************************************** 38393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius* Copyright (C) 2010-2013, International Business Machines 454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* Corporation and others. All Rights Reserved. 554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius***************************************************************************************** 654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius*/ 754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius#ifndef UGENDER_H 954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius#define UGENDER_H 1054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 1154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius#include "unicode/utypes.h" 1254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 1354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius#if !UCONFIG_NO_FORMATTING 1454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 1554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius#include "unicode/localpointer.h" 1654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 1754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius/** 1854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * \file 1954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * \brief C API: The purpose of this API is to compute the gender of a list as a 2054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * whole given the gender of each element. 2154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * 2254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius */ 2354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 2454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius/** 2554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * Genders 2659d709d503bab6e2b61931737e662dd293b40578ccornelius * @stable ICU 50 2754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius */ 2854dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusenum UGender { 2954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius /** 3054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * Male gender. 3159d709d503bab6e2b61931737e662dd293b40578ccornelius * @stable ICU 50 3254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius */ 3354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UGENDER_MALE, 3454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius /** 3554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * Female gender. 3659d709d503bab6e2b61931737e662dd293b40578ccornelius * @stable ICU 50 3754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius */ 3854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UGENDER_FEMALE, 3954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius /** 4054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * Neutral gender. 4159d709d503bab6e2b61931737e662dd293b40578ccornelius * @stable ICU 50 4254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius */ 4354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UGENDER_OTHER 4454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius}; 4554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius/** 4659d709d503bab6e2b61931737e662dd293b40578ccornelius * @stable ICU 50 4754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius */ 4854dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliustypedef enum UGender UGender; 4954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 5054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius/** 5154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * Opaque UGenderInfo object for use in C programs. 5259d709d503bab6e2b61931737e662dd293b40578ccornelius * @stable ICU 50 5354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius */ 5454dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusstruct UGenderInfo; 5554dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliustypedef struct UGenderInfo UGenderInfo; 5654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 5754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius/** 5854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * Opens a new UGenderInfo object given locale. 5954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * @param locale The locale for which the rules are desired. 6059d709d503bab6e2b61931737e662dd293b40578ccornelius * @param status UErrorCode pointer 6154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * @return A UGenderInfo for the specified locale, or NULL if an error occurred. 6259d709d503bab6e2b61931737e662dd293b40578ccornelius * @stable ICU 50 6354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius */ 6459d709d503bab6e2b61931737e662dd293b40578ccorneliusU_STABLE const UGenderInfo* U_EXPORT2 6554dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusugender_getInstance(const char *locale, UErrorCode *status); 6654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 6754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 6854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius/** 6954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * Given a list, returns the gender of the list as a whole. 7054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * @param genderInfo pointer that ugender_getInstance returns. 7154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * @param genders the gender of each element in the list. 7254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * @param size the size of the list. 7354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * @param status A pointer to a UErrorCode to receive any errors. 7454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * @return The gender of the list. 7559d709d503bab6e2b61931737e662dd293b40578ccornelius * @stable ICU 50 7654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius */ 7759d709d503bab6e2b61931737e662dd293b40578ccorneliusU_STABLE UGender U_EXPORT2 7854dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusugender_getListGender(const UGenderInfo* genderinfo, const UGender *genders, int32_t size, UErrorCode *status); 7954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 8054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius#endif /* #if !UCONFIG_NO_FORMATTING */ 8154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 8254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius#endif 83