home *** CD-ROM | disk | FTP | other *** search
- /*
- *******************************************************************************
- * *
- * COPYRIGHT: *
- * (C) Copyright International Business Machines Corporation, 1998, 1999 *
- * 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 rbdata.cpp
- *
- * Modification History:
- *
- * Date Name Description
- * 06/11/99 stephen Creation. (Moved here from resbund.cpp)
- *******************************************************************************
- */
-
- #include "rbdata.h"
-
- UClassID StringList::fgClassID = 0; // Value is irrelevant
- UClassID String2dList::fgClassID = 0; // Value is irrelevant
- UClassID TaggedList::fgClassID = 0; // Value is irrelevant
-
- //-----------------------------------------------------------------------------
-
- StringList::StringList()
- : fStrings(0), fCount(0)
- {}
-
- StringList::StringList(UnicodeString *adopted,
- int32_t count)
- : fStrings(adopted), fCount(count)
- {}
-
- StringList::~StringList()
- { delete [] fStrings; }
-
- const UnicodeString&
- StringList::operator[](int32_t i) const
- { return fStrings[i]; }
-
- UClassID
- StringList::getDynamicClassID() const
- { return getStaticClassID(); }
-
- UClassID
- StringList::getStaticClassID()
- { return (UClassID)&fgClassID; }
-
- //-----------------------------------------------------------------------------
-
- String2dList::String2dList()
- : fStrings(0), fRowCount(0), fColCount(0)
- {}
-
- String2dList::String2dList(UnicodeString **adopted,
- int32_t rowCount,
- int32_t colCount)
- : fStrings(adopted), fRowCount(rowCount), fColCount(colCount)
- {}
-
- String2dList::~String2dList()
- {
- for(int32_t i = 0; i < fRowCount; ++i) {
- delete[] fStrings[i];
- }
- }
-
- const UnicodeString&
- String2dList::getString(int32_t rowIndex,
- int32_t colIndex)
- { return fStrings[rowIndex][colIndex]; }
-
- UClassID
- String2dList::getDynamicClassID() const
- { return getStaticClassID(); }
-
- UClassID
- String2dList::getStaticClassID()
- { return (UClassID)&fgClassID; }
-
- //-----------------------------------------------------------------------------
-
- TaggedList::TaggedList()
- {
- UErrorCode err = U_ZERO_ERROR;
- fHashtableValues = uhash_open((UHashFunction)uhash_hashUString, &err);
- uhash_setValueDeleter(fHashtableValues, deleteValue);
-
- fHashtableKeys = uhash_open((UHashFunction)uhash_hashUString, &err);
- }
-
- TaggedList::~TaggedList()
- {
- uhash_close(fHashtableValues);
- uhash_close(fHashtableKeys);
- }
-
- void
- TaggedList::put(const UnicodeString& tag,
- const UnicodeString& data)
- {
- UErrorCode err = U_ZERO_ERROR;
-
- uhash_putKey(fHashtableValues,
- tag.hashCode() & 0x7FFFFFFF,
- (new UnicodeString(data)),
- &err);
-
- uhash_putKey(fHashtableKeys,
- uhash_size(fHashtableValues),
- (new UnicodeString(tag)),
- &err);
- }
-
- const UnicodeString*
- TaggedList::get(const UnicodeString& tag) const
- {
- return (const UnicodeString*)
- uhash_get(fHashtableValues, tag.hashCode() & 0x7FFFFFFF);
- }
-
- void
- TaggedList::deleteValue(void *value)
- {
- delete (UnicodeString*)value;
- }
-
-
- UClassID
- TaggedList::getDynamicClassID() const
- { return getStaticClassID(); }
-
- UClassID
- TaggedList::getStaticClassID()
- { return (UClassID)&fgClassID; }
-