SHM
共有メモリを用いた高速で扱いやすいプロセス間通信マネージャ
Public Member Functions | List of all members
irlab::shm::Publisher< T > Class Template Reference

共有メモリにトピックを出力する出版者を表現するクラス More...

#include <shm_pub_sub.hpp>

Public Member Functions

 Publisher (std::string name="", int buffer_num=3, PERM perm=DEFAULT_PERM, bool legacy=false)
 コンストラクタ More...
 
 ~Publisher ()
 デストラクタ More...
 
void publish (const T &data)
 トピックの書き込み More...
 

Detailed Description

template<typename T>
class irlab::shm::Publisher< T >

共有メモリにトピックを出力する出版者を表現するクラス

template classとして与えられた型またはクラスをトピックとして出力するためのクラスである. sizeofによってメモリの使用量が把握できる型およびクラスに対応している. また、特殊なものはtemplate classを特殊化して対応する.

Note
通常であれば、生成された共有メモリはデストラクタで破棄されるべきだと考えるのが自然であるが、 意図せずプログラムが再起動したような場合に共有メモリが破棄されてしまうと、値の更新が読み取れなかったり 以前に送っていた指令が読み取れなくなったりするなどの問題が生じる可能性があるため、あえて破棄していない. 一度確保した共有メモリにサイズの異なるデータを格納しようとするとデータが破損するため、 システムを再度立ち上げ直す際には共有メモリを破棄する操作を行うことを推奨する.
Examples
test1.cpp.

Definition at line 59 of file shm_pub_sub.hpp.

Constructor & Destructor Documentation

◆ Publisher()

template<typename T >
irlab::shm::Publisher< T >::Publisher ( std::string  name = "",
int  buffer_num = 3,
PERM  perm = DEFAULT_PERM,
bool  legacy = false 
)

コンストラクタ

Parameters
[in]name共有メモリ名
[in]buffer_numバッファ数
[in]perm権限情報
Returns
なし

共有メモリオブジェクトの生成、mutexや条件変数の初期化を行う.

Definition at line 132 of file shm_pub_sub.hpp.

◆ ~Publisher()

template<typename T >
irlab::shm::Publisher< T >::~Publisher

デストラクタ

Returns
なし

終了時の処理として共有メモリの切断を行う.

Definition at line 184 of file shm_pub_sub.hpp.

Member Function Documentation

◆ publish()

template<typename T >
void irlab::shm::Publisher< T >::publish ( const T &  data)

トピックの書き込み

Parameters
[in]data
Returns
なし

タイムスタンプが最も古いバッファにトピックを書き込み、タイムスタンプを更新する. また、pthreadの条件変数を介して、待機中のプロセスに再開信号を送る.

Definition at line 207 of file shm_pub_sub.hpp.


The documentation for this class was generated from the following file: