00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef HxMemoryPoolFactory_h
00012 #define HxMemoryPoolFactory_h
00013
00014 #include "HxStd.h"
00015 #include "HxIoFwd.h"
00016
00017 class HxMemoryPool;
00018
00019 class HxMemoryPoolFactory
00020 {
00021 public:
00022 ~HxMemoryPoolFactory();
00023
00024 static HxMemoryPoolFactory& instance();
00025 HxMemoryPool* getMemoryPool(size_t blockSize);
00026
00027 STD_OSTREAM& put(STD_OSTREAM&) const;
00028
00029 private:
00030 HxMemoryPoolFactory();
00031 HxMemoryPoolFactory(const HxMemoryPoolFactory&);
00032
00033 HxMemoryPool* _memoryPoolList;
00034
00035 friend class HxMemoryPoolFactoryFriend;
00036 };
00037
00038 inline STD_OSTREAM&
00039 operator<<(STD_OSTREAM& os, const HxMemoryPoolFactory& mpf)
00040 {
00041 return mpf.put(os);
00042 }
00043
00044 #endif