Home | History | Annotate | Download | only in i18n
      1 // Copyright (C) 2016 and later: Unicode, Inc. and others.
      2 // License & terms of use: http://www.unicode.org/copyright.html
      3 /*
      4 *****************************************************************************************
      5 * Copyright (C) 2013-2015, International Business Machines Corporation and others.
      6 * All Rights Reserved.
      7 *****************************************************************************************
      8 */
      9 
     10 #include "unicode/utypes.h"
     11 
     12 #if !UCONFIG_NO_FORMATTING
     13 
     14 #include "unicode/uregion.h"
     15 #include "unicode/region.h"
     16 #include "unicode/uenum.h"
     17 #include "unicode/strenum.h"
     18 
     19 U_NAMESPACE_USE
     20 
     21 
     22 U_CAPI const URegion* U_EXPORT2
     23 uregion_getRegionFromCode(const char *regionCode, UErrorCode *status)
     24 {
     25     return (URegion*)Region::getInstance(regionCode, *status);
     26 }
     27 
     28 
     29 U_CAPI const URegion* U_EXPORT2
     30 uregion_getRegionFromNumericCode (int32_t code, UErrorCode *status)
     31 {
     32     return (URegion*)Region::getInstance(code, *status);
     33 }
     34 
     35 
     36 U_CAPI UEnumeration* U_EXPORT2
     37 uregion_getAvailable(URegionType type, UErrorCode *status)
     38 {
     39     StringEnumeration* strenum = Region::getAvailable(type, *status);
     40     return uenum_openFromStringEnumeration( strenum, status );
     41 }
     42 
     43 
     44 U_CAPI UBool U_EXPORT2
     45 uregion_areEqual(const URegion* uregion, const URegion* otherRegion)
     46 {
     47     return ( (void*)uregion == (void*)otherRegion );
     48 }
     49 
     50 
     51 U_CAPI const URegion* U_EXPORT2
     52 uregion_getContainingRegion(const URegion* uregion)
     53 {
     54     return (URegion*)((Region*)uregion)->getContainingRegion();
     55 }
     56 
     57 
     58 U_CAPI const URegion* U_EXPORT2
     59 uregion_getContainingRegionOfType(const URegion* uregion, URegionType type)
     60 {
     61     return (URegion*)((Region*)uregion)->getContainingRegion(type);
     62 }
     63 
     64 
     65 U_CAPI UEnumeration* U_EXPORT2
     66 uregion_getContainedRegions(const URegion* uregion, UErrorCode *status)
     67 {
     68     StringEnumeration* strenum = ((Region*)uregion)->getContainedRegions(*status);
     69     return uenum_openFromStringEnumeration( strenum, status);
     70 }
     71 
     72 
     73 U_CAPI UEnumeration* U_EXPORT2
     74 uregion_getContainedRegionsOfType(const URegion* uregion, URegionType type, UErrorCode *status)
     75 {
     76     StringEnumeration* strenum = ((Region*)uregion)->getContainedRegions(type, *status);
     77     return uenum_openFromStringEnumeration( strenum, status);
     78 }
     79 
     80 
     81 U_CAPI UBool U_EXPORT2
     82 uregion_contains(const URegion* uregion, const URegion* otherRegion)
     83 {
     84     return ((Region*)uregion)->contains(*((Region*)otherRegion));
     85 }
     86 
     87 
     88 U_CAPI UEnumeration* U_EXPORT2
     89 uregion_getPreferredValues(const URegion* uregion, UErrorCode *status)
     90 {
     91     StringEnumeration* strenum = ((Region*)uregion)->getPreferredValues(*status);
     92     return uenum_openFromStringEnumeration( strenum, status);
     93 }
     94 
     95 
     96 U_CAPI const char* U_EXPORT2
     97 uregion_getRegionCode(const URegion* uregion)
     98 {
     99     return ((Region*)uregion)->getRegionCode();
    100 }
    101 
    102 
    103 U_CAPI int32_t U_EXPORT2
    104 uregion_getNumericCode(const URegion* uregion)
    105 {
    106     return ((Region*)uregion)->getNumericCode();
    107 }
    108 
    109 
    110 U_CAPI URegionType U_EXPORT2
    111 uregion_getType(const URegion* uregion)
    112 {
    113     return ((Region*)uregion)->getType();
    114 }
    115 
    116 
    117 #endif /* #if !UCONFIG_NO_FORMATTING */
    118