chromium/third_party/icu/source/common/hash.h

// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
******************************************************************************
*   Copyright (C) 1997-2014, International Business Machines
*   Corporation and others.  All Rights Reserved.
******************************************************************************
*   Date        Name        Description
*   03/28/00    aliu        Creation.
******************************************************************************
*/

#ifndef HASH_H
#define HASH_H

#include "unicode/unistr.h"
#include "unicode/uobject.h"
#include "cmemory.h"
#include "uhash.h"

U_NAMESPACE_BEGIN

/**
 * Hashtable is a thin C++ wrapper around UHashtable, a general-purpose void*
 * hashtable implemented in C.  Hashtable is designed to be idiomatic and
 * easy-to-use in C++.
 *
 * Hashtable is an INTERNAL CLASS.
 */
class U_COMMON_API Hashtable : public UMemory {};

/*********************************************************************
 * Implementation
 ********************************************************************/

inline void Hashtable::init(UHashFunction *keyHash, UKeyComparator *keyComp,
                            UValueComparator *valueComp, UErrorCode& status) {}

inline void Hashtable::initSize(UHashFunction *keyHash, UKeyComparator *keyComp,
                                UValueComparator *valueComp, int32_t size, UErrorCode& status) {}

inline Hashtable::Hashtable(UKeyComparator *keyComp, UValueComparator *valueComp,
                 UErrorCode& status) :{}

inline Hashtable::Hashtable(UBool ignoreKeyCase, UErrorCode& status)
 :{}

inline Hashtable::Hashtable(UBool ignoreKeyCase, int32_t size, UErrorCode& status)
 :{}

inline Hashtable::Hashtable(UErrorCode& status)
 :{}

inline Hashtable::Hashtable()
 :{}

inline Hashtable::~Hashtable() {}

inline UObjectDeleter *Hashtable::setValueDeleter(UObjectDeleter *fn) {}

inline int32_t Hashtable::count() const {}

inline void* Hashtable::put(const UnicodeString& key, void* value, UErrorCode& status) {}

inline int32_t Hashtable::puti(const UnicodeString& key, int32_t value, UErrorCode& status) {}

inline int32_t Hashtable::putiAllowZero(const UnicodeString& key, int32_t value,
                                        UErrorCode& status) {}

inline void* Hashtable::get(const UnicodeString& key) const {}

inline int32_t Hashtable::geti(const UnicodeString& key) const {}

inline int32_t Hashtable::getiAndFound(const UnicodeString& key, UBool &found) const {}

inline void* Hashtable::remove(const UnicodeString& key) {}

inline int32_t Hashtable::removei(const UnicodeString& key) {}

inline UBool Hashtable::containsKey(const UnicodeString& key) const {}

inline const UHashElement* Hashtable::find(const UnicodeString& key) const {}

inline const UHashElement* Hashtable::nextElement(int32_t& pos) const {}

inline void Hashtable::removeAll() {}

inline UKeyComparator* Hashtable::setKeyComparator(UKeyComparator*keyComp){}

inline UValueComparator* Hashtable::setValueComparator(UValueComparator* valueComp){}

inline UBool Hashtable::equals(const Hashtable& that)const{}
U_NAMESPACE_END

#endif