0acda636e4
X-SVN-Rev: 28117
69 lines
1.9 KiB
C++
69 lines
1.9 KiB
C++
/*
|
|
******************************************************************************
|
|
* Copyright (C) 1997-2010, International Business Machines
|
|
* Corporation and others. All Rights Reserved.
|
|
******************************************************************************
|
|
* Date Name Description
|
|
* 03/22/00 aliu Creation.
|
|
* 07/06/01 aliu Modified to support int32_t keys on
|
|
* platforms with sizeof(void*) < 32.
|
|
******************************************************************************
|
|
*/
|
|
|
|
#include "uhash.h"
|
|
#include "hash.h"
|
|
#include "uvector.h"
|
|
#include "unicode/unistr.h"
|
|
#include "unicode/uchar.h"
|
|
|
|
/********************************************************************
|
|
* PUBLIC UnicodeString support functions for UHashtable
|
|
********************************************************************/
|
|
|
|
U_CAPI int32_t U_EXPORT2
|
|
uhash_hashUnicodeString(const UHashTok key) {
|
|
U_NAMESPACE_USE
|
|
const UnicodeString *str = (const UnicodeString*) key.pointer;
|
|
return (str == NULL) ? 0 : str->hashCode();
|
|
}
|
|
|
|
U_CAPI void U_EXPORT2
|
|
uhash_deleteUnicodeString(void *obj) {
|
|
U_NAMESPACE_USE
|
|
delete (UnicodeString*) obj;
|
|
}
|
|
|
|
U_CAPI UBool U_EXPORT2
|
|
uhash_compareUnicodeString(const UHashTok key1, const UHashTok key2) {
|
|
U_NAMESPACE_USE
|
|
const UnicodeString *str1 = (const UnicodeString*) key1.pointer;
|
|
const UnicodeString *str2 = (const UnicodeString*) key2.pointer;
|
|
if (str1 == str2) {
|
|
return TRUE;
|
|
}
|
|
if (str1 == NULL || str2 == NULL) {
|
|
return FALSE;
|
|
}
|
|
return *str1 == *str2;
|
|
}
|
|
|
|
/**
|
|
* Deleter for Hashtable objects.
|
|
*/
|
|
U_CAPI void U_EXPORT2
|
|
uhash_deleteHashtable(void *obj) {
|
|
U_NAMESPACE_USE
|
|
delete (Hashtable*) obj;
|
|
}
|
|
|
|
/**
|
|
* Deleter for UObject instances.
|
|
*/
|
|
U_CAPI void U_EXPORT2
|
|
uhash_deleteUObject(void *obj) {
|
|
U_NAMESPACE_USE
|
|
delete (UObject*) obj;
|
|
}
|
|
|
|
//eof
|