#pragma once #include "base/define.h" #include "base/error.h" namespace ylib { /// /// 共享内存 /// class sharedmem:public ylib::error_base { public: /// /// 自动销毁 /// /// sharedmem(bool auto_free = false); ~sharedmem(); /// /// 创建 /// /// /// /// bool create(const std::string& name,size_t size); /// /// 销毁 /// void destory(); void* mem() const { return m_memory; } uchar operator[](size_t ); private: std::string m_name; size_t m_size = 0; void* m_memory = nullptr; bool m_auto_free = false; #ifdef _WIN32 void* m_handle = 0; #else int m_handle = -1; #endif }; }