home *** CD-ROM | disk | FTP | other *** search
- /*
- *******************************************************************************
- * *
- * COPYRIGHT: *
- * (C) Copyright Taligent, Inc., 1997 *
- * (C) Copyright International Business Machines Corporation, 1997-1998 *
- * Licensed Material - Program-Property of IBM - All Rights Reserved. *
- * US Government Users Restricted Rights - Use, duplication, or disclosure *
- * restricted by GSA ADP Schedule Contract with IBM Corp. *
- * *
- *******************************************************************************
- *
- * File CRESBUND.CPP
- *
- * Modification History:
- *
- * Date Name Description
- * 04/01/97 aliu Creation.
- * 06/14/99 stephen Removed functions taking a filename suffix.
- * 07/20/99 stephen Changed for UResourceBundle typedef'd to void*
- *******************************************************************************
- */
-
- #include "resbund.h"
- #include "ures.h"
- #include "locid.h"
- #include "uloc.h"
-
- /**
- * Functions to create and destroy resource bundles.
- */
-
- U_CAPI UResourceBundle* ures_open( const char* myPath,
- const char* localeID,
- UErrorCode* status)
- {
- UnicodeString uPath;
- Locale myLocale;
-
-
- if (myPath != 0) uPath = myPath;
- else uPath = uloc_getDataDirectory();
-
- if (localeID == 0) localeID = uloc_getDefault();
-
-
- return (UResourceBundle*) new ResourceBundle(uPath, myLocale.init(localeID), *status);
- }
-
- U_CAPI UResourceBundle* ures_openW( const wchar_t* myPath,
- const char* localeID,
- UErrorCode* status)
- {
- Locale myLocale;
- if (localeID == 0) localeID = uloc_getDefault();
-
- return (UResourceBundle*) new ResourceBundle(myPath, myLocale.init(localeID), *status);
- }
-
-
- /**
- * Functions to retrieve data from resource bundles.
- */
-
- U_CAPI const UChar* ures_get( const UResourceBundle* resourceBundle,
- const char* resourceTag,
- UErrorCode* status)
- {
- if (U_FAILURE(*status)) return NULL;
- if (!resourceBundle || !resourceTag)
- {
- *status = U_ILLEGAL_ARGUMENT_ERROR;
- return NULL;
- }
-
- const UnicodeString* tmp = ((ResourceBundle*)resourceBundle)->getString(resourceTag, *status);
-
- if (U_SUCCESS(*status)) return tmp->getUChars();
- else return NULL;
- }
-
- U_CAPI const UChar* ures_getArrayItem(const UResourceBundle* resourceBundle,
- const char* resourceTag,
- int32_t resourceIndex,
- UErrorCode* status)
- {
- if (U_FAILURE(*status)) return NULL;
- if (!resourceBundle || !resourceTag || (resourceIndex < 0))
- {
- *status = U_ILLEGAL_ARGUMENT_ERROR;
- return NULL;
- }
-
- const UnicodeString* tmp = ((ResourceBundle*)resourceBundle)->getArrayItem(resourceTag, resourceIndex, *status);
-
- if (U_SUCCESS(*status)) return tmp->getUChars();
- else return NULL;
- }
-
-
-
- U_CAPI const UChar* ures_get2dArrayItem(const UResourceBundle* resourceBundle,
- const char* resourceTag,
- int32_t rowIndex,
- int32_t columnIndex,
- UErrorCode* status)
- {
- if (U_FAILURE(*status)) return NULL;
- if (!resourceBundle || !resourceTag || (rowIndex < 0) || (columnIndex < 0))
- {
- *status = U_ILLEGAL_ARGUMENT_ERROR;
- return NULL;
- }
-
- const UnicodeString* tmp = ((ResourceBundle*)resourceBundle)->get2dArrayItem(resourceTag,
- rowIndex,
- columnIndex,
- *status);
- if (U_SUCCESS(*status)) return tmp->getUChars();
- else return NULL;
- }
-
- U_CAPI const UChar* ures_getTaggedArrayItem(const UResourceBundle* resourceBundle,
- const char* resourceTag,
- const char* itemTag,
- UErrorCode* status)
- {
- if (U_FAILURE(*status)) return NULL;
- if (!resourceBundle || !resourceTag || !itemTag)
- {
- *status = U_ILLEGAL_ARGUMENT_ERROR;
- return NULL;
- }
-
- const UnicodeString* tmp = ((ResourceBundle*)resourceBundle)->getTaggedArrayItem(resourceTag,
- itemTag,
- *status);
- if (U_SUCCESS(*status)) return tmp->getUChars();
- else return NULL;
- }
-
-
- U_CAPI const char* ures_getVersionNumber(const UResourceBundle* resourceBundle)
- {
- if (!resourceBundle) return NULL;
- return ((ResourceBundle*)resourceBundle)->getVersionNumber();
- }
-
- extern "C" int32_t T_ResourceBundle_countArrayItems(const ResourceBundle* rb,
- const char* resourceKey,
- UErrorCode* err);
-
- U_CAPI int32_t ures_countArrayItems(const UResourceBundle* resourceBundle,
- const char* resourceKey,
- UErrorCode* err)
- {
- return T_ResourceBundle_countArrayItems((ResourceBundle*)resourceBundle,
- resourceKey,
- err);
- }
-
- U_CAPI void ures_close( UResourceBundle* resourceBundle)
- {
- delete resourceBundle;
- return;
- }
-
- /**
- * Returns a list of all available ULocales. The return value is a pointer to
- * an array of pointers to ULocale objects. Both this array and the pointers
- * it contains are owned by ICU and should not be deleted or written through
- * by the caller. The array is terminated by a null pointer.
- */
- extern "C" void T_ResourceBundle_getTaggedArrayUChars(const ResourceBundle* UResourceBundle,
- const UnicodeString& resourceTag,
- UChar const** itemTags,
- UChar const** items,
- int32_t maxItems,
- int32_t* numItems,
- UErrorCode* err);
-
- //eof
-