michael@0: /* michael@0: ***************************************************************************************** michael@0: * Copyright (C) 2013, International Business Machines Corporation and others. michael@0: * All Rights Reserved. michael@0: ***************************************************************************************** michael@0: */ michael@0: michael@0: #include "unicode/utypes.h" michael@0: michael@0: #if !UCONFIG_NO_FORMATTING michael@0: michael@0: #include "unicode/unumsys.h" michael@0: #include "unicode/numsys.h" michael@0: #include "unicode/uenum.h" michael@0: michael@0: U_NAMESPACE_USE michael@0: michael@0: michael@0: U_CAPI UNumberingSystem* U_EXPORT2 michael@0: unumsys_open(const char *locale, UErrorCode *status) michael@0: { michael@0: // createInstance returns immediately if status indicates error michael@0: return (UNumberingSystem*)NumberingSystem::createInstance(Locale(locale), *status); michael@0: } michael@0: michael@0: michael@0: U_CAPI UNumberingSystem* U_EXPORT2 michael@0: unumsys_openByName(const char *name, UErrorCode *status) michael@0: { michael@0: // createInstanceByName does NOT return immediately if status indicates error michael@0: if (U_FAILURE(*status)) { michael@0: return NULL; michael@0: } michael@0: return (UNumberingSystem*)NumberingSystem::createInstanceByName(name, *status); michael@0: } michael@0: michael@0: michael@0: U_CAPI void U_EXPORT2 michael@0: unumsys_close(UNumberingSystem *unumsys) michael@0: { michael@0: delete ((NumberingSystem*)unumsys); michael@0: } michael@0: michael@0: michael@0: U_CAPI UEnumeration* U_EXPORT2 michael@0: unumsys_openAvailableNames(UErrorCode *status) michael@0: { michael@0: // getAvailableNames returns immediately if status indicates error michael@0: return uenum_openFromStringEnumeration(NumberingSystem::getAvailableNames(*status), status); michael@0: } michael@0: michael@0: michael@0: U_CAPI const char * U_EXPORT2 michael@0: unumsys_getName(const UNumberingSystem *unumsys) michael@0: { michael@0: return ((NumberingSystem*)unumsys)->getName(); michael@0: } michael@0: michael@0: michael@0: U_CAPI int32_t U_EXPORT2 michael@0: unumsys_getRadix(const UNumberingSystem *unumsys) michael@0: { michael@0: return ((NumberingSystem*)unumsys)->getRadix(); michael@0: } michael@0: michael@0: michael@0: U_CAPI UBool U_EXPORT2 michael@0: unumsys_isAlgorithmic(const UNumberingSystem *unumsys) michael@0: { michael@0: return ((NumberingSystem*)unumsys)->isAlgorithmic(); michael@0: } michael@0: michael@0: U_CAPI int32_t U_EXPORT2 michael@0: unumsys_getDescription(const UNumberingSystem *unumsys, UChar *result, michael@0: int32_t resultLength, UErrorCode *status) michael@0: { michael@0: if (U_FAILURE(*status)) { michael@0: return -1; michael@0: } michael@0: // implement michael@0: UnicodeString descrip = ((NumberingSystem*)unumsys)->getDescription(); michael@0: return descrip.extract(result, resultLength, *status); michael@0: } michael@0: michael@0: michael@0: #endif /* #if !UCONFIG_NO_FORMATTING */