00001
00002
00003
00004 #ifndef DEV_W3_ORG__2001_BLINDFOLD_SRC_WATCHABLEPOOL_H
00005 #define DEV_W3_ORG__2001_BLINDFOLD_SRC_WATCHABLEPOOL_H
00006 #include "config.h"
00007
00008
00009 #include <list>
00010
00011 #include "Pool.h"
00012
00019 class WatchablePool : public Pool {
00020
00021 public:
00022
00023
00024
00025 WatchablePool(const WatchablePool& other);
00026 const WatchablePool& operator=(const WatchablePool& other);
00027 bool operator==(const WatchablePool& other) const;
00028 bool operator<(const WatchablePool& other) const;
00029 size_t hash() const;
00030 friend std::ostream& operator<<(std::ostream& s, const WatchablePool& me);
00031
00032 ~WatchablePool();
00033
00034
00035
00040 WatchablePool(Pool& c_storage) : storage(c_storage) { };
00041
00043 typedef std::list<Pool*> list_type;
00044
00056 list_type watchers;
00057
00058 private:
00059
00060 Pool& storage;
00061
00062 };
00063
00064
00065 STANDARD_EXTERNAL(WatchablePool)
00066
00067 #endif