OpenRTM-aist  1.2.1
SharedMemory.h
Go to the documentation of this file.
1 // -*- C++ -*-
19 #ifndef COIL_SHAREDMEMORY_H
20 #define COIL_SHAREDMEMORY_H
21 
22 
23 #include <sys/mman.h>
24 #include <sys/types.h>
25 #include <sys/stat.h>
26 #include <fcntl.h>
27 #include <stdio.h>
28 #include <unistd.h>
29 
30 #include <string>
31 
32 #include <coil/config_coil.h>
33 
34 #define DEFAULT_MEMORY_SIZE 2097152
35 
36 
37 
38 namespace coil
39 {
54  {
55  public:
56 
74  SharedMemory();
75 
76 
77 
93  virtual ~SharedMemory();
94 
114  SharedMemory(const SharedMemory& rhs);
115 
139  SharedMemory& operator=(const SharedMemory& rhs);
140 
141 
165  virtual int create(std::string shm_address,
166  int memory_size = DEFAULT_MEMORY_SIZE);
167 
168 
191  virtual int open(std::string shm_address,
192  int memory_size = DEFAULT_MEMORY_SIZE);
193 
194 
216  virtual int write(const char *data, const int pos, const int size);
217 
218 
240  virtual int read(char* data, const int pos, const int size);
241 
261  virtual int close();
281  virtual unsigned int get_size();
301  virtual std::string get_addresss();
321  virtual char *get_data();
341  virtual int unlink();
361  virtual bool created();
362 
363  private:
364  int m_memory_size;
365  std::string m_shm_address;
366  char *m_shm;
367  bool m_file_create;
368  int m_fd;
369  }; // class SharedMemory
370 
371 }; // namespace coil
372 
373 #endif // SharedMemory_h
SharedMemory()
Constructor.
virtual int unlink()
virtual ~SharedMemory()
Destructor.
virtual int close()
Close Shared Memory.
virtual char * get_data()
virtual int write(const char *data, const int pos, const int size)
Write Shared Memory.
SharedMemory & operator=(const SharedMemory &rhs)
Assignment operator.
virtual unsigned int get_size()
virtual int create(std::string shm_address, int memory_size=DEFAULT_MEMORY_SIZE)
Create Shared Memory.
virtual int open(std::string shm_address, int memory_size=DEFAULT_MEMORY_SIZE)
Open Shared Memory.
#define DEFAULT_MEMORY_SIZE
Definition: SharedMemory.h:34
SharedMemory class.
Definition: SharedMemory.h:53
virtual std::string get_addresss()
virtual bool created()
virtual int read(char *data, const int pos, const int size)
Read Shared Memory.
Common Object Interface Layer.
Definition: Affinity.h:28