ugender.h 1.9 KB

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