OpenRTM  1.0.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 
42 namespace RTC
43 {
44  class InPortProvider;
45  class OutPortConsumer;
46  class InPortConnector;
47 
67  class InPortBase
68  : public PortBase, public DataPortStatus
69  {
70  public:
72 
73  typedef std::vector<InPortConnector*> ConnectorList;
74 
94  InPortBase(const char* name, const char* data_type);
95 
109  virtual ~InPortBase(void);
110 
126  void init(coil::Properties& prop);
127 
142  virtual bool read() = 0;
143 
160 
179  const std::vector<InPortConnector*>& connectors();
180 
200 
220 
240 
261  InPortConnector* getConnectorById(const char* id);
262 
283  InPortConnector* getConnectorByName(const char* name);
284 
307  bool getConnectorProfileById(const char* id,
308  ConnectorInfo& prof);
309 
332  bool getConnectorProfileByName(const char* name,
333  ConnectorInfo& prof);
334 
335 
352  virtual void activateInterfaces();
353 
370  virtual void deactivateInterfaces();
371 
448  ConnectorDataListener* listener,
449  bool autoclean = true);
450 
451 
472  ConnectorDataListener* listener);
473 
474 
527  void addConnectorListener(ConnectorListenerType callback_type,
528  ConnectorListener* listener,
529  bool autoclean = true);
530 
551  ConnectorListener* listener);
552 
570  bool isLittleEndian();
571 
597  virtual ReturnCode_t
598  connect(ConnectorProfile& connector_profile)
599  throw (CORBA::SystemException);
600 
601  protected:
602 
631  virtual ReturnCode_t
632  publishInterfaces(ConnectorProfile& connector_profile);
633 
661  virtual ReturnCode_t
662  subscribeInterfaces(const ConnectorProfile& connector_profile);
663 
685  virtual void
686  unsubscribeInterfaces(const ConnectorProfile& connector_profile);
687 
688 
696  void initProviders();
697 
705  void initConsumers();
706 
738  bool checkEndian(const coil::Properties& prop, bool& littleEndian);
739 
752  createProvider(ConnectorProfile& cprof, coil::Properties& prop);
753 
766  createConsumer(const ConnectorProfile& cprof, coil::Properties& prop);
767 
780  createConnector(ConnectorProfile& cprof, coil::Properties& prop,
781  InPortProvider* provider);
794  createConnector(const ConnectorProfile& cprof, coil::Properties& prop,
795  OutPortConsumer* consumer);
796 
797  protected:
853  ConnectorList m_connectors;
862 
871  };
872 }; // namespace RTC
873 
874 #endif // RTC_INPORTBASE_H
RTC&#39;s Port base class
InPortConnector * getConnectorById(const char *id)
ConnectorProfileをIDで取得
ConnectorListeners クラス
Definition: ConnectorListener.h:813
bool checkEndian(const coil::Properties &prop, bool &littleEndian)
シリアライザのエンディアンをチェックする
virtual void activateInterfaces()
InPortを activates する
virtual void deactivateInterfaces()
全ての Port のインターフェースを deactivates する
InPortConnector 基底クラス
Definition: InPortConnector.h:46
virtual void unsubscribeInterfaces(const ConnectorProfile &connector_profile)
Interfaceへの接続を解除する
#define DATAPORTSTATUS_ENUM
RTC::DataPortStatus 導入
Definition: DataPortStatus.h:233
DataPortStatus class
CdrBufferBase * m_thebuffer
バッファ
Definition: InPortBase.h:821
RTコンポーネント
coil::Properties & properties()
プロパティを取得する
ConnectorListener クラス
Definition: ConnectorListener.h:516
ConnectorDataListener クラス
Definition: ConnectorListener.h:188
ConnectorInfo クラス
Definition: ConnectorBase.h:43
ConnectorListeners m_listeners
ConnectorDataListener リスナ
Definition: InPortBase.h:870
virtual ~InPortBase(void)
デストラクタ
std::vector< ConnectorInfo > ConnectorInfoList
Definition: ConnectorBase.h:129
bool isLittleEndian()
endian 設定を返す
coil::vstring m_providerTypes
利用可能provider
Definition: InPortBase.h:837
coil::vstring m_consumerTypes
利用可能consumer
Definition: InPortBase.h:845
Definition: InPortProvider.h:190
std::vector< std::string > vstring
Definition: stringutil.h:37
ConnectorDataListenerType
ConnectorDataListener のタイプ
Definition: ConnectorListener.h:67
bool m_littleEndian
接続エンディアン
Definition: InPortBase.h:861
Port の基底クラス
Definition: PortBase.h:134
DATAPORTSTATUS_ENUM typedef std::vector< InPortConnector * > ConnectorList
Definition: InPortBase.h:73
void removeConnectorDataListener(ConnectorDataListenerType listener_type, ConnectorDataListener *listener)
ConnectorDataListener リスナを削除する
InPortBase(const char *name, const char *data_type)
コンストラクタ
virtual ReturnCode_t subscribeInterfaces(const ConnectorProfile &connector_profile)
Interfaceに接続する
bool getConnectorProfileById(const char *id, ConnectorInfo &prof)
ConnectorProfileをIDで取得
ConnectorInfoList getConnectorProfiles()
ConnectorProfile を取得
void initProviders()
InPort provider の初期化
coil::vstring getConnectorIds()
ConnectorId を取得
bool getConnectorProfileByName(const char *name, ConnectorInfo &prof)
ConnectorProfileを名前で取得
void addConnectorListener(ConnectorListenerType callback_type, ConnectorListener *listener, bool autoclean=true)
ConnectorListener リスナを追加する
InPort 用 Port
Definition: InPortBase.h:67
InPortProvider * createProvider(ConnectorProfile &cprof, coil::Properties &prop)
InPort provider の生成
virtual ReturnCode_t publishInterfaces(ConnectorProfile &connector_profile)
Interface情報を公開する
void initConsumers()
OutPort consumer の初期化
ConnectorListenerType
ConnectorListener のタイプ
Definition: ConnectorListener.h:398
プロパティセットを表現するクラス
Definition: Properties.h:101
void removeConnectorListener(ConnectorListenerType callback_type, ConnectorListener *listener)
ConnectorDataListener リスナを削除する
coil::Properties m_properties
プロパティ
Definition: InPortBase.h:829
OutPortConsumer 抽象クラス
Definition: OutPortConsumer.h:171
coil::vstring getConnectorNames()
Connectorの名前を取得
void init(coil::Properties &prop)
プロパティの初期化
bool m_singlebuffer
バッファモード
Definition: InPortBase.h:813
OutPortConsumer * createConsumer(const ConnectorProfile &cprof, coil::Properties &prop)
OutPort consumer の生成
virtual ReturnCode_t connect(ConnectorProfile &connector_profile)
[CORBA interface] Port の接続を行う
DataPortStatus mixin クラス
Definition: DataPortStatus.h:54
BufferBase 抽象クラス
Definition: BufferBase.h:104
InPortConnector * createConnector(ConnectorProfile &cprof, coil::Properties &prop, InPortProvider *provider)
InPortPushConnector の生成
virtual bool read()=0
RTObject_impl::readAll()から呼ばれる仮想関数
connector listener class
void addConnectorDataListener(ConnectorDataListenerType listener_type, ConnectorDataListener *listener, bool autoclean=true)
ConnectorDataListener リスナを追加する
ConnectorList m_connectors
接続リスト
Definition: InPortBase.h:853
const std::vector< InPortConnector * > & connectors()
Connector を取得
InPortConnector * getConnectorByName(const char *name)
ConnectorProfileを名前で取得