OpenRTM-aist 2.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
RTC::SharedMemoryPort クラス

SharedMemory クラス [詳解]

#include <SharedMemoryPort.h>

RTC::SharedMemoryPort の継承関係図
RTC::SharedMemoryPort 連携図

公開メンバ関数

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

限定公開変数類

::OpenRTM::PortSharedMemory_var m_smInterface {OpenRTM::PortSharedMemory::_nil()}
 
bool m_endian {true}
 
coil::SharedMemory m_shmem
 

詳解

SharedMemory クラス

SharedMemoryPort

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

から
1.2.0

構築子と解体子

◆ SharedMemoryPort()

RTC::SharedMemoryPort::SharedMemoryPort ( )

コンストラクタ

コンストラクタ

◆ ~SharedMemoryPort()

RTC::SharedMemoryPort::~SharedMemoryPort ( )
override

デストラクタ

デストラクタ

関数詳解

◆ close_memory()

void RTC::SharedMemoryPort::close_memory ( ::CORBA::Boolean unlink = false)
override

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

引数
unlinkLinuxで/dev/shm以下に作成したファイルを削除する場合にTrueにする

◆ create_memory()

void RTC::SharedMemoryPort::create_memory ( ::CORBA::ULongLong memory_size,
const char * shm_address )
override

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

◆ get()

::OpenRTM::PortStatus RTC::SharedMemoryPort::get ( )
override

データの送信を要求する

戻り値

◆ getObjRef()

virtual::OpenRTM::PortSharedMemory_ptr RTC::SharedMemoryPort::getObjRef ( )

◆ open_memory()

void RTC::SharedMemoryPort::open_memory ( ::CORBA::ULongLong memory_size,
const char * shm_address )
override

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

引数
memory_size共有メモリのサイズ
shm_address空間名

◆ put()

::OpenRTM::PortStatus RTC::SharedMemoryPort::put ( )
override

データの送信を知らせる

戻り値

◆ read()

virtual void RTC::SharedMemoryPort::read ( ByteData & data)
virtual

データを読み込む

戻り値
データ

◆ setEndian()

void RTC::SharedMemoryPort::setEndian ( ::CORBA::Boolean endian)
override

エンディアンを設定する

引数
endianエンディアン

◆ setInterface()

void RTC::SharedMemoryPort::setInterface ( ::OpenRTM::PortSharedMemory_ptr sm)
override

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

引数
smSharedMemoryのオブジェクトリファレンス

◆ string_to_MemorySize()

virtual int RTC::SharedMemoryPort::string_to_MemorySize ( std::string size_str)
virtual

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

引数
size_strデータサイズ(文字列)
戻り値
データサイズ(数値)

◆ write()

virtual void RTC::SharedMemoryPort::write ( ByteData & data)
virtual

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

引数
data書き込むデータ

メンバ詳解

◆ m_endian

bool RTC::SharedMemoryPort::m_endian {true}
protected

◆ m_shmem

coil::SharedMemory RTC::SharedMemoryPort::m_shmem
protected

◆ m_smInterface

::OpenRTM::PortSharedMemory_var RTC::SharedMemoryPort::m_smInterface {OpenRTM::PortSharedMemory::_nil()}
protected

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