jp.go.aist.rtm.RTC.port
クラス InPortPullConnector

java.lang.Object
  上位を拡張 jp.go.aist.rtm.RTC.port.ConnectorBase
      上位を拡張 jp.go.aist.rtm.RTC.port.InPortConnector
          上位を拡張 jp.go.aist.rtm.RTC.port.InPortPullConnector

public class InPortPullConnector
extends InPortConnector

InPortPullConnector クラス

InPort の pull 型データフローのための Connector クラス。このオブ ジェクトは、接続時に dataflow_type に pull が指定された場合、 InPort によって生成・所有され、OutPortPullConnector と対になって、 データポートの pull 型のデータフローを実現する。一つの接続に対して、 一つのデータストリームを提供する唯一の Connector が対応する。 Connector は 接続時に生成される UUID 形式の ID により区別される。 InPortPullConnector は以下の三つのオブジェクトを所有し管理する。

OutPort に書き込まれたデータは OutPortPullConnector::write() に渡 され Buffer に書き込まれる。InPort::read(), InPortPullConnector::read() は結果として、OutPortConsumer::get() を呼び出し、OutPortPullConnector の持つバッファからデータを読み出 し、InPortPullConnector のもつバッファにデータを書き込む。


入れ子のクラスの概要
 
クラス jp.go.aist.rtm.RTC.port.ConnectorBase から継承された入れ子のクラス/インタフェース
ConnectorBase.ConnectorInfo, ConnectorBase.ConnectorInfoHolder
 
フィールドの概要
 
クラス jp.go.aist.rtm.RTC.port.InPortConnector から継承されたフィールド
m_buffer, m_isLittleEndian, m_orb, m_profile, m_spi_orb
 
コンストラクタの概要
InPortPullConnector(ConnectorBase.ConnectorInfo profile, OutPortConsumer consumer, ConnectorListeners listeners, BufferBase<org.omg.CORBA.portable.OutputStream> buffer)
          コンストラクタ.
 
メソッドの概要
 void activate()
          アクティブ化 このコネクタをアクティブ化する
protected  BufferBase<org.omg.CORBA.portable.OutputStream> createBuffer(ConnectorBase.ConnectorInfo profile)
          Bufferの生成 与えられた接続情報に基づきバッファを生成する。
 void deactivate()
          非アクティブ化 このコネクタを非アクティブ化する
 ReturnCode disconnect()
          接続解除関数 Connector が保持している接続を解除する
protected  void onConnect()
          接続確立時にコールバックを呼ぶ
protected  void onDisconnect()
          接続切断時にコールバックを呼ぶ
 ReturnCode read(DataRef<org.omg.CORBA.portable.InputStream> data)
          read 関数 {@.ja OutPortConsumer からデータを取得する。
 void setListener(ConnectorBase.ConnectorInfo profile, ConnectorListeners listeners)
          リスナを設定する。
 
クラス jp.go.aist.rtm.RTC.port.InPortConnector から継承されたメソッド
getBuffer, id, isLittleEndian, name, profile, setEndian
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

InPortPullConnector

public InPortPullConnector(ConnectorBase.ConnectorInfo profile,
                           OutPortConsumer consumer,
                           ConnectorListeners listeners,
                           BufferBase<org.omg.CORBA.portable.OutputStream> buffer)
                    throws java.lang.Exception
コンストラクタ.

InPortPullConnector のコンストラクタはオブジェクト生成時に下記 を引数にとる。ConnectorInfo は接続情報を含み、この情報に従いバッ ファ等を生成する。OutPort インターフェースのプロバイダオブジェク トへのポインタを取り、所有権を持つので、InPortPullConnector は OutPortConsumer の解体責任を持つ。各種イベントに対するコールバッ ク機構を提供する ConnectorListeners を持ち、適切なタイミングでコー ルバックを呼び出す。データバッファがもし InPortBase から提供さ れる場合はそのポインタを取る。

パラメータ:
profile - ConnectorInfo
consumer - OutPortConsumer
listeners - ConnectorListeners 型のリスナオブジェクトリスト
buffer - CdrBufferBase 型のバッファ
例外:
java.lang.Exception
メソッドの詳細

read

public ReturnCode read(DataRef<org.omg.CORBA.portable.InputStream> data)
read 関数

OutPortConsumer からデータを取得する。正常に読み出せた場合、戻り 値は PORT_OK となり、data に読み出されたデータが格納される。それ 以外の場合には、エラー値として BUFFER_EMPTY, TIMEOUT, PRECONDITION_NOT_MET, PORT_ERROR が返される。

定義:
クラス InPortConnector 内の read
戻り値:
PORT_OK 正常終了 BUFFER_EMPTY バッファは空である TIMEOUT タイムアウトした PRECONDITION_NOT_MET 事前条件を満たさない PORT_ERROR その他のエラー

disconnect

public ReturnCode disconnect()
接続解除関数

Connector が保持している接続を解除する

定義:
クラス InPortConnector 内の disconnect
戻り値:
ReturnCode

activate

public void activate()
アクティブ化

このコネクタをアクティブ化する

定義:
クラス ConnectorBase 内の activate

deactivate

public void deactivate()
非アクティブ化

このコネクタを非アクティブ化する

定義:
クラス ConnectorBase 内の deactivate

createBuffer

protected BufferBase<org.omg.CORBA.portable.OutputStream> createBuffer(ConnectorBase.ConnectorInfo profile)
Bufferの生成

与えられた接続情報に基づきバッファを生成する。

パラメータ:
profile - 接続情報
戻り値:
バッファへのポインタ

onConnect

protected void onConnect()
接続確立時にコールバックを呼ぶ


onDisconnect

protected void onDisconnect()
接続切断時にコールバックを呼ぶ


setListener

public void setListener(ConnectorBase.ConnectorInfo profile,
                        ConnectorListeners listeners)
リスナを設定する。

InPort はデータ送信処理における各種イベントに対して特定のリスナ オブジェクトをコールするコールバック機構を提供する。詳細は ConnectorListener.h の ConnectorDataListener, ConnectorListener 等を参照のこと。InPortCorbaCdrProvider では、以下のコールバック が提供される。

定義:
クラス InPortConnector 内の setListener
パラメータ:
profile - 接続情報
listeners - リスナオブジェクト