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

OutPortProvider. [詳解]

#include <OutPortProvider.h>

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

クラス

struct  publishInterfaceFunc
 インターフェースプロファイルを公開するたのファンクタ [詳解]
 
struct  publishInterfaceProfileFunc
 インターフェースプロファイルを公開するたのファンクタ [詳解]
 

公開メンバ関数

virtual DATAPORTSTATUS_ENUM ~OutPortProvider (void)
 デストラクタ [詳解]
 
virtual void init (coil::Properties &prop)
 設定初期化 [詳解]
 
virtual void setBuffer (CdrBufferBase *buffer)=0
 バッファをセットする [詳解]
 
virtual void setListener (ConnectorInfo &info, ConnectorListeners *listeners)=0
 リスナを設定する。 [詳解]
 
virtual void setConnector (OutPortConnector *connector)=0
 Connectorを設定する。 [詳解]
 
virtual void publishInterfaceProfile (SDOPackage::NVList &properties)
 InterfaceProfile情報を公開する [詳解]
 
virtual bool publishInterface (SDOPackage::NVList &properties)
 Interface情報を公開する [詳解]
 

限定公開メンバ関数

void setPortType (const char *port_type)
 ポートタイプを設定する [詳解]
 
void setDataType (const char *data_type)
 データタイプを設定する [詳解]
 
void setInterfaceType (const char *interface_type)
 インターフェースタイプを設定する [詳解]
 
void setDataFlowType (const char *dataflow_type)
 データフロータイプを設定する [詳解]
 
void setSubscriptionType (const char *subs_type)
 サブスクリプションタイプを設定する [詳解]
 

限定公開変数類

SDOPackage::NVList m_properties
 ポートプロファイルを保持するプロパティ [詳解]
 
Logger rtclog
 ロガーストリーム [詳解]
 

その他の継承メンバ

- 基底クラス 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 リターンコードを文字列に変換 [詳解]
 

詳解

OutPortProvider.

InPort の PROVIDED インターフェースを実装するための抽象基底クラス。 InPort に対して新しいインターフェースを実装する場合には、このクラ スを継承し、以下の関数を実装する必要がある。

さらに、コンストラクタ内で以下の関数を呼び、設定情報を初期化する必 要がある。

そのほか、InPortProvider のプロパティとして外部に公開する必要のあ る値は、protected 変数 (SDOPackage::NVList) m_properties に対して セットすること。セットされた値は、インターフェースのプロファイルと して、また、接続時に他のインターフェースにこのインターフェースに関 する情報を与える際に利用される。以下の仮想関数は、ポートのインター フェースプロファイル取得時および接続処理時にポートから呼び出される。 予めセットされたこのインターフェースのプロファイル情報はこれらの関 数呼び出しによりポートに伝えられる。

InPortInPortProvider のファクトリ管理クラスに対して利用可能 な InPortProvider を問合せ、提供可能なインターフェースタイプを外 部に宣言する。従って、InPort に対して PROVIDED インターフェース を提供する InPortProvider のサブクラスは、InPortProviderFactory にファクトリ関数を登録する必要がある。

RTC::InPortProviderFactory::instance().addFactory() を、

を与えて呼び出す必要がある。以下は、ファクトリへの登録と、それを初 期化関数とした例である。

extern "C"
{
  void InPortCorbaCdrProviderInit(void)
  {
    RTC::InPortProviderFactory&
                        factory(RTC::InPortProviderFactory::instance());
    factory.addFactory("corba_cdr",
                       coil::Creator<RTC::InPortProvider,
                                       RTC::InPortCorbaCdrProvider>,
                       coil::Destructor<RTC::InPortProvider,
                                          RTC::InPortCorbaCdrProvider>);
  }
};

この例のように、ファクトリへの登録を初期化関数として、extern "C" によりシンボルを参照可能にしておく。こうすることで、 InPortProvider を共有オブジェクト化 (DLL化) して動的ロード可能に し、プロバイダの型を動的に追加することが可能となる。

から
0.4.0

OutPort の PROVIDED インターフェースを実装するための抽象基底クラス。 OutPort に対して新しいインターフェースを実装する場合には、このクラ スを継承し、以下の関数を実装する必要がある。

さらに、コンストラクタ内で以下の関数を呼び、設定情報を初期化する必 要がある。

そのほか、OutPortProvider のプロパティとして外部に公開する必要のあ る値は、protected 変数 (SDOPackage::NVList) m_properties に対して セットすること。セットされた値は、インターフェースのプロファイルと して、また、接続時に他のインターフェースにこのインターフェースに関 する情報を与える際に利用される。以下の仮想関数は、ポートのインター フェースプロファイル取得時および接続処理時にポートから呼び出される。 予めセットされたこのインターフェースのプロファイル情報はこれらの関 数呼び出しによりポートに伝えられる。

OutPortOutPortProvider のファクトリ管理クラスに対して利用可能 な OutPortProvider を問合せ、提供可能なインターフェースタイプを外 部に宣言する。従って、OutPort に対して PROVIDED インターフェース を提供する OutPortProvider のサブクラスは、OutPortProviderFactory にファクトリ関数を登録する必要がある。

RTC::OutPortProviderFactory::instance().addFactory() を、

を与えて呼び出す必要がある。以下は、ファクトリへの登録と、それを初 期化関数とした例である。

extern "C"
{
  void OutPortCorbaCdrProviderInit(void)
  {
    RTC::OutPortProviderFactory&
                        factory(RTC::OutPortProviderFactory::instance());
    factory.addFactory("corba_cdr",
                       coil::Creator<RTC::OutPortProvider,
                                       RTC::OutPortCorbaCdrProvider>,
                       coil::Destructor<RTC::OutPortProvider,
                                          RTC::OutPortCorbaCdrProvider>);
  }
};

この例のように、ファクトリへの登録を初期化関数として、extern "C" によりシンボルを参照可能にしておく。こうすることで、 OutPortProvider を共有オブジェクト化 (DLL化) して動的ロード可能に し、プロバイダの型を動的に追加することが可能となる。

から
0.4.0

構築子と解体子

virtual DATAPORTSTATUS_ENUM RTC::OutPortProvider::~OutPortProvider ( void  )
virtual

デストラクタ

仮想デストラクタ

関数詳解

virtual void RTC::OutPortProvider::init ( coil::Properties prop)
virtual

設定初期化

OutPortProvider の各種設定を行う。実装クラスでは、与えられた Propertiesから必要な情報を取得して各種設定を行う。この init() 関 数は、OutPortProvider生成直後および、接続時にそれぞれ呼ばれる可 能性がある。したがって、この関数は複数回呼ばれることを想定して記 述されるべきである。

引数
prop設定情報

RTC::OutPortCorbaCdrProvider, RTC::OutPortDirectProvider, RTC::OutPortSHMProviderで再実装されています。

virtual bool RTC::OutPortProvider::publishInterface ( SDOPackage::NVList &  properties)
virtual

Interface情報を公開する

Interface情報を公開する。引数で指定するプロパティ情報内の NameValue オブジェクトのdataport.interface_type 値を調べ、当該ポー トに設定されていなければNameValue に情報を追加する。すでに同一イ ンターフェースが登録済みの場合は何も行わない。

引数
propertiesInterface情報を受け取るプロパティ
戻り値
true: 正常終了

参照元 RTC::OutPortProvider::publishInterfaceFunc::operator()().

virtual void RTC::OutPortProvider::publishInterfaceProfile ( SDOPackage::NVList &  properties)
virtual

InterfaceProfile情報を公開する

InterfaceProfile情報を公開する。 引数で指定するプロパティ情報内の NameValue オブジェクトの dataport.interface_type 値を調べ、当該ポートに設定されている インターフェースタイプと一致する場合のみ情報を取得する。

引数
propertiesInterfaceProfile情報を受け取るプロパティ

参照元 RTC::OutPortProvider::publishInterfaceProfileFunc::operator()().

virtual void RTC::OutPortProvider::setBuffer ( CdrBufferBase buffer)
pure virtual

バッファをセットする

OutPortProviderがデータを取り出すバッファをセットする。 すでにセットされたバッファがある場合、以前のバッファへの ポインタに対して上書きされる。 OutPortProviderはバッファの所有権を仮定していないので、 バッファの削除はユーザの責任で行わなければならない。

引数
bufferOutPortProviderがデータを取り出すバッファへのポインタ

RTC::OutPortCorbaCdrProvider, RTC::OutPortDirectProvider, RTC::OutPortSHMProviderで実装されています。

virtual void RTC::OutPortProvider::setConnector ( OutPortConnector connector)
pure virtual

Connectorを設定する。

OutPort は接続確立時に OutPortConnector オブジェクトを生成し、生 成したオブジェクトのポインタと共にこの関数を呼び出す。所有権は OutPort が保持するので OutPortProviderOutPortConnector を削 除してはいけない。

引数
connectorOutPortConnector

RTC::OutPortCorbaCdrProvider, RTC::OutPortDirectProvider, RTC::OutPortSHMProviderで実装されています。

void RTC::OutPortProvider::setDataFlowType ( const char *  dataflow_type)
protected

データフロータイプを設定する

引数で指定したデータフロータイプを設定する。

引数
dataflow_type設定対象データフロータイプ
void RTC::OutPortProvider::setDataType ( const char *  data_type)
protected

データタイプを設定する

引数で指定したデータタイプを設定する。

引数
data_type設定対象データタイプ
void RTC::OutPortProvider::setInterfaceType ( const char *  interface_type)
protected

インターフェースタイプを設定する

引数で指定したインターフェースタイプを設定する。

引数
interface_type設定対象インターフェースタイプ
virtual void RTC::OutPortProvider::setListener ( ConnectorInfo info,
ConnectorListeners listeners 
)
pure virtual

リスナを設定する。

OutPort はデータ送信処理における各種イベントに対して特定のリスナ オブジェクトをコールするコールバック機構を提供する。詳細は ConnectorListener.hConnectorDataListener, ConnectorListener 等を参照のこと。OutPortProvider のサブクラスでは、与えられたリス ナを適切なタイミングで呼び出すべきである。ただし、すべてのリスナ を呼び出す必要はない。

引数
info接続情報
listenersリスナオブジェクト

RTC::OutPortCorbaCdrProvider, RTC::OutPortDirectProvider, RTC::OutPortSHMProviderで実装されています。

void RTC::OutPortProvider::setPortType ( const char *  port_type)
protected

ポートタイプを設定する

引数で指定したポートタイプを設定する。

引数
port_type設定対象ポートタイプ
void RTC::OutPortProvider::setSubscriptionType ( const char *  subs_type)
protected

サブスクリプションタイプを設定する

引数で指定したサブスクリプションタイプを設定する。

引数
subs_type設定対象サブスクリプションタイプ

メンバ詳解

SDOPackage::NVList RTC::OutPortProvider::m_properties
protected

ポートプロファイルを保持するプロパティ

Logger RTC::OutPortProvider::rtclog
mutableprotected

ロガーストリーム


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