OpenRTM-aist 2.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
OutPortBase.h
[詳解]
1// -*- C++ -*-
20#ifndef RTC_OUTPORTBASE_H
21#define RTC_OUTPORTBASE_H
22
23#include <coil/Properties.h>
24#include <coil/stringutil.h>
25
26#include <rtm/PortBase.h>
27#include <rtm/InPortConsumer.h>
28#include <rtm/OutPortProvider.h>
29#include <rtm/ConnectorBase.h>
30#include <rtm/CdrBufferBase.h>
31#include <rtm/SystemLogger.h>
33
34namespace RTC
35{
36 class PublisherBase;
37 class ConnectorBase;
38 class OutPortConnector;
39
228 : public PortBase
229 {
230 public:
231
232 using ConnectorList = std::vector<OutPortConnector*>;
233
253 OutPortBase(const char* name, const char* data_type);
254
271 ~OutPortBase() override;
272
289 void init(coil::Properties& prop);
290
312 virtual bool write() = 0;
313
332 coil::Properties& properties();
333
352 const std::vector<OutPortConnector*>& connectors();
353
373
392 coil::vstring getConnectorIds();
393
412 coil::vstring getConnectorNames();
413
435
457
480 bool getConnectorProfileById(const char* id,
481 ConnectorInfo& prof);
482
505 bool getConnectorProfileByName(const char* name,
506 ConnectorInfo& prof);
507
508
525 void activateInterfaces() override;
526
543 void deactivateInterfaces() override;
544
545
622 ConnectorDataListener* listener,
623 bool autoclean = true);
624
625
646 ConnectorDataListener* listener);
647
648
702 ConnectorListener* listener,
703 bool autoclean = true);
704
725 ConnectorListener* listener);
726
745
771 ReturnCode_t
772 connect(ConnectorProfile& connector_profile) override;
773
792
793
794 protected:
809 void configure();
810
857 ReturnCode_t
858 publishInterfaces(ConnectorProfile& cprof) override;
859
898 ReturnCode_t
899 subscribeInterfaces(const ConnectorProfile& cprof) override;
900
932 void
933 unsubscribeInterfaces(const ConnectorProfile& connector_profile) override;
934
943
952
988 bool checkEndian(const coil::Properties& prop, bool& littleEndian);
989
997 OutPortProvider* createProvider(ConnectorProfile& cprof,
998 coil::Properties& prop);
1006 InPortConsumer* createConsumer(const ConnectorProfile& cprof,
1007 coil::Properties& prop);
1008
1016 OutPortConnector* createConnector(const ConnectorProfile& cprof,
1017 coil::Properties& prop,
1018 InPortConsumer* consumer);
1026 OutPortConnector* createConnector(const ConnectorProfile& cprof,
1027 coil::Properties& prop,
1028 OutPortProvider* provider);
1029
1030 ReturnCode_t notify_connect(ConnectorProfile& connector_profile) override;
1031
1032 protected:
1056
1057
1058
1066 std::vector<OutPortConnector*> m_connectors;
1074 coil::vstring m_providerTypes;
1082 coil::vstring m_consumerTypes;
1099
1107 struct provider_cleanup;
1108
1116 struct connector_cleanup;
1117 };
1118} // End of namespace RTC
1119
1120#endif // RTC_RTCOUTPORTBASE_H
1121
Connector base class
connector listener class
InPortConsumer class
OutPortProvider class
RTC's Port base class
RT component logger class
ConnectorDataListener クラス
Definition ConnectorListener.h:408
ConnectorInfo クラス
Definition ConnectorBase.h:50
ConnectorListener クラス
Definition ConnectorListener.h:884
Definition ConnectorListener.h:1354
InPort 用 Port
Definition InPortBase.h:70
InPortConsumer 抽象クラス
Definition InPortConsumer.h:78
OutPort 基底クラス
Definition OutPortBase.h:229
OutPortProvider * createProvider(ConnectorProfile &cprof, coil::Properties &prop)
OutPort provider の生成
bool m_littleEndian
接続エンディアン
Definition OutPortBase.h:1090
InPortBase * getLocalInPort(const ConnectorInfo &profile)
ローカルのピアInPortを取得
coil::vstring getConnectorIds()
ConnectorId を取得
void activateInterfaces() override
全ての Port のインターフェースを activate する
std::vector< OutPortConnector * > ConnectorList
Definition OutPortBase.h:232
OutPortConnector * getConnectorByName(const char *name)
ConnectorProfileを名前で取得
void addConnectorDataListener(ConnectorDataListenerType type, ConnectorDataListener *listener, bool autoclean=true)
ConnectorDataListener リスナを追加する
void init(coil::Properties &prop)
プロパティの初期化
virtual bool write()=0
データ書き込み
void initConsumers()
InPort consumer の初期化
coil::vstring m_consumerTypes
利用可能consumer
Definition OutPortBase.h:1082
coil::vstring getConnectorNames()
Connectorの名前を取得
void configure()
OutPortの設定を行う
bool getConnectorProfileByName(const char *name, ConnectorInfo &prof)
ConnectorProfileを名前で取得
void removeConnectorListener(ConnectorListenerType type, ConnectorListener *listener)
ConnectorDataListener リスナを削除する
InPortConsumer * createConsumer(const ConnectorProfile &cprof, coil::Properties &prop)
InPort consumer の生成
OutPortConnector * createConnector(const ConnectorProfile &cprof, coil::Properties &prop, InPortConsumer *consumer)
OutPortPushConnector の生成
~OutPortBase() override
デストラクタ
ConnectorInfoList getConnectorProfiles()
ConnectorProfile を取得
const std::vector< OutPortConnector * > & connectors()
Connector を取得
ConnectorListenersBase * m_listeners
ConnectorDataListener リスナ
Definition OutPortBase.h:1098
void initProviders()
OutPort provider の初期化
bool getConnectorProfileById(const char *id, ConnectorInfo &prof)
ConnectorProfileをIDで取得
ReturnCode_t connect(ConnectorProfile &connector_profile) override
[CORBA interface] Port の接続を行う
OutPortBase(const char *name, const char *data_type)
コンストラクタ
ReturnCode_t notify_connect(ConnectorProfile &connector_profile) override
std::vector< OutPortConnector * > m_connectors
接続リスト
Definition OutPortBase.h:1066
ReturnCode_t subscribeInterfaces(const ConnectorProfile &cprof) override
Interface に接続する
virtual void initConnectorListeners()
コネクタリスナの初期化
void unsubscribeInterfaces(const ConnectorProfile &connector_profile) override
Interface の接続を解除する
OutPortConnector * getConnectorById(const char *id)
ConnectorProfileをIDで取得
coil::Properties & properties()
プロパティを取得する
void removeConnectorDataListener(ConnectorDataListenerType type, ConnectorDataListener *listener)
ConnectorDataListener リスナを削除する
virtual ConnectorListenersBase * getListeners()
リスナホルダを取得する
OutPortConnector * createConnector(const ConnectorProfile &cprof, coil::Properties &prop, OutPortProvider *provider)
OutPortPullConnector の生成
bool checkEndian(const coil::Properties &prop, bool &littleEndian)
シリアライザのエンディアンをチェックする
bool isLittleEndian()
endian 設定を返す
void addConnectorListener(ConnectorListenerType type, ConnectorListener *listener, bool autoclean=true)
ConnectorListener リスナを追加する
coil::vstring m_providerTypes
利用可能provider
Definition OutPortBase.h:1074
ReturnCode_t publishInterfaces(ConnectorProfile &cprof) override
Interface 情報を公開する
void deactivateInterfaces() override
全ての Port のインターフェースを deactivate する
OutPortConnector 基底クラス
Definition OutPortConnector.h:58
OutPortProvider
Definition OutPortProvider.h:190
Port の基底クラス
Definition PortBase.h:132
RTコンポーネント
ConnectorDataListenerType
ConnectorDataListener のタイプ
Definition ConnectorListener.h:144
std::vector< ConnectorInfo > ConnectorInfoList
Definition ConnectorBase.h:181
ConnectorListenerType
ConnectorListener のタイプ
Definition ConnectorListener.h:670