#ifndef ROOT_TExMap
#define ROOT_TExMap
#ifndef ROOT_TObject
#include "TObject.h"
#endif
class TExMapIter;
class TExMap : public TObject {
friend class TExMapIter;
private:
   struct Assoc_t {
   private:
      ULong_t  fHash;
   public:
      Long_t   fKey;
      Long_t   fValue;
      void     SetHash(ULong_t h) { fHash = (h | 1); } 
      ULong_t  GetHash() const { return fHash; }
      Bool_t   InUse() const { return fHash & 1; }
      void     Clear() { fHash = 0x0; }
   };
   Assoc_t    *fTable;
   Int_t       fSize;
   Int_t       fTally;
   Bool_t      HighWaterMark() { return (Bool_t) (fTally >= ((3*fSize)/4)); }
   void        Expand(Int_t newsize);
   Int_t       FindElement(ULong_t hash, Long_t key);
   void        FixCollisions(Int_t index);
public:
   TExMap(Int_t mapSize = 100);
   TExMap(const TExMap &map);
   TExMap& operator=(const TExMap&);
   ~TExMap();
   void      Add(ULong_t hash, Long_t key, Long_t value);
   void      Add(Long_t key, Long_t value) { Add(key, key, value); }
   void      AddAt(UInt_t slot, ULong_t hash, Long_t key, Long_t value);
   void      Delete(Option_t *opt = "");
   Int_t     Capacity() const { return fSize; }
   Int_t     GetSize() const { return fTally; }
   Long_t    GetValue(ULong_t hash, Long_t key);
   Long_t    GetValue(Long_t key) { return GetValue(key, key); }
   Long_t    GetValue(ULong_t hash, Long_t key, UInt_t &slot);
   void      Remove(ULong_t hash, Long_t key);
   void      Remove(Long_t key) { Remove(key, key); }
   Long_t   &operator()(ULong_t hash, Long_t key);
   Long_t   &operator()(Long_t key) { return operator()(key, key); }
   ClassDef(TExMap,1)  
};
class TExMapIter {
private:
   const TExMap   *fMap;
   Int_t           fCursor;
public:
   TExMapIter(const TExMap *map);
   TExMapIter(const TExMapIter& tei):
     fMap(tei.fMap), fCursor(tei.fCursor) { }
   TExMapIter& operator=(const TExMapIter&);
   virtual ~TExMapIter() { }
   const TExMap  *GetCollection() const { return fMap; }
   Bool_t         Next(ULong_t &hash, Long_t &key, Long_t &value);
   Bool_t         Next(Long_t &key, Long_t &value);
   void           Reset() { fCursor = 0; }
   ClassDef(TExMapIter,0)  
};
#endif
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.