Files
ANSLibs/chilkat/include/CkHashtable.h

163 lines
4.4 KiB
C++

// CkHashtable.h: interface for the CkHashtable class.
//
//////////////////////////////////////////////////////////////////////
// This header is generated for Chilkat 11.3.0
#define _CkVersion 11.3.0
#ifndef _CkHashtable_H
#define _CkHashtable_H
#include "chilkatDefs.h"
#include "CkString.h"
#include "CkMultiByteBase.h"
class CkStringBuilder;
class CkStringTable;
#if !defined(__sun__) && !defined(__sun)
#pragma pack (push, 8)
#endif
#undef Copy
// CLASS: CkHashtable
class CK_VISIBLE_PUBLIC CkHashtable : public CkMultiByteBase
{
private:
// Don't allow assignment or copying these objects.
CkHashtable(const CkHashtable &);
CkHashtable &operator=(const CkHashtable &);
public:
CkHashtable(void);
virtual ~CkHashtable(void);
static CkHashtable *createNew(void);
static CkHashtable *createNew2(int progLang);
void CK_VISIBLE_PRIVATE inject(void *impl);
// May be called when finished with the object to free/dispose of any
// internal resources held by the object.
void dispose(void);
// BEGIN PUBLIC INTERFACE
// ----------------------
// Properties
// ----------------------
// The number of items (strings/integers) contained in the hash table.
int get_Count(void);
// ----------------------
// Methods
// ----------------------
// Adds to the hash table from XML previously created by calling ToXmlSb.
bool AddFromXmlSb(CkStringBuilder &sbXml);
// Adds or replaces an entry with the given key and integer value to the hash
// table. Returns true if a new hash entry was added or replaced. Returns false
// if an out-of-memory condition occurred.
bool AddInt(const char *key, int value);
// Adds URL query parameters into the hashtable. The queryParams has the form:
// field1=value1&field2=value2&field3=value3... . It is assumed that the values are
// URL encoded, and this method automatically URL decodes the values prior to
// inserting into the hashtable.
bool AddQueryParams(const char *queryParams);
// Adds or replaces an entry with the given key and string value to the hash table.
// Returns true if a new hash entry was added or replaced. Returns false if an
// out-of-memory condition occurred.
bool AddStr(const char *key, const char *value);
// Removes all elements from the Hashtable.
void Clear(void);
// Removes all elements from the Hashtable and re-sizes with the specified capacity.
//
// The capacity is the number of buckets in the hash table. In the case of a hash
// collision , a single bucket stores multiple entries, which must be searched
// sequentially. One rule of thumb is to set the capacity to twice the number of
// expected items to be hashed. It's also preferable to set the capacity to a prime
// number. (The 1st 10,000 prime numbers are listed here:
// https://primes.utm.edu/lists/small/10000.txt )
//
// The initial default capacity of the hash table is 521.
//
bool ClearWithNewCapacity(int capacity);
// Determines if a given key is contained within the hash table. Returns true if
// the key exists, otherwise returns false.
bool Contains(const char *key);
// Determines if a given key is contained within the hash table. Returns true if
// the key exists, otherwise returns false.
bool ContainsIntKey(int key);
// Appends the complete set of hashtable key strings to strTable.
bool GetKeys(CkStringTable &strTable);
// Returns the integer value associated with the specified key. If the key is not
// in the hash table, the return value is 0.
int LookupInt(const char *key);
// Returns the string value associated with the specified key.
bool LookupStr(const char *key, CkString &outStr);
// Returns the string value associated with the specified key.
const char *lookupStr(const char *key);
// Removes the entry with the specified key from the hash table. Returns true if
// the key existed and was removed. Returns false if the key did not already
// exist.
bool Remove(const char *key);
// Serializes the hash table to a query string such as
// key1=value1&key2=value2&key3=value3 where each value is URL encoded.
bool ToQueryString(CkString &outStr);
// Serializes the hash table to a query string such as
// key1=value1&key2=value2&key3=value3 where each value is URL encoded.
const char *toQueryString(void);
// Serializes the hash table to XML format. The XML is appended to sbXml.
bool ToXmlSb(CkStringBuilder &sbXml);
// END PUBLIC INTERFACE
};
#if !defined(__sun__) && !defined(__sun)
#pragma pack (pop)
#endif
#endif