OpenRTM-aist  2.1.0
InPortBase.h
[詳解]
1 // -*- C++ -*-
20 #ifndef RTC_INPORTBASE_H
21 #define RTC_INPORTBASE_H
22 
23 #include <rtm/PortBase.h>
24 #include <rtm/DataPortStatus.h>
25 #include <rtm/CdrBufferBase.h>
26 #include <rtm/ConnectorListener.h>
27 #include <rtm/OutPortBase.h>
28 
43 namespace RTC
44 {
45  class InPortProvider;
46  class OutPortConsumer;
47  class InPortConnector;
48 
68  class InPortBase
69  : public PortBase
70  {
71  public:
72 
73  using ConnectorList = std::vector<InPortConnector*>;
74 
94  InPortBase(const char* name, const char* data_type);
95 
109  ~InPortBase() override;
110 
126  virtual void init(coil::Properties& prop);
127 
142  virtual bool read(std::string name="") = 0;
143 
160 
179  const std::vector<InPortConnector*>& connectors();
180 
200 
219  coil::vstring getConnectorIds();
220 
239  coil::vstring getConnectorNames();
240 
262 
284 
307  bool getConnectorProfileById(const char* id,
308  ConnectorInfo& prof);
309 
332  bool getConnectorProfileByName(const char* name,
333  ConnectorInfo& prof);
334 
335 
352  void activateInterfaces() override;
353 
370  void deactivateInterfaces() override;
371 
448  ConnectorDataListener* listener,
449  bool autoclean = true);
450 
451 
472  ConnectorDataListener* listener);
473 
474 
528  ConnectorListener* listener,
529  bool autoclean = true);
530 
551  ConnectorListener* listener);
552 
571 
597  ReturnCode_t
598  connect(ConnectorProfile& connector_profile) override;
599 
618  ReturnCode_t notify_connect(ConnectorProfile& connector_profile) override;
619  protected:
648  ReturnCode_t
649  publishInterfaces(ConnectorProfile& cprof) override;
650 
678  ReturnCode_t
679  subscribeInterfaces(const ConnectorProfile& cprof) override;
680 
702  void
703  unsubscribeInterfaces(const ConnectorProfile& connector_profile) override;
704 
705 
714 
723 
755  bool checkEndian(const coil::Properties& prop, bool& littleEndian);
756 
769  createProvider(ConnectorProfile& cprof, coil::Properties& prop);
770 
783  createConsumer(const ConnectorProfile& cprof, coil::Properties& prop);
784 
797  createConnector(ConnectorProfile& cprof, coil::Properties& prop,
798  InPortProvider* provider);
811  createConnector(const ConnectorProfile& cprof, coil::Properties& prop,
812  OutPortConsumer* consumer);
821 
836  virtual void initConnectorListeners();
868  coil::vstring m_providerTypes;
876  coil::vstring m_consumerTypes;
893 
902  };
903 } // namespace RTC
904 
905 #endif // RTC_INPORTBASE_H
connector listener class
DataPortStatus class
InPortBase base class
RTC's Port base class
BufferBase 抽象クラス
Definition: BufferBase.h:106
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
bool m_littleEndian
接続エンディアン
Definition: InPortBase.h:892
virtual void init(coil::Properties &prop)
プロパティの初期化
ReturnCode_t notify_connect(ConnectorProfile &connector_profile) override
coil::vstring m_providerTypes
利用可能provider
Definition: InPortBase.h:868
InPortConnector * getConnectorByName(const char *name)
ConnectorProfileを名前で取得
std::vector< InPortConnector * > ConnectorList
Definition: InPortBase.h:73
~InPortBase() override
デストラクタ
void removeConnectorDataListener(ConnectorDataListenerType type, ConnectorDataListener *listener)
ConnectorDataListener リスナを削除する
OutPortConsumer * createConsumer(const ConnectorProfile &cprof, coil::Properties &prop)
OutPort consumer の生成
void addConnectorListener(ConnectorListenerType type, ConnectorListener *listener, bool autoclean=true)
ConnectorListener リスナを追加する
virtual bool read(std::string name="")=0
RTObject_impl::readAll()から呼ばれる仮想関数
InPortProvider * createProvider(ConnectorProfile &cprof, coil::Properties &prop)
InPort provider の生成
const std::vector< InPortConnector * > & connectors()
Connector を取得
bool m_singlebuffer
バッファモード
Definition: InPortBase.h:852
ConnectorList m_connectors
接続リスト
Definition: InPortBase.h:884
OutPortBase * getLocalOutPort(const ConnectorInfo &profile)
ローカルのピアOutPortを取得
CdrBufferBase * m_thebuffer
バッファ
Definition: InPortBase.h:860
ReturnCode_t subscribeInterfaces(const ConnectorProfile &cprof) override
Interfaceに接続する
void unsubscribeInterfaces(const ConnectorProfile &connector_profile) override
Interfaceへの接続を解除する
coil::Properties & properties()
プロパティを取得する
virtual void initConnectorListeners()
コネクタリスナの初期化
ReturnCode_t connect(ConnectorProfile &connector_profile) override
[CORBA interface] Port の接続を行う
coil::vstring getConnectorIds()
ConnectorId を取得
void deactivateInterfaces() override
全ての Port のインターフェースを deactivates する
ConnectorListenersBase * m_listeners
ConnectorDataListener リスナ
Definition: InPortBase.h:901
void addConnectorDataListener(ConnectorDataListenerType type, ConnectorDataListener *listener, bool autoclean=true)
ConnectorDataListener リスナを追加する
virtual ConnectorListenersBase * getListeners()
リスナホルダを取得する
InPortConnector * createConnector(ConnectorProfile &cprof, coil::Properties &prop, InPortProvider *provider)
InPortPushConnector の生成
coil::vstring getConnectorNames()
Connectorの名前を取得
ConnectorInfoList getConnectorProfiles()
ConnectorProfile を取得
void initProviders()
InPort provider の初期化
void activateInterfaces() override
InPortを activates する
InPortConnector * createConnector(const ConnectorProfile &cprof, coil::Properties &prop, OutPortConsumer *consumer)
InPortPullConnector の生成
coil::vstring m_consumerTypes
利用可能consumer
Definition: InPortBase.h:876
ReturnCode_t publishInterfaces(ConnectorProfile &cprof) override
Interface情報を公開する
InPortBase(const char *name, const char *data_type)
コンストラクタ
bool getConnectorProfileById(const char *id, ConnectorInfo &prof)
ConnectorProfileをIDで取得
bool checkEndian(const coil::Properties &prop, bool &littleEndian)
シリアライザのエンディアンをチェックする
void removeConnectorListener(ConnectorListenerType type, ConnectorListener *listener)
ConnectorDataListener リスナを削除する
bool getConnectorProfileByName(const char *name, ConnectorInfo &prof)
ConnectorProfileを名前で取得
void initConsumers()
OutPort consumer の初期化
InPortConnector * getConnectorById(const char *id)
ConnectorProfileをIDで取得
bool isLittleEndian()
endian 設定を返す
InPortConnector 基底クラス
Definition: InPortConnector.h:54
Definition: InPortProvider.h:191
OutPort 基底クラス
Definition: OutPortBase.h:229
OutPortConsumer 抽象クラス
Definition: OutPortConsumer.h:173
Port の基底クラス
Definition: PortBase.h:132
RTコンポーネント
ConnectorDataListenerType
ConnectorDataListener のタイプ
Definition: ConnectorListener.h:144
coil::Properties Properties
Definition: RTC.h:72
ConnectorListenerType
ConnectorListener のタイプ
Definition: ConnectorListener.h:670
std::vector< ConnectorInfo > ConnectorInfoList
Definition: ConnectorBase.h:181