SHM
Shared-memorybasedHandy-communicationManager
Classes | Enumerations | Functions | Variables
shm_base.hpp File Reference

Basic class definitions for accessing shared memory, ring buffers, etc. The notation is complianted ROS Cpp style guide. http://wiki.ros.org/ja/CppStyleGuide. More...

#include <iostream>
#include <limits>
#include <string>
#include <regex>
#include <stdexcept>
#include <mutex>
#include <sys/mman.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/time.h>
#include <pthread.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>

Go to the source code of this file.

Classes

class  irlab::shm::SharedMemory
 Class that abstracts the method of accessing shared memory. More...
 
class  irlab::shm::SharedMemoryPosix
 Class that is described the method of accessing POSIX shared memory. More...
 
class  irlab::shm::RingBuffer
 Class that is described ring-buffer used for shared memory. More...
 

Enumerations

enum  irlab::shm::PERM : mode_t {
  irlab::shm::PERM_USER_READ = S_IRUSR, irlab::shm::PERM_USER_WRITE = S_IWUSR, irlab::shm::PERM_GROUP_READ = S_IRGRP, irlab::shm::PERM_GROUP_WRITE = S_IWGRP,
  irlab::shm::PERM_OTHER_READ = S_IROTH, irlab::shm::PERM_OTHER_WRITE = S_IWOTH
}
 

Functions

int irlab::shm::disconnectMemory (std::string name)
 共有メモリを破棄する(POSIX版) More...
 
int irlab::shm::disconnectMemory (int id)
 

Variables

const PERM irlab::shm::DEFAULT_PERM = static_cast<PERM>(PERM_USER_READ | PERM_USER_WRITE | PERM_GROUP_READ | PERM_GROUP_WRITE | PERM_OTHER_READ | PERM_OTHER_WRITE)
 

Detailed Description

Basic class definitions for accessing shared memory, ring buffers, etc. The notation is complianted ROS Cpp style guide. http://wiki.ros.org/ja/CppStyleGuide.

Definition in file shm_base.hpp.

Enumeration Type Documentation

◆ PERM

enum irlab::shm::PERM : mode_t

Permissions for shared memory

Enumerator
PERM_USER_READ 

Owner readable

PERM_USER_WRITE 

Owner writable

PERM_GROUP_READ 

Group that owner belong readable

PERM_GROUP_WRITE 

Group that owner belong writable

PERM_OTHER_READ 

Others readable

PERM_OTHER_WRITE 

Others writable

Definition at line 40 of file shm_base.hpp.

Function Documentation

◆ disconnectMemory()

int irlab::shm::disconnectMemory ( std::string  name)

共有メモリを破棄する(POSIX版)

Parameters
[in]name共有メモリ名
Returns
なし

この関数では、引数で与えられた共有メモリ名の共有メモリを破棄する. 破棄すると言ってもファイルの削除と同様に、すでにプログラムで展開されている場合は、 破棄された共有メモリにアクセスし続けることができる. 破棄後に同名の共有メモリを作成した場合、新しいアドレスが生成されるため、 再度サブスクライバを生成しないと新しい共有メモリにアクセスできない. ファイルディスクリプタを保持し、inodeのカウントを監視することで、 共有メモリの破棄を検知することができるが、むやみに共有メモリを破棄することがないことを前提として、 余計な処理を加えないためにあえて共有メモリの監視はしていない。

Definition at line 21 of file shared_memory.cpp.