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, _thisprotected NVListHolder m_properties
インタフェース情報を保持するオブジェクトです。
public PortSharedMemory _this()
_this クラス内 PortSharedMemoryPOApublic void init(Properties prop)
InPortSHMProvider の各種設定を行う。与えられた Propertiesから必要な情報を取得して各種設定を行う。この init() 関 数は、InPortProvider生成直後および、接続時にそれぞれ呼ばれる可 能性がある。したがって、この関数は複数回呼ばれることを想定して記 述されるべきである。
init インタフェース内 InPortProviderprop - 設定情報
public void setBuffer(BufferBase<org.omg.CORBA.portable.OutputStream> buffer)
OutPortProvider がデータを取り出すバッファをセットする。 すでにセットされたバッファがある場合、以前のバッファへの ポインタに対して上書きされる。 OutPortProviderはバッファの所有権を仮定していないので、 バッファの削除はユーザの責任で行わなければならない。
setBuffer インタフェース内 InPortProviderbuffer - OutPortProviderがデータを取り出すバッファへのポインタ
public PortStatus put(byte[] data) throws org.omg.CORBA.SystemException
設定されたバッファにデータを書き込む。
data - 書込対象データ
org.omg.CORBA.SystemExceptionprotected PortStatus convertReturn(ReturnCode status, EncapsOutputStreamExt data)
status - ReturnCode
public InPortProvider creator_()
creator_ インタフェース内 ObjectCreator<InPortProvider>public void destructor_(java.lang.Object obj)
destructor_ インタフェース内 ObjectDestructorobj - 破棄するインタスタンス
public static void InPortSHMProviderInit()
InPortSHMConsumer のファクトリを登録する初期化関数。
public void publishInterfaceProfile(NVListHolder properties)
InterfaceProfile情報を公開する。 引数で指定するプロパティ情報内の NameValue オブジェクトの dataport.interface_type 値を調べ、当該ポートに設定されている インターフェースタイプと一致する場合のみ情報を取得する。
publishInterfaceProfile インタフェース内 InPortProviderproperties - InterfaceProfile情報を受け取るホルダオブジェクト
public boolean publishInterface(NVListHolder properties)
Interface情報を公開する。引数で指定するプロパティ情報内の NameValue オブジェクトのdataport.interface_type 値を調べ、当該ポー トに設定されていなければNameValue に情報を追加する。すでに同一イ ンターフェースが登録済みの場合は何も行わない。
publishInterface インタフェース内 InPortProviderproperties - properties Interface情報を受け取るホルダオブジェクト
public void setListener(ConnectorBase.ConnectorInfo info, ConnectorListeners listeners)
InPort はデータ送信処理における各種イベントに対して特定のリスナ オブジェクトをコールするコールバック機構を提供する。詳細は ConnectorListener.h の ConnectorDataListener, ConnectorListener 等を参照のこと。InPortSHMProvider では、以下のコールバック が提供される。
setListener インタフェース内 InPortProviderinfo - 接続情報
listeners - リスナオブジェクト
public void setConnector(InPortConnector connector)
InPort は接続確立時に InPortConnector オブジェクトを生成し、生 成したオブジェクトのポインタと共にこの関数を呼び出す。所有権は InPort が保持するので InPortProvider は InPortConnector を削 除してはいけない。
setConnector インタフェース内 InPortProviderconnector - 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 インタフェース内 PortSharedMemoryOperationsclose_memory クラス内 SharedMemoryunlink - Linuxで/dev/shm以下に作成したファイルを削除する場合にTrueにする
# void close_memory(boolean unlink);public void close_memory()
close_memory クラス内 SharedMemorypublic void setInterface(PortSharedMemory sm)
登録する事により共有メモリの初期化したときに、 通信先でもマッピングをやり直すことができる
setInterface インタフェース内 PortSharedMemoryOperationssetInterface クラス内 SharedMemorysm - SharedMemoryのオブジェクトリファレンス
public PortStatus get()
get インタフェース内 PortSharedMemoryOperationsget クラス内 SharedMemorypublic PortStatus put()
put インタフェース内 PortSharedMemoryOperationsput クラス内 SharedMemory