|
SHM
共有メモリを用いた高速で扱いやすいプロセス間通信マネージャ
|
共有メモリへのアクセス方法やリングバッファなどの基本的なクラスの定義 More...
#include <iostream>#include <limits>#include <string>#include <regex>#include <stdexcept>#include <mutex>#include <atomic>#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 |
| 共有メモリへのアクセス方法を抽象化したクラス More... | |
| class | irlab::shm::SharedMemoryPosix |
| Posix方式の共有メモリのアクセス方法を記述したクラス More... | |
| class | irlab::shm::RingBuffer |
| 共有メモリで使用するリングバッファを記述したクラス 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) |
共有メモリへのアクセス方法やリングバッファなどの基本的なクラスの定義
Definition in file shm_base.hpp.
| enum irlab::shm::PERM : mode_t |
共有メモリに付与する権限を表す
| Enumerator | |
|---|---|
| PERM_USER_READ | 所有者の読み込み許可 |
| PERM_USER_WRITE | 所有者の書き込み許可 |
| PERM_GROUP_READ | 所有者のグループの読み込み許可 |
| PERM_GROUP_WRITE | 所有者のグループの書き込み許可 |
| PERM_OTHER_READ | その他の読み込み許可 |
| PERM_OTHER_WRITE | その他の書き込み許可 |
Definition at line 41 of file shm_base.hpp.
| int irlab::shm::disconnectMemory | ( | std::string | name | ) |
共有メモリを破棄する(POSIX版)
| [in] | name | 共有メモリ名 |
この関数では、引数で与えられた共有メモリ名の共有メモリを破棄する. 破棄すると言ってもファイルの削除と同様に、すでにプログラムで展開されている場合は、 破棄された共有メモリにアクセスし続けることができる. 破棄後に同名の共有メモリを作成した場合、新しいアドレスが生成されるため、 再度サブスクライバを生成しないと新しい共有メモリにアクセスできない. ファイルディスクリプタを保持し、inodeのカウントを監視することで、 共有メモリの破棄を検知することができるが、むやみに共有メモリを破棄することがないことを前提として、 余計な処理を加えないためにあえて共有メモリの監視はしていない。
Definition at line 21 of file shared_memory.cpp.