293 #ifndef TCLHASHTABLE_H //Required for current class 294 #define TCLHASHTABLE_H 296 #ifndef TCLHASHTABLEITEM_H 297 #include "TCLHashTableItem.h" 300 #ifndef TCLHASHTABLEITERATOR_H 301 #include "TCLHashTableIterator.h" 306 #include <histotypes.h> 324 Tcl_HashTable m_HashTable;
331 Tcl_InitHashTable(&m_HashTable, TCL_STRING_KEYS);
334 Tcl_DeleteHashTable(&m_HashTable);
339 : m_HashTable (am_HashTable)
345 { m_HashTable = aCTCLHashTable.m_HashTable;
353 if (
this == &aCTCLHashTable)
return *
this;
354 m_HashTable = aCTCLHashTable.m_HashTable;
364 (m_HashTable == aCTCLHashTable.m_HashTable)
370 Tcl_HashTable* getHashTable()
const 378 void setHashTable (Tcl_HashTable* am_HashTable)
380 m_HashTable = am_HashTable;
385 void Enter (
const std::string& rKey, rCTCLTHashTableItem rValue) {
387 Tcl_HashEntry* pEntry = Tcl_CreateHashEntry(&m_HashTable,
390 assert(pEntry != kpNULL);
391 Tcl_SetHashValue(pEntry, (ClientData)&rValue);
394 const CTCLTHashTableItem* Find (
const std::string& rsKeyword)
const {
395 Tcl_HashEntry* pEntry = Tcl_FindHashEntry(&m_HashTable,
397 if(pEntry == kpNULL)
return (pCTCLTHashTableItem) kpNULL;
399 return (pCTCLTHashTableItem)(Tcl_GetHashValue(pEntry));
402 CTCLTHashTableItem* Delete (
const std::string& rsKeyword) {
403 Tcl_HashEntry* pEntry = Tcl_FindHashEntry(&m_HashTable,
405 if(pEntry != kpNULL) {
406 pCTCLTHashTableItem pItem = (pCTCLTHashTableItem)
407 Tcl_GetHashValue(pEntry);
408 Tcl_DeleteHashEntry(pEntry);
412 return (pCTCLTHashTableItem) kpNULL;
415 CTCLTHashTableIterator begin () {
416 CTCLTHashTableIterator i(&m_HashTable);
420 CTCLTHashTableIterator end () {
421 CTCLTHashTableIterator i(&m_HashTable);
422 i.SetCurrentEntry((pCTCLTHashTableItem)kpNULL);
427 std::string Statistics () {
428 std::string s(Tcl_HashStats(&m_HashTable));
Definition: TCLHashTableIterator.h:334
Definition: TCLHashTableItem.h:301
Definition: TCLHashTable.h:314