1 #pragma once 2 3 #include <memory> 4 5 #include <string> 6 7 namespace pangolin 8 { 9 class SharedMemoryBufferInterface 10 { 11 public: ~SharedMemoryBufferInterface()12 virtual ~SharedMemoryBufferInterface() { 13 } 14 virtual bool tryLock() = 0; 15 virtual void lock() = 0; 16 virtual void unlock() = 0; 17 virtual unsigned char *ptr() = 0; 18 virtual std::string name() = 0; 19 }; 20 21 std::shared_ptr<SharedMemoryBufferInterface> create_named_shared_memory_buffer(const 22 std::string& name, size_t size); 23 std::shared_ptr<SharedMemoryBufferInterface> open_named_shared_memory_buffer(const 24 std::string& name, bool readwrite); 25 } 26