Home | History | Annotate | Download | only in unicode
      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