OpenRTM-aist 2.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
InPortProvider.h
[詳解]
1// -*- C++ -*-
20#ifndef RTC_INPORTPROVIDER_H
21#define RTC_INPORTPROVIDER_H
22
23#include <coil/Factory.h>
24
25#include <rtm/BufferBase.h>
26#include <rtm/NVUtil.h>
27#include <rtm/SystemLogger.h>
28#include <rtm/DataPortStatus.h>
29#include <rtm/InPortConnector.h>
30
31#include <string>
32
33namespace RTC
34{
35 class ConnectorListeners;
36 class ConnectorInfo;
37
191 {
192 public:
207
222
250 virtual void init(coil::Properties& prop) = 0;
251
277 virtual void setBuffer(BufferBase<ByteData>* buffer) = 0;
278
309 virtual void setListener(ConnectorInfo& info,
310 ConnectorListenersBase* listeners) = 0;
311
336 virtual void setConnector(InPortConnector* connector) = 0;
337
361 virtual void publishInterfaceProfile(SDOPackage::NVList& prop);
362
390 virtual bool publishInterface(SDOPackage::NVList& prop);
391
392 protected:
410 void setInterfaceType(const char* interface_type);
411
429 void setDataFlowType(const char* dataflow_type);
430
448 void setSubscriptionType(const char* subs_type);
449
450
451 protected:
459 SDOPackage::NVList m_properties;
460
468 mutable Logger rtclog;
469
470 private:
471 std::string m_interfaceType;
472 std::string m_dataflowType;
473 std::string m_subscriptionType;
474
475 public:
476 // functors
485 {
486 explicit publishInterfaceProfileFunc(SDOPackage::NVList& prop)
487 : m_prop(prop) {}
489 {
491 }
492 SDOPackage::NVList& m_prop;
493 };
494
503 {
504 explicit publishInterfaceFunc(SDOPackage::NVList& prop)
505 : m_prop(prop), provider_(nullptr) {}
507 {
508 if (provider->publishInterface(m_prop))
509 {
510 provider_ = provider;
511 }
512 }
513 SDOPackage::NVList& m_prop;
515 };
516
517
518 };
519
527 using InPortProviderFactory = ::coil::GlobalFactory<InPortProvider>;
528} // namespace RTC
529
530#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
531EXTERN template class DLL_PLUGIN coil::GlobalFactory<RTC::InPortProvider>;
532#elif defined(__GNUC__)
533EXTERN template class coil::GlobalFactory<RTC::InPortProvider>;
534#endif
535
536#endif // RTC_INPORTPROVIDER_H
Buffer abstract class
DataPortStatus class
InPortConnector base class
NameValue and NVList utility functions
RT component logger class
BufferBase 抽象クラス
Definition BufferBase.h:106
ConnectorInfo クラス
Definition ConnectorBase.h:50
Definition ConnectorListener.h:1354
InPortConnector 基底クラス
Definition InPortConnector.h:54
Definition InPortProvider.h:191
void setDataFlowType(const char *dataflow_type)
データフロータイプを設定する
SDOPackage::NVList m_properties
ポートプロファイルを保持するプロパティ
Definition InPortProvider.h:459
virtual void setConnector(InPortConnector *connector)=0
Connectorを設定する。
virtual void setBuffer(BufferBase< ByteData > *buffer)=0
バッファをセットする
void setInterfaceType(const char *interface_type)
インタフェースタイプを設定する
virtual ~InPortProvider()
デストラクタ
virtual void init(coil::Properties &prop)=0
設定初期化
Logger rtclog
ロガーストリーム
Definition InPortProvider.h:468
virtual bool publishInterface(SDOPackage::NVList &prop)
Interface情報を公開する
virtual void publishInterfaceProfile(SDOPackage::NVList &prop)
InterfaceProfile情報を公開する
void setSubscriptionType(const char *subs_type)
サブスクリプションタイプを設定する
InPortProvider()
コンストラクタ
virtual void setListener(ConnectorInfo &info, ConnectorListenersBase *listeners)=0
リスナを設定する。
Logger クラス
Definition SystemLogger.h:101
RTコンポーネント
::coil::GlobalFactory< InPortProvider > InPortProviderFactory
InPortProviderFactory型宣言
Definition InPortProvider.h:527
インターフェースプロファイルを公開するたのファンクタ
Definition InPortProvider.h:503
void operator()(InPortProvider *provider)
Definition InPortProvider.h:506
publishInterfaceFunc(SDOPackage::NVList &prop)
Definition InPortProvider.h:504
InPortProvider * provider_
Definition InPortProvider.h:514
SDOPackage::NVList & m_prop
Definition InPortProvider.h:513
インターフェースプロファイルを公開するたのファンクタ
Definition InPortProvider.h:485
SDOPackage::NVList & m_prop
Definition InPortProvider.h:492
publishInterfaceProfileFunc(SDOPackage::NVList &prop)
Definition InPortProvider.h:486
void operator()(InPortProvider *provider)
Definition InPortProvider.h:488