#pragma once #include "base/mutex.hpp" #include #include #include #include class SharedBufferManager { public: typedef std::vector shared_buffer_t; typedef std::shared_ptr shared_buffer_ptr_t; typedef std::list shared_buffer_ptr_list_t; typedef std::map shared_buffers_t; private: threads::Mutex m_mutex; shared_buffers_t m_sharedBuffers; public: static SharedBufferManager & instance(); void clearReserved(); shared_buffer_ptr_t reserveSharedBuffer(size_t s); void freeSharedBuffer(size_t s, shared_buffer_ptr_t buf); static uint8_t * GetRawPointer(shared_buffer_ptr_t ptr); };