00001 // See the file LICENSE in the some directory as this file for legal 00002 // notices about this software. 00003 // $Id: CachingPool_8h-source.html,v 1.8 2001/10/10 20:40:58 sandro Exp $ 00004 #ifndef DEV_W3_ORG__2001_BLINDFOLD_SRC_CACHINGPOOL_H 00005 #define DEV_W3_ORG__2001_BLINDFOLD_SRC_CACHINGPOOL_H 00006 #include "config.h" 00007 00008 00009 #include "Pool.h" 00010 #include "WatchablePool.h" 00011 00026 class CachingPool : public Pool { 00027 00028 public: 00029 00030 // STANDARD MEMBER FUNCTIONS 00031 CachingPool(); 00032 CachingPool(const CachingPool& other); 00033 const CachingPool& operator=(const CachingPool& other); 00034 bool operator==(const CachingPool& other) const; 00035 bool operator<(const CachingPool& other) const; 00036 size_t hash() const; 00037 friend std::ostream& operator<<(std::ostream& s, const CachingPool& me); 00038 //std::ostream& print_to(std::ostream& stream) const; 00039 ~CachingPool(); 00040 00041 // CLASS-SPECIFIC PUBLIC INTERFACE 00042 00059 CachingPool(Pool& cached, 00060 Pool* cache = 0); 00061 00062 00075 CachingPool(WatchablePool& cached, 00076 Pool* cache = 0); 00077 00080 void set_strategy(int); 00081 00083 void set_maximum_storage(int); 00084 00085 00086 private: 00087 00088 00089 }; 00090 00091 00092 STANDARD_EXTERNAL(CachingPool) 00093 00094 #endif /* CACHINGPOOL */ // -*-C++-*-