public class InPortSHMProvider extends SharedMemory implements InPortProvider, ObjectCreator<InPortProvider>, ObjectDestructor
データ転送に CORBA の OpenRTM::PortSharedMemory インターフェースを 利用した、push 型データフロー型を実現する InPort プロバイダクラス。
修飾子とタイプ | フィールドと説明 |
---|---|
protected NVListHolder |
m_properties
インタフェース情報を保持するオブジェクトです。
|
m_endian
コンストラクタと説明 |
---|
InPortSHMProvider()
コンストラクタ
|
修飾子とタイプ | メソッドと説明 |
---|---|
PortSharedMemory |
_this()
当該OpenRTM.PortSharedMemoryのCORBAオブジェクト参照を取得する。
|
void |
close_memory() |
void |
close_memory(boolean unlink)
マッピングした共有メモリをアンマップする
|
protected PortStatus |
convertReturn(ReturnCode status,
EncapsOutputStreamExt data)
リターンコード変換
{p.en Return codes conversion}
|
void |
create_memory(int memory_size,
java.lang.String shm_address)
共有メモリの初期化
{@.en Initializes a shared memory
|
InPortProvider |
creator_()
InPortSHMProvider を生成する
|
void |
destructor_(java.lang.Object obj)
InPortSHMProvider を破棄する
|
PortStatus |
get()
データの送信を要求する
|
void |
init(Properties prop)
設定初期化
{@.ja InPortSHMProvider の各種設定を行う。
|
static void |
InPortSHMProviderInit()
モジュール初期化関数
InPortSHMConsumer のファクトリを登録する初期化関数。
|
boolean |
publishInterface(NVListHolder properties)
Interface情報を公開する
{@.ja Interface情報を公開する。
|
void |
publishInterfaceProfile(NVListHolder properties)
InterfaceProfile情報を公開する
{@.ja InterfaceProfile情報を公開する。
|
PortStatus |
put()
データの送信を知らせる
|
PortStatus |
put(byte[] data)
[CORBA interface] バッファにデータを書き込む
設定されたバッファにデータを書き込む。
|
void |
setBuffer(BufferBase<org.omg.CORBA.portable.OutputStream> buffer)
バッファをセットする
{@.ja OutPortProvider がデータを取り出すバッファをセットする。
|
void |
setConnector(InPortConnector connector)
Connectorを設定する。
|
protected void |
setDataFlowType(java.lang.String dataflowType)
インタフェースプロフィールのデータフロータイプを設定する。
|
protected void |
setDataType(java.lang.String dataType)
インタフェースプロフィールのデータタイプを設定する。
|
void |
setInterface(PortSharedMemory sm)
通信先のCORBAインターフェースを登録する
|
protected void |
setInterfaceType(java.lang.String interfaceType)
インタフェースプロフィールのインタフェースタイプを設定する。
|
void |
setListener(ConnectorBase.ConnectorInfo info,
ConnectorListeners listeners)
リスナを設定する。
|
protected void |
setSubscriptionType(java.lang.String subscriptionType)
インタフェースプロフィールのサブスクリプションタイプを設定する。
|
create_memory, open_memory, read, setEndian, string_to_MemorySize, write
_all_interfaces, _invoke, _this
protected NVListHolder m_properties
インタフェース情報を保持するオブジェクトです。
public PortSharedMemory _this()
_this
クラス内 PortSharedMemoryPOA
public void init(Properties prop)
InPortSHMProvider の各種設定を行う。与えられた Propertiesから必要な情報を取得して各種設定を行う。この init() 関 数は、InPortProvider生成直後および、接続時にそれぞれ呼ばれる可 能性がある。したがって、この関数は複数回呼ばれることを想定して記 述されるべきである。
init
インタフェース内 InPortProvider
prop
- 設定情報
public void setBuffer(BufferBase<org.omg.CORBA.portable.OutputStream> buffer)
OutPortProvider がデータを取り出すバッファをセットする。 すでにセットされたバッファがある場合、以前のバッファへの ポインタに対して上書きされる。 OutPortProviderはバッファの所有権を仮定していないので、 バッファの削除はユーザの責任で行わなければならない。
setBuffer
インタフェース内 InPortProvider
buffer
- OutPortProviderがデータを取り出すバッファへのポインタ
public PortStatus put(byte[] data) throws org.omg.CORBA.SystemException
設定されたバッファにデータを書き込む。
data
- 書込対象データ
org.omg.CORBA.SystemException
protected PortStatus convertReturn(ReturnCode status, EncapsOutputStreamExt data)
status
- ReturnCode
public InPortProvider creator_()
creator_
インタフェース内 ObjectCreator<InPortProvider>
public void destructor_(java.lang.Object obj)
destructor_
インタフェース内 ObjectDestructor
obj
- 破棄するインタスタンス
public static void InPortSHMProviderInit()
InPortSHMConsumer のファクトリを登録する初期化関数。
public void publishInterfaceProfile(NVListHolder properties)
InterfaceProfile情報を公開する。 引数で指定するプロパティ情報内の NameValue オブジェクトの dataport.interface_type 値を調べ、当該ポートに設定されている インターフェースタイプと一致する場合のみ情報を取得する。
publishInterfaceProfile
インタフェース内 InPortProvider
properties
- InterfaceProfile情報を受け取るホルダオブジェクト
public boolean publishInterface(NVListHolder properties)
Interface情報を公開する。引数で指定するプロパティ情報内の NameValue オブジェクトのdataport.interface_type 値を調べ、当該ポー トに設定されていなければNameValue に情報を追加する。すでに同一イ ンターフェースが登録済みの場合は何も行わない。
publishInterface
インタフェース内 InPortProvider
properties
- properties Interface情報を受け取るホルダオブジェクト
public void setListener(ConnectorBase.ConnectorInfo info, ConnectorListeners listeners)
InPort はデータ送信処理における各種イベントに対して特定のリスナ オブジェクトをコールするコールバック機構を提供する。詳細は ConnectorListener.h の ConnectorDataListener, ConnectorListener 等を参照のこと。InPortSHMProvider では、以下のコールバック が提供される。
setListener
インタフェース内 InPortProvider
info
- 接続情報
listeners
- リスナオブジェクト
public void setConnector(InPortConnector connector)
InPort は接続確立時に InPortConnector オブジェクトを生成し、生 成したオブジェクトのポインタと共にこの関数を呼び出す。所有権は InPort が保持するので InPortProvider は InPortConnector を削 除してはいけない。
setConnector
インタフェース内 InPortProvider
connector
- InPortConnector
protected void setDataType(java.lang.String dataType)
dataType
- データタイプ
protected void setInterfaceType(java.lang.String interfaceType)
interfaceType
- インタフェースタイプ
protected void setDataFlowType(java.lang.String dataflowType)
dataflowType
- データフロータイプ
protected void setSubscriptionType(java.lang.String subscriptionType)
subscriptionType
- サブスクリプションタイプ
public void create_memory(int memory_size, java.lang.String shm_address)
memory_size
- 共有メモリのサイズ
shm_address
- 空間名
# void create_memory(int memory_size, string shm_address);public void close_memory(boolean unlink)
close_memory
インタフェース内 PortSharedMemoryOperations
close_memory
クラス内 SharedMemory
unlink
- Linuxで/dev/shm以下に作成したファイルを削除する場合にTrueにする
# void close_memory(boolean unlink);public void close_memory()
close_memory
クラス内 SharedMemory
public void setInterface(PortSharedMemory sm)
登録する事により共有メモリの初期化したときに、 通信先でもマッピングをやり直すことができる
setInterface
インタフェース内 PortSharedMemoryOperations
setInterface
クラス内 SharedMemory
sm
- SharedMemoryのオブジェクトリファレンス
public PortStatus get()
get
インタフェース内 PortSharedMemoryOperations
get
クラス内 SharedMemory
public PortStatus put()
put
インタフェース内 PortSharedMemoryOperations
put
クラス内 SharedMemory