public class SharedMemory extends PortSharedMemoryPOA
共有メモリ操作クラス CORBAによる通信により、mmapの初期化、終了などがリモートに操作できる
修飾子とタイプ | フィールドと説明 |
---|---|
protected boolean |
m_endian |
コンストラクタと説明 |
---|
SharedMemory()
コンストラクタ
|
修飾子とタイプ | メソッドと説明 |
---|---|
void |
close_memory() |
void |
close_memory(boolean unlink)
マッピングした共有メモリをアンマップする
|
void |
create_memory(long memory_size,
java.lang.String shm_address)
共有メモリの初期化
{@.en Initializes a shared memory
|
PortStatus |
get()
データの送信を要求する
{@.en Get data
|
void |
open_memory(long memory_size,
java.lang.String shm_address)
共有メモリのマッピングを行う
|
PortStatus |
put()
データの送信を知らせる
{@.en Put data
|
void |
read(CdrDataHolder data)
データを読み込む
|
void |
setEndian(boolean isLittleEndian)
エンディアンを設定する
|
void |
setInterface(PortSharedMemory sm)
通信先のCORBAインターフェースを登録する
|
long |
string_to_MemorySize(java.lang.String size_str)
文字列で指定したデータサイズを数値に変換する
|
void |
write(CdrDataHolder data)
データを書き込む
|
_all_interfaces, _invoke, _this, _this
public long string_to_MemorySize(java.lang.String size_str)
1M -> 1048576 1k -> 1024 100 -> 100
size_str
- データサイズ(文字列)
public void create_memory(long memory_size, java.lang.String shm_address)
memory_size
- 共有メモリのサイズ
shm_address
- 空間名
# void create_memory(int memory_size, string shm_address);public void open_memory(long memory_size, java.lang.String shm_address)
memory_size
- 共有メモリのサイズ
shm_address
- 空間名
# void open_memory(int memory_size, string shm_address);public void close_memory(boolean unlink)
unlink
- Linuxで/dev/shm以下に作成したファイルを削除する場合にTrueにする
# void close_memory(boolean unlink);public void close_memory()
public void write(CdrDataHolder data)
先頭8byteにデータサイズを書き込み、その後ろにデータを書き込む 設定したデータサイズが共有メモリのサイズを上回った場合、 共有メモリの初期化を行う
data
- 書き込むデータ
# void write(cdrMemoryStream& data);public void read(CdrDataHolder data)
data
- 読み込んだデータを受け取るためのオブジェクト
# void read(::OpenRTM::CdrData_out data);public void setInterface(PortSharedMemory sm)
登録する事により共有メモリの初期化したときに、 通信先でもマッピングをやり直すことができる
sm
- SharedMemoryのオブジェクトリファレンス
# void close(int memory_size, string shm_address);public void setEndian(boolean isLittleEndian)
isLittleEndian
- true: little, false: big
PortStatus setEndian();public PortStatus put()
public PortStatus get()