OpenRTM-aist 2.0.2
Loading...
Searching...
No Matches
InPortPushConnector.h
Go to the documentation of this file.
1// -*- C++ -*-
20#ifndef RTC_INPORTPUSHCONNECTOR_H
21#define RTC_INPORTPUSHCONNECTOR_H
22
23#include <rtm/InPortConnector.h>
24#include <rtm/InPortConsumer.h>
25#include <rtm/PublisherBase.h>
26
27namespace RTC
28{
29 class InPortProvider;
30
81 : public InPortConnector
82 {
83 public:
84
126 InPortProvider* provider,
127 ConnectorListenersBase* listeners,
128 CdrBufferBase* buffer = nullptr);
129
146
180
201
216 void activate() override {} // do nothing
217
232 void deactivate() override {} // do nothing
233
234 protected:
255
257
265 void onConnect();
266
275
276 inline void onBufferRead(ByteData& data)
277 {
279 m_profile, data);
280
281 }
282 void onBufferEmpty(ByteData& /*data*/)
283 {
285
286 }
292
293 private:
301 InPortProvider* m_provider;
302
310 ConnectorListenersBase* m_listeners;
311
312 bool m_deleteBuffer;
313
314 bool m_sync_readwrite;
315
316 struct WorkerThreadCtrl
317 {
318 WorkerThreadCtrl() {}
319 std::mutex mutex_;
320 std::condition_variable cond_;
321 bool completed_{false};
322 };
323 WorkerThreadCtrl m_writecompleted_worker;
324 WorkerThreadCtrl m_readcompleted_worker;
325 WorkerThreadCtrl m_readready_worker;
326
327 ByteData m_data;
328
329 };
330} // namespace RTC
331
332#endif // RTC_PUSH_CONNECTOR_H
InPortConnector base class.
InPortConsumer class.
Publisher base class.
DataPortStatus mixin class.
BufferBase abstract class.
Definition BufferBase.h:106
Definition ByteDataStreamBase.h:63
Definition ByteData.h:30
ConnectorInfo class.
Definition ConnectorBase.h:50
Definition ConnectorListener.h:1354
virtual::RTC::ConnectorListenerStatus::Enum notifyIn(ConnectorDataListenerType type, ConnectorInfo &info, ByteData &data)=0
Notify listeners. (Typed data version)
virtual::RTC::ConnectorListenerStatus::Enum notify(ConnectorListenerType type, ConnectorInfo &info)=0
Virtual Callback method.
InPortConnector base class.
Definition InPortConnector.h:54
ConnectorInfo m_profile
ConnectorInfo .
Definition InPortConnector.h:399
InPortProvider.
Definition InPortProvider.h:191
InPortPushConnector class.
Definition InPortPushConnector.h:82
~InPortPushConnector() override
Destructor.
InPortPushConnector(ConnectorInfo info, InPortProvider *provider, ConnectorListenersBase *listeners, CdrBufferBase *buffer=nullptr)
DataPortStatus disconnect() override
disconnect
void onBufferReadTimeout(ByteData &)
Definition InPortPushConnector.h:287
void onDisconnect()
Invoke callback when connection is destroied .
void deactivate() override
Connector deactivation.
Definition InPortPushConnector.h:232
BufferStatus write(ByteData &cdr) override
void onBufferEmpty(ByteData &)
Definition InPortPushConnector.h:282
void activate() override
Connector activation.
Definition InPortPushConnector.h:216
void onConnect()
Invoke callback when connection is established .
DataPortStatus read(ByteDataStreamBase *data) override
Reading data.
void onBufferRead(ByteData &data)
Definition InPortPushConnector.h:276
virtual CdrBufferBase * createBuffer(ConnectorInfo &info)
create buffer
RT-Component.
BufferStatus
DataPortStatus return codes.
Definition BufferStatus.h:57