#include <OutPortProvider.h>
構成 | |
| struct | publishInterfaceFunc |
| インターフェースプロファイルを公開するたのファンクタ [詳細] | |
| struct | publishInterfaceProfileFunc |
| インターフェースプロファイルを公開するたのファンクタ [詳細] | |
Public メソッド | |
| 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情報を公開する. | |
Protected メソッド | |
| 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) |
| サブスクリプションタイプを設定する | |
Protected 変数 | |
| SDOPackage::NVList | m_properties |
| ポートプロファイルを保持するプロパティ | |
| Logger | rtclog |
| ロガーストリーム | |
InPort の PROVIDED インターフェースを実装するための抽象基底クラス。 InPort に対して新しいインターフェースを実装する場合には、このクラ スを継承し、以下の関数を実装する必要がある。
さらに、コンストラクタ内で以下の関数を呼び、設定情報を初期化する必 要がある。
そのほか、InPortProvider のプロパティとして外部に公開する必要のあ る値は、protected 変数 (SDOPackage::NVList) m_properties に対して セットすること。セットされた値は、インターフェースのプロファイルと して、また、接続時に他のインターフェースにこのインターフェースに関 する情報を与える際に利用される。以下の仮想関数は、ポートのインター フェースプロファイル取得時および接続処理時にポートから呼び出される。 予めセットされたこのインターフェースのプロファイル情報はこれらの関 数呼び出しによりポートに伝えられる。
InPort は InPortProvider のファクトリ管理クラスに対して利用可能 な 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化) して動的ロード可能に し、プロバイダの型を動的に追加することが可能となる。
OutPort の PROVIDED インターフェースを実装するための抽象基底クラス。 OutPort に対して新しいインターフェースを実装する場合には、このクラ スを継承し、以下の関数を実装する必要がある。
さらに、コンストラクタ内で以下の関数を呼び、設定情報を初期化する必 要がある。
そのほか、OutPortProvider のプロパティとして外部に公開する必要のあ る値は、protected 変数 (SDOPackage::NVList) m_properties に対して セットすること。セットされた値は、インターフェースのプロファイルと して、また、接続時に他のインターフェースにこのインターフェースに関 する情報を与える際に利用される。以下の仮想関数は、ポートのインター フェースプロファイル取得時および接続処理時にポートから呼び出される。 予めセットされたこのインターフェースのプロファイル情報はこれらの関 数呼び出しによりポートに伝えられる。
OutPort は OutPortProvider のファクトリ管理クラスに対して利用可能 な 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化) して動的ロード可能に し、プロバイダの型を動的に追加することが可能となる。
| virtual DATAPORTSTATUS_ENUM RTC::OutPortProvider::~OutPortProvider | ( | void | ) | [virtual] |
デストラクタ
仮想デストラクタ
| virtual void RTC::OutPortProvider::init | ( | coil::Properties & | prop | ) | [virtual] |
設定初期化
OutPortProvider の各種設定を行う。実装クラスでは、与えられた Propertiesから必要な情報を取得して各種設定を行う。この init() 関 数は、OutPortProvider生成直後および、接続時にそれぞれ呼ばれる可 能性がある。したがって、この関数は複数回呼ばれることを想定して記 述されるべきである。
| prop | 設定情報 |
RTC::OutPortCorbaCdrProviderで再定義されています。
| virtual bool RTC::OutPortProvider::publishInterface | ( | SDOPackage::NVList & | properties | ) | [virtual] |
Interface情報を公開する.
Interface情報を公開する。引数で指定するプロパティ情報内の NameValue オブジェクトのdataport.interface_type 値を調べ、当該ポー トに設定されていなければNameValue に情報を追加する。すでに同一イ ンターフェースが登録済みの場合は何も行わない。
| properties | Interface情報を受け取るプロパティ |
参照元 RTC::OutPortProvider::publishInterfaceFunc::operator()().
| virtual void RTC::OutPortProvider::publishInterfaceProfile | ( | SDOPackage::NVList & | properties | ) | [virtual] |
InterfaceProfile情報を公開する.
InterfaceProfile情報を公開する。 引数で指定するプロパティ情報内の NameValue オブジェクトの dataport.interface_type 値を調べ、当該ポートに設定されている インターフェースタイプと一致する場合のみ情報を取得する。
| properties | InterfaceProfile情報を受け取るプロパティ |
参照元 RTC::OutPortProvider::publishInterfaceProfileFunc::operator()().
| virtual void RTC::OutPortProvider::setBuffer | ( | CdrBufferBase * | buffer | ) | [pure virtual] |
バッファをセットする
OutPortProviderがデータを取り出すバッファをセットする。 すでにセットされたバッファがある場合、以前のバッファへの ポインタに対して上書きされる。 OutPortProviderはバッファの所有権を仮定していないので、 バッファの削除はユーザの責任で行わなければならない。
| buffer | OutPortProviderがデータを取り出すバッファへのポインタ |
RTC::OutPortCorbaCdrProviderで実装されています。
| virtual void RTC::OutPortProvider::setConnector | ( | OutPortConnector * | connector | ) | [pure virtual] |
Connectorを設定する。.
OutPort は接続確立時に OutPortConnector オブジェクトを生成し、生 成したオブジェクトのポインタと共にこの関数を呼び出す。所有権は OutPort が保持するので OutPortProvider は OutPortConnector を削 除してはいけない。
| connector | OutPortConnector |
RTC::OutPortCorbaCdrProviderで実装されています。
| 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.h の ConnectorDataListener, ConnectorListener 等を参照のこと。OutPortProvider のサブクラスでは、与えられたリス ナを適切なタイミングで呼び出すべきである。ただし、すべてのリスナ を呼び出す必要はない。
| info | 接続情報 | |
| listeners | リスナオブジェクト |
RTC::OutPortCorbaCdrProviderで実装されています。
| 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 [mutable, protected] |
ロガーストリーム
1.6.3