home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / WmtRWTPtrDict.hxx < prev    next >
Text File  |  1996-05-31  |  2KB  |  56 lines

  1. /*---------------------------------------------------------------------------
  2.  *
  3.  *      (c)     Westmount Technology    1994
  4.  *
  5.  *      File:        @(#)WmtRWTPtrDict.hxx    1.2
  6.  *      Author:        peku
  7.  *      Description:    pointer dictionary based on RogueWave library
  8.  *---------------------------------------------------------------------------
  9.  SccsId = @(#)WmtRWTPtrDict.hxx    1.2   03 Jun 1994 Copyright 1994 Westmount Technology */
  10.  
  11. #ifndef WMTRWTPTRDICT_HXX
  12. #define WMTRWTPTRDICT_HXX
  13.  
  14. #ifndef __RWTVHDICT_H__
  15. #include "rw/tvhdict.h"
  16. #endif
  17.  
  18. typedef void* voidptr;
  19.  
  20. template<class K, class V>
  21. #ifdef __GNUG__
  22. class WmtRWTPtrDict : public RWTValHashDictionary<K, voidptr> {
  23. #else
  24. class WmtRWTPtrDict : private RWTValHashDictionary<K, voidptr> {
  25. #endif
  26. public:
  27.     WmtRWTPtrDict(unsigned (*hashKey)(const K&)) :
  28.         RWTValHashDictionary<K, voidptr>(hashKey) {}
  29.  
  30.     RWBoolean doFindValue(const K& key, V const * & retval) const
  31.         { return RWTValHashDictionary<K, voidptr>::findValue(key, (voidptr&)retval); }
  32.     void doInsertKeyAndValue(const K& key, V *val)
  33.           { RWTValHashDictionary<K, voidptr>::insertKeyAndValue(key, val); }
  34.     RWBoolean doRemove(const K& key)
  35.         { return RWTValHashDictionary<K, voidptr>::remove(key); }
  36.     void doClear()
  37.         { RWTValHashDictionary<K, voidptr>::clear(); }
  38. };
  39.  
  40. template <class K, class V>
  41. class WmtRWTPtrDictIterator : private RWTValHashDictionaryIterator<K, voidptr> {
  42. public:
  43.     WmtRWTPtrDictIterator(const WmtRWTPtrDict<K, V>& c) :
  44. RWTValHashDictionaryIterator<K, voidptr>((RWTValHashDictionary<K, voidptr>&)c) {}
  45.  
  46.     K key() const
  47.         { return (K)RWTValHashDictionaryIterator<K, voidptr>::key(); }
  48.     V *value() const
  49.            { return (V*)RWTValHashDictionaryIterator<K, voidptr>::value(); }
  50.     RWBoolean operator++()
  51.           { return RWTValHashDictionaryIterator<K, voidptr>::operator++(); }
  52.     void reset() { RWTValHashDictionaryIterator<K, voidptr>::reset(); }
  53. };
  54.  
  55. #endif /* WMTRWTPTRDICT_HXX */
  56.