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