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