standardpool.h

Go to the documentation of this file.
00001 
00039 #ifndef ABA_STANDARDPOOL_H
00040 #define ABA_STANDARDPOOL_H
00041 
00042 #include "abacus/list.h"
00043 #include "abacus/pool.h"
00044 
00045 #ifdef ABACUS_PARALLEL
00046 class ABA_MESSAGE;
00047 #endif
00048 
00049 #ifdef ABACUS_NEW_TEMPLATE_SYNTAX
00050 template<class BaseType, class CoType>
00051 class ABA_STANDARDPOOL;
00052 
00053 template<class BaseType, class CoType>
00054 ostream& operator<< (ostream &out, const ABA_STANDARDPOOL<BaseType,CoType> &rhs);
00055 #endif
00056 
00057 template<class BaseType, class CoType> 
00058                     class ABA_STANDARDPOOL:public ABA_POOL<BaseType,CoType> {
00059 public:
00060   
00072   ABA_STANDARDPOOL(ABA_MASTER*master,int size,bool autoRealloc= false);
00073 
00078   virtual~ABA_STANDARDPOOL();
00079 #ifdef ABACUS_PARALLEL
00080 
00087   ABA_STANDARDPOOL(const ABA_MASTER*master,ABA_MESSAGE&msg);
00088 
00093   void pack(ABA_MESSAGE&msg)const;
00094 #endif
00095 #ifdef ABACUS_NEW_TEMPLATE_SYNTAX
00096 
00105   friend ostream& operator<< <> (ostream &,const ABA_STANDARDPOOL &);
00106 #else
00107   
00116   friend ostream& operator<<(ostream& out,const ABA_STANDARDPOOL& rhs);
00117 #endif
00118   
00119 
00133   virtual ABA_POOLSLOT<BaseType,CoType> *insert(BaseType*cv);
00134 
00142   virtual void increase(int size);
00143 
00150   int cleanup();
00151 
00155   int size()const;
00156 
00161   ABA_POOLSLOT<BaseType,CoType> *slot(int i);
00162 
00201   virtual int separate(double*x,
00202                        ABA_ACTIVE<CoType,BaseType> *active,
00203                        ABA_SUB*sub,
00204                        ABA_CUTBUFFER<BaseType,CoType> *cutBuffer,
00205                        double minAbsViolation= 0.001,
00206                        int ranking= 0);
00207                     protected:
00208   
00209 
00215   int removeNonActive(int maxRemove);
00216 
00223   virtual ABA_POOLSLOT<BaseType,CoType> *getSlot();
00224 
00231   virtual void putSlot(ABA_POOLSLOT<BaseType,CoType> *slot);
00232   
00235   ABA_ARRAY<ABA_POOLSLOT<BaseType,CoType> *> pool_;
00236 
00239   ABA_LIST<ABA_POOLSLOT<BaseType,CoType> *> freeSlots_;
00240 
00245   bool autoRealloc_;
00246   
00247   
00248 private:
00249   ABA_STANDARDPOOL(const ABA_STANDARDPOOL&rhs);
00250   const ABA_STANDARDPOOL&operator= (const ABA_STANDARDPOOL&rhs);
00251 };
00252 
00253 
00254 
00255 #include "abacus/standardpool.inc"
00256 
00257 #endif // ABA_STANDARDPOOL_H
00258 

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