nonduplpool.h

Go to the documentation of this file.
00001 
00043 #ifndef ABA_NONDUPLPOOL_H
00044 #define ABA_NONDUPLPOOL_H
00045 
00046 #include "abacus/global.h"
00047 #include "abacus/hash.h"
00048 #include "abacus/standardpool.h"
00049 
00050 
00051   template<class BaseType, class CoType>
00052   class  ABA_NONDUPLPOOL :  public ABA_STANDARDPOOL<BaseType, CoType>  { 
00053     public: 
00054 
00064       ABA_NONDUPLPOOL(ABA_MASTER *master, int size, bool autoRealloc = false);
00065 
00066 
00068       virtual ~ABA_NONDUPLPOOL();
00069 
00082       virtual ABA_POOLSLOT<BaseType, CoType> *insert(BaseType *cv);
00083 
00094       virtual ABA_POOLSLOT<BaseType, CoType> *present(BaseType *cv);
00095 
00105       virtual void increase(int size);
00106 
00121       void statistics(int &nDuplications, int &nCollisions) const;
00122     private: 
00123 
00134       virtual int softDeleteConVar(ABA_POOLSLOT<BaseType, CoType> *slot);
00135 
00141       virtual void hardDeleteConVar(ABA_POOLSLOT<BaseType, CoType> *slot);
00142       ABA_HASH<unsigned, ABA_POOLSLOT<BaseType, CoType>*> hash_;
00143       int nDuplications_;
00144       ABA_NONDUPLPOOL(const ABA_NONDUPLPOOL &rhs);
00145       const ABA_NONDUPLPOOL &operator=(const ABA_NONDUPLPOOL &rhs);
00146   };
00147 
00148 #include "abacus/nonduplpool.inc"
00149 
00150 #endif  // ABA_NONDUPLPOOL_H
00151 
00152 
00153 
00154 

Generated on Tue Aug 14 18:09:54 2007 for ABACUS by  doxygen 1.5.1