00001 #ifndef SHPOOL_HPP
00002 #define SHPOOL_HPP
00003
00004 #define SH_USE_MEMORY_POOL
00005
00006 #ifdef SH_USE_MEMORY_POOL
00007
00008 #include <cstddef>
00009 #include "ShDllExport.hpp"
00010
00011 namespace SH {
00012
00013 class
00014 SH_DLLEXPORT
00015 ShPool {
00016 public:
00017 ShPool(std::size_t element_size, std::size_t block_size);
00018
00019 void* alloc();
00020 void free(void*);
00021
00022 private:
00023 std::size_t m_element_size;
00024 std::size_t m_block_size;
00025
00026 void* m_next;
00027 };
00028
00029 }
00030
00031 #endif // SH_USE_MEMORY_POOL
00032
00033 #endif