OpenRTM-aist
2.1.0
Toggle main menu visibility
読み取り中…
検索中…
一致する文字列を見つけられません
InPortPushConnector.h
[詳解]
1
// -*- C++ -*-
19
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
27
namespace
RTC
28
{
29
class
InPortProvider
;
30
80
class
InPortPushConnector
81
:
public
InPortConnector
82
{
83
public
:
84
125
InPortPushConnector
(
ConnectorInfo
info,
126
InPortProvider
* provider,
127
ConnectorListenersBase
* listeners,
128
CdrBufferBase
* buffer =
nullptr
);
129
145
~InPortPushConnector
()
override
;
146
179
DataPortStatus
read
(
ByteDataStreamBase
* data)
override
;
180
200
DataPortStatus
disconnect
()
override
;
201
216
void
activate
()
override
{}
// do nothing
217
232
void
deactivate
()
override
{}
// do nothing
233
234
protected
:
254
virtual
CdrBufferBase
*
createBuffer
(
ConnectorInfo
& info);
255
256
BufferStatus
write
(
ByteData
&cdr)
override
;
257
265
void
onConnect
();
266
274
void
onDisconnect
();
275
276
inline
void
onBufferRead
(
ByteData
& data)
277
{
278
m_listeners->notifyIn(
ConnectorDataListenerType::ON_BUFFER_READ
,
279
m_profile
, data);
280
281
}
282
void
onBufferEmpty
(
ByteData
&
/*data*/
)
283
{
284
m_listeners->notify(
ConnectorListenerType::ON_BUFFER_EMPTY
,
m_profile
);
285
286
}
287
void
onBufferReadTimeout
(
ByteData
&
/*data*/
)
288
{
289
m_listeners->notify(
ConnectorListenerType::ON_BUFFER_READ_TIMEOUT
,
290
m_profile
);
291
}
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.h
InPortConnector base class
InPortConsumer.h
InPortConsumer class
PublisherBase.h
Publisher base class
RTC::ByteDataStreamBase
シリアライザの基底クラス
Definition
ByteDataStreamBase.h:63
RTC::ByteData
シリアライズ後のバイト列を操作するクラス
Definition
ByteData.h:30
RTC::ConnectorInfo
ConnectorInfo クラス
Definition
ConnectorBase.h:50
RTC::ConnectorListenersBase
Definition
ConnectorListener.h:1354
RTC::InPortConnector::m_profile
ConnectorInfo m_profile
ConnectorInfo
Definition
InPortConnector.h:399
RTC::InPortConnector::m_listeners
ConnectorListenersBase * m_listeners
ConnectorListenrs への参照
Definition
InPortConnector.h:407
RTC::InPortConnector::InPortConnector
InPortConnector(ConnectorInfo &info, ConnectorListenersBase *listeners, CdrBufferBase *buffer)
コンストラクタ
RTC::InPortProvider
Definition
InPortProvider.h:191
RTC::InPortPushConnector::~InPortPushConnector
~InPortPushConnector() override
デストラクタ
RTC::InPortPushConnector::InPortPushConnector
InPortPushConnector(ConnectorInfo info, InPortProvider *provider, ConnectorListenersBase *listeners, CdrBufferBase *buffer=nullptr)
コンストラクタ
RTC::InPortPushConnector::disconnect
DataPortStatus disconnect() override
接続解除
RTC::InPortPushConnector::onBufferReadTimeout
void onBufferReadTimeout(ByteData &)
Definition
InPortPushConnector.h:287
RTC::InPortPushConnector::onDisconnect
void onDisconnect()
接続切断時にコールバックを呼ぶ
RTC::InPortPushConnector::deactivate
void deactivate() override
非アクティブ化
Definition
InPortPushConnector.h:232
RTC::InPortPushConnector::write
BufferStatus write(ByteData &cdr) override
RTC::InPortPushConnector::onBufferEmpty
void onBufferEmpty(ByteData &)
Definition
InPortPushConnector.h:282
RTC::InPortPushConnector::activate
void activate() override
アクティブ化
Definition
InPortPushConnector.h:216
RTC::InPortPushConnector::onConnect
void onConnect()
接続確立時にコールバックを呼ぶ
RTC::InPortPushConnector::read
DataPortStatus read(ByteDataStreamBase *data) override
データの読み出し
RTC::InPortPushConnector::onBufferRead
void onBufferRead(ByteData &data)
Definition
InPortPushConnector.h:276
RTC::InPortPushConnector::createBuffer
virtual CdrBufferBase * createBuffer(ConnectorInfo &info)
Bufferの生成
RTC
RTコンポーネント
RTC::ConnectorDataListenerType::ON_BUFFER_READ
@ ON_BUFFER_READ
Definition
ConnectorListener.h:149
RTC::CdrBufferBase
BufferBase< ByteData > CdrBufferBase
Definition
CdrBufferBase.h:31
RTC::DataPortStatus
DataPortStatus
Definition
DataPortStatus.h:114
RTC::ConnectorListenerType::ON_BUFFER_EMPTY
@ ON_BUFFER_EMPTY
Definition
ConnectorListener.h:671
RTC::ConnectorListenerType::ON_BUFFER_READ_TIMEOUT
@ ON_BUFFER_READ_TIMEOUT
Definition
ConnectorListener.h:672
RTC::BufferStatus
BufferStatus
BufferStatus リターンコード
Definition
BufferStatus.h:57
構築:
1.17.0