20#ifndef RTC_PUBLISHERPERIODIC_H
21#define RTC_PUBLISHERPERIODIC_H
24#include <condition_variable>
25#include <coil/PeriodicTask.h>
320 std::chrono::nanoseconds timeout)
override;
714 if (m_buffer->
empty() && !m_readback)
724 Logger rtclog{
"PublisherPeriodic"};
725 InPortConsumer* m_consumer{
nullptr};
727 ConnectorInfo m_profile;
728 coil::PeriodicTaskBase* m_task{
nullptr};
729 ConnectorListenersBase* m_listeners{
nullptr};
731 std::mutex m_retmutex;
734 bool m_active{
false};
735 bool m_readback{
false};
void PublisherPeriodicInit()
RT component logger class
#define RTC_DEBUG(fmt)
デバッグログ出力マクロ。
Definition SystemLogger.h:665
BufferBase 抽象クラス
Definition BufferBase.h:106
virtual bool empty() const =0
バッファemptyチェック
シリアライザの基底クラス
Definition ByteDataStreamBase.h:63
シリアライズ後のバイト列を操作するクラス
Definition ByteData.h:30
ConnectorInfo クラス
Definition ConnectorBase.h:50
Definition ConnectorListener.h:1354
virtual::RTC::ConnectorListenerStatus::Enum notifyOut(ConnectorDataListenerType type, ConnectorInfo &info, ByteData &data)=0
リスナーへ通知する(OutPort側) 指定の種類のリスナのコールバックメソッドを呼び出す。 InPortとOutPortでシリアライザの種類が違う場合があるため、 OutPort側ではnotifyOu...
virtual::RTC::ConnectorListenerStatus::Enum notify(ConnectorListenerType type, ConnectorInfo &info)=0
リスナーへ通知する
InPortConsumer 抽象クラス
Definition InPortConsumer.h:78
Publisher 基底クラス
Definition PublisherBase.h:66
PublisherPeriodic クラス
Definition PublisherPeriodic.h:65
DataPortStatus pushAll()
push "all" policy
DataPortStatus write(ByteDataStreamBase *data, std::chrono::nanoseconds timeout) override
データを書き込む
void onBufferWrite(ByteData &data)
ON_BUFFER_WRITEのリスナへ通知する。
Definition PublisherPeriodic.h:554
PublisherPeriodic()
コンストラクタ
void onReceived(ByteData &data)
ON_RECEIVEDのリスナへ通知する。
Definition PublisherPeriodic.h:627
bool createTask(const coil::Properties &prop)
Task の設定
void onSend(ByteData &data)
ON_SENDのリスナへ通知する。
Definition PublisherPeriodic.h:613
void onReceiverFull(ByteData &data)
ON_RECEIVER_FULLのリスナへ通知する。
Definition PublisherPeriodic.h:641
DataPortStatus invokeListener(DataPortStatus status, ByteData &data)
DataPortStatusに従ってリスナへ通知する関数を呼び出す。
void onBufferWriteTimeout(ByteData &data)
ON_BUFFER_WRITE_TIMEOUTのリスナへ通知する。
Definition PublisherPeriodic.h:584
DataPortStatus pushFifo()
push "fifo" policy
DataPortStatus pushNew()
push "new" policy
void onBufferEmpty()
ON_BUFFER_EMPTYのリスナへ通知する。
Definition PublisherPeriodic.h:681
void onReceiverError(ByteData &data)
ON_RECEIVER_ERRORのリスナへ通知する。
Definition PublisherPeriodic.h:669
DataPortStatus init(coil::Properties &prop) override
初期化
DataPortStatus convertReturn(BufferStatus status, ByteData &data)
BufferStatus から DataPortStatus への変換
void onBufferFull(ByteData &data)
ON_BUFFER_FULLリスナへイベントを通知する。
Definition PublisherPeriodic.h:569
~PublisherPeriodic() override
デストラクタ
DataPortStatus activate() override
アクティブ化する
DataPortStatus setBuffer(CdrBufferBase *buffer) override
バッファのセット
void setPushPolicy(const coil::Properties &prop)
PushPolicy の設定
void onReceiverTimeout(ByteData &data)
ON_RECEIVER_TIMEOUTのリスナへ通知する。
Definition PublisherPeriodic.h:655
DataPortStatus setConsumer(InPortConsumer *consumer) override
InPortコンシューマのセット
void onSenderError()
ON_SENDER_ERRORのリスナへ通知する。
Definition PublisherPeriodic.h:705
DataPortStatus pushSkip()
push "skip" policy
Policy
Definition PublisherPeriodic.h:421
@ PUBLISHER_POLICY_ALL
Definition PublisherPeriodic.h:422
@ PUBLISHER_POLICY_NEW
Definition PublisherPeriodic.h:425
@ PUBLISHER_POLICY_SKIP
Definition PublisherPeriodic.h:424
@ PUBLISHER_POLICY_FIFO
Definition PublisherPeriodic.h:423
void onSenderEmpty()
ON_SENDER_EMPTYのリスナへ通知する。
Definition PublisherPeriodic.h:693
bool isActive() override
アクティブ化確認
DataPortStatus setListener(ConnectorInfo &info, ConnectorListenersBase *listeners) override
リスナを設定する。
DataPortStatus deactivate() override
非アクティブ化する
void onBufferRead(ByteData &data)
ON_BUFFER_READのリスナへ通知する。
Definition PublisherPeriodic.h:599
virtual int svc()
スレッド実行関数
@ ON_BUFFER_WRITE_TIMEOUT
BufferBase< ByteData > CdrBufferBase
Definition CdrBufferBase.h:31
coil::Properties Properties
Definition RTC.h:72
DataPortStatus
Definition DataPortStatus.h:114
BufferStatus
BufferStatus リターンコード
Definition BufferStatus.h:57
Definition DefaultPeriodicTask.h:24