OpenRTM-aist  1.2.1
公開メンバ関数 | 限定公開変数類 | 全メンバ一覧
RTC::SharedMemoryPort クラス

SharedMemory クラス [詳解]

#include <SharedMemoryPort.h>

RTC::SharedMemoryPort の継承関係図
Inheritance graph
[凡例]
RTC::SharedMemoryPort 連携図
Collaboration graph
[凡例]

公開メンバ関数

 SharedMemoryPort ()
 コンストラクタ [詳解]
 
virtual ~SharedMemoryPort ()
 デストラクタ [詳解]
 
virtual int string_to_MemorySize (std::string size_str)
 文字列で指定したデータサイズを数値に変換する 1M → 1048576 1k → 1024 100 → 100 [詳解]
 
virtual void create_memory (::CORBA::ULongLong memory_size, const char *shm_address) throw (CORBA::SystemException)
 共有メモリの初期化 windowsではページングファイル上に領域を確保する Linuxでは/dev/shm以下にファイルを作成する 作成したファイルの内容を仮想アドレスにマッピングする [詳解]
 
virtual void open_memory (::CORBA::ULongLong memory_size, const char *shm_address) throw (CORBA::SystemException)
 共有メモリのマッピングを行う [詳解]
 
virtual void close_memory (::CORBA::Boolean unlink=false) throw (CORBA::SystemException)
 マッピングした共有メモリをアンマップする [詳解]
 
virtual void write (cdrMemoryStream &data)
 データを書き込む 先頭8byteにデータサイズを書き込み、その後ろにデータを書き込む 設定したデータサイズが共有メモリのサイズを上回った場合、共有メモリの初期化を行う [詳解]
 
virtual void read (cdrMemoryStream &data)
 データを読み込む [詳解]
 
virtual void setInterface (::OpenRTM::PortSharedMemory_ptr sm) throw (CORBA::SystemException)
 通信先のCORBAインターフェースを登録する 登録する事により共有メモリの初期化したときに、通信先でもマッピングをやり直すことができる [詳解]
 
virtual void setEndian (::CORBA::Boolean endian) throw (CORBA::SystemException)
 エンディアンを設定する [詳解]
 
virtual ::OpenRTM::PortStatus put () throw (CORBA::SystemException)
 データの送信を知らせる [詳解]
 
virtual ::OpenRTM::PortStatus get () throw (CORBA::SystemException)
 データの送信を要求する [詳解]
 
virtual ::OpenRTM::PortSharedMemory_ptr getObjRef ()
 

限定公開変数類

::OpenRTM::PortSharedMemory_var m_smInterface
 
bool m_endian
 
coil::SharedMemory m_shmem
 

詳解

SharedMemory クラス

SharedMemoryPort

共有メモリ操作クラス CORBAによる通信により、mmapの初期化、終了などがリモートに操作できる

から
1.2.0

構築子と解体子

RTC::SharedMemoryPort::SharedMemoryPort ( )

コンストラクタ

コンストラクタ

virtual RTC::SharedMemoryPort::~SharedMemoryPort ( )
virtual

デストラクタ

デストラクタ

関数詳解

virtual void RTC::SharedMemoryPort::close_memory ( ::CORBA::Boolean  unlink = false)
throw (CORBA::SystemException
)
virtual

マッピングした共有メモリをアンマップする

引数
unlinkLinuxで/dev/shm以下に作成したファイルを削除する場合にTrueにする
virtual void RTC::SharedMemoryPort::create_memory ( ::CORBA::ULongLong  memory_size,
const char *  shm_address 
)
throw (CORBA::SystemException
)
virtual

共有メモリの初期化 windowsではページングファイル上に領域を確保する Linuxでは/dev/shm以下にファイルを作成する 作成したファイルの内容を仮想アドレスにマッピングする

virtual ::OpenRTM::PortStatus RTC::SharedMemoryPort::get ( )
throw (CORBA::SystemException
)

データの送信を要求する

戻り値
virtual ::OpenRTM::PortSharedMemory_ptr RTC::SharedMemoryPort::getObjRef ( )
virtual void RTC::SharedMemoryPort::open_memory ( ::CORBA::ULongLong  memory_size,
const char *  shm_address 
)
throw (CORBA::SystemException
)
virtual

共有メモリのマッピングを行う

引数
memory_size共有メモリのサイズ
shm_address空間名
virtual ::OpenRTM::PortStatus RTC::SharedMemoryPort::put ( )
throw (CORBA::SystemException
)

データの送信を知らせる

戻り値
virtual void RTC::SharedMemoryPort::read ( cdrMemoryStream &  data)
virtual

データを読み込む

戻り値
データ
virtual void RTC::SharedMemoryPort::setEndian ( ::CORBA::Boolean  endian)
throw (CORBA::SystemException
)
virtual

エンディアンを設定する

引数
endianエンディアン
virtual void RTC::SharedMemoryPort::setInterface ( ::OpenRTM::PortSharedMemory_ptr  sm)
throw (CORBA::SystemException
)
virtual

通信先のCORBAインターフェースを登録する 登録する事により共有メモリの初期化したときに、通信先でもマッピングをやり直すことができる

引数
smSharedMemoryのオブジェクトリファレンス
virtual int RTC::SharedMemoryPort::string_to_MemorySize ( std::string  size_str)
virtual

文字列で指定したデータサイズを数値に変換する 1M → 1048576 1k → 1024 100 → 100

引数
size_strデータサイズ(文字列)
戻り値
データサイズ(数値)
virtual void RTC::SharedMemoryPort::write ( cdrMemoryStream &  data)
virtual

データを書き込む 先頭8byteにデータサイズを書き込み、その後ろにデータを書き込む 設定したデータサイズが共有メモリのサイズを上回った場合、共有メモリの初期化を行う

引数
data書き込むデータ

メンバ詳解

bool RTC::SharedMemoryPort::m_endian
protected
coil::SharedMemory RTC::SharedMemoryPort::m_shmem
protected
::OpenRTM::PortSharedMemory_var RTC::SharedMemoryPort::m_smInterface
protected

このクラス詳解は次のファイルから抽出されました: