OpenRTM-aist  1.2.1
公開メンバ関数 | 限定公開メンバ関数 | 全メンバ一覧
RTC::InPortPullConnector クラス

InPortPullConnector クラス [詳解]

#include <InPortPullConnector.h>

RTC::InPortPullConnector の継承関係図
Inheritance graph
[凡例]
RTC::InPortPullConnector 連携図
Collaboration graph
[凡例]

公開メンバ関数

DATAPORTSTATUS_ENUM InPortPullConnector (ConnectorInfo info, OutPortConsumer *consumer, ConnectorListeners &listeners, CdrBufferBase *buffer=0)
 コンストラクタ [詳解]
 
virtual ~InPortPullConnector ()
 デストラクタ [詳解]
 
virtual ReturnCode read (cdrMemoryStream &data)
 read 関数 [詳解]
 
virtual ReturnCode disconnect ()
 接続解除関数 [詳解]
 
virtual void activate ()
 アクティブ化 [詳解]
 
virtual void deactivate ()
 非アクティブ化 [詳解]
 
- 基底クラス RTC::InPortConnector に属する継承公開メンバ関数
DATAPORTSTATUS_ENUM InPortConnector (ConnectorInfo &info, ConnectorListeners &listeners, CdrBufferBase *buffer)
 コンストラクタ [詳解]
 
virtual ~InPortConnector ()
 デストラクタ [詳解]
 
virtual const ConnectorInfoprofile ()
 ConnectorInfo 取得 [詳解]
 
virtual const char * id ()
 Connector ID 取得 [詳解]
 
virtual const char * name ()
 Connector 名取得 [詳解]
 
virtual CdrBufferBasegetBuffer ()
 Buffer を取得する [詳解]
 
virtual void setEndian (const bool endian_type)
 endianタイプ設定 [詳解]
 
virtual bool isLittleEndian ()
 endian 設定を返す [詳解]
 
bool setOutPort (OutPortBase *directOutPort)
 データをダイレクトに書き込むためのOutPortのサーバントを設定する [詳解]
 
template<typename DataType >
bool getDirectData (DataType &data)
 
- 基底クラス RTC::ConnectorBase に属する継承公開メンバ関数
virtual ~ConnectorBase ()
 デストラクタ [詳解]
 

限定公開メンバ関数

CdrBufferBasecreateBuffer (ConnectorInfo &info)
 Bufferの生成 [詳解]
 
void onConnect ()
 接続確立時にコールバックを呼ぶ [詳解]
 
void onDisconnect ()
 接続切断時にコールバックを呼ぶ [詳解]
 

その他の継承メンバ

- 基底クラス RTC::DataPortStatus に属する継承公開型
enum  Enum {
  PORT_OK = 0, PORT_ERROR, BUFFER_ERROR, BUFFER_FULL,
  BUFFER_EMPTY, BUFFER_TIMEOUT, SEND_FULL, SEND_TIMEOUT,
  RECV_EMPTY, RECV_TIMEOUT, INVALID_ARGS, PRECONDITION_NOT_MET,
  CONNECTION_LOST, UNKNOWN_ERROR
}
 
- 基底クラス RTC::DataPortStatus に属する継承静的公開メンバ関数
static const char * toString (DataPortStatus::Enum status)
 DataPortStatus リターンコードを文字列に変換 [詳解]
 
- 基底クラス RTC::InPortConnector に属する継承限定公開変数類
Logger rtclog
 ロガーストリーム [詳解]
 
ConnectorInfo m_profile
 ConnectorInfo. [詳解]
 
ConnectorListenersm_listeners
 ConnectorListenrs への参照 [詳解]
 
CdrBufferBasem_buffer
 Connector が保持している Buffer. [詳解]
 
bool m_littleEndian
 接続エンディアン [詳解]
 
ConnectorListenersm_outPortListeners
 OutPort 側の ConnectorListenrs への参照 [詳解]
 
PortBasem_directOutPort
 同一プロセス上のピアOutPortのポインタ [詳解]
 

詳解

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 のもつバッファにデータを書き込む。

から
1.0.0

構築子と解体子

DATAPORTSTATUS_ENUM RTC::InPortPullConnector::InPortPullConnector ( ConnectorInfo  info,
OutPortConsumer consumer,
ConnectorListeners listeners,
CdrBufferBase buffer = 0 
)

コンストラクタ

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

引数
infoConnectorInfo
consumerOutPortConsumer
listenersConnectorListeners 型のリスナオブジェクトリスト
bufferCdrBufferBase 型のバッファ
virtual RTC::InPortPullConnector::~InPortPullConnector ( )
virtual

デストラクタ

disconnect() が呼ばれ、consumer, publisher, buffer が解体・削除される。

関数詳解

virtual void RTC::InPortPullConnector::activate ( )
inlinevirtual

アクティブ化

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

RTC::ConnectorBaseを実装しています。

CdrBufferBase* RTC::InPortPullConnector::createBuffer ( ConnectorInfo info)
protected

Bufferの生成

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

引数
info接続情報
戻り値
バッファへのポインタ

参照元 deactivate().

virtual void RTC::InPortPullConnector::deactivate ( )
inlinevirtual

非アクティブ化

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

RTC::ConnectorBaseを実装しています。

参照先 createBuffer(), onConnect(), onDisconnect().

virtual ReturnCode RTC::InPortPullConnector::disconnect ( )
virtual

接続解除関数

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

RTC::InPortConnectorを実装しています。

void RTC::InPortPullConnector::onConnect ( )
protected

接続確立時にコールバックを呼ぶ

参照元 deactivate().

void RTC::InPortPullConnector::onDisconnect ( )
protected

接続切断時にコールバックを呼ぶ

参照元 deactivate().

virtual ReturnCode RTC::InPortPullConnector::read ( cdrMemoryStream &  data)
virtual

read 関数

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

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

RTC::InPortConnectorを実装しています。


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