OpenRTM-aist
2.1.0
Toggle main menu visibility
読み取り中…
検索中…
一致する文字列を見つけられません
InPortSHMProvider.h
[詳解]
1
// -*- C++ -*-
17
18
#ifndef RTC_INPORTSHMPROVIDER_H
19
#define RTC_INPORTSHMPROVIDER_H
20
21
#include <
rtm/SharedMemoryPort.h
>
22
#include <
rtm/BufferBase.h
>
23
#include <
rtm/InPortProvider.h
>
24
#include <
rtm/CORBA_SeqUtil.h
>
25
#include <
rtm/Manager.h
>
26
#include <
rtm/ConnectorListener.h
>
27
#include <
rtm/ConnectorBase.h
>
28
29
namespace
RTC
30
{
52
class
InPortSHMProvider
53
:
public
InPortProvider
,
54
public
virtual
SharedMemoryPort
55
{
56
public
:
70
InPortSHMProvider
();
71
85
~InPortSHMProvider
()
override
;
86
103
void
init
(coil::Properties& prop)
override
;
104
120
void
setBuffer
(
BufferBase<ByteData>
* buffer)
override
;
121
142
void
setListener
(
ConnectorInfo
& info,
143
ConnectorListenersBase
* listeners)
override
;
161
void
setConnector
(
InPortConnector
* connector)
override
;
162
180
::OpenRTM::PortStatus
put
()
override
;
181
182
private
:
183
184
::OpenRTM::PortStatus
185
convertReturn(
BufferStatus
status,
186
ByteData
& data);
187
188
189
inline
void
onBufferWrite(
ByteData
& data)
190
{
191
m_listeners->notifyIn(
ConnectorDataListenerType::ON_BUFFER_WRITE
, m_profile, data);
192
}
193
194
inline
void
onBufferFull(
ByteData
& data)
195
{
196
m_listeners->
notifyIn
(
ConnectorDataListenerType::ON_BUFFER_FULL
, m_profile, data);
197
}
198
199
inline
void
onBufferWriteTimeout(ByteData& data)
200
{
201
m_listeners->
notifyIn
(
ConnectorDataListenerType::ON_BUFFER_WRITE_TIMEOUT
, m_profile, data);
202
}
203
204
inline
void
onBufferWriteOverwrite(ByteData& data)
205
{
206
m_listeners->notifyIn(
ConnectorDataListenerType::ON_BUFFER_OVERWRITE
, m_profile, data);
207
}
208
209
inline
void
onReceived(ByteData& data)
210
{
211
m_listeners->notifyIn(
ConnectorDataListenerType::ON_RECEIVED
, m_profile, data);
212
}
213
214
inline
void
onReceiverFull(ByteData& data)
215
{
216
m_listeners->notifyIn(
ConnectorDataListenerType::ON_RECEIVER_FULL
, m_profile, data);
217
}
218
219
inline
void
onReceiverTimeout(ByteData& data)
220
{
221
m_listeners->notifyIn(
ConnectorDataListenerType::ON_RECEIVER_TIMEOUT
, m_profile, data);
222
}
223
224
inline
void
onReceiverError(ByteData& data)
225
{
226
m_listeners->notifyIn(
ConnectorDataListenerType::ON_RECEIVER_ERROR
, m_profile, data);
227
}
228
229
private
:
230
CdrBufferBase
* m_buffer{
nullptr
};
231
::OpenRTM::PortSharedMemory_var m_objref;
232
ConnectorListenersBase* m_listeners;
233
ConnectorInfo m_profile;
234
InPortConnector* m_connector{
nullptr
};
235
ByteData m_cdr;
236
237
};
// class InPortCorCdrbaProvider
238
}
// namespace RTC
239
240
extern
"C"
241
{
255
void
InPortSHMProviderInit
();
256
}
257
258
#endif
// RTC_INPORTCORBACDRPROVIDER_H
259
BufferBase.h
Buffer abstract class
CORBA_SeqUtil.h
CORBA sequence utility template functions
ConnectorBase.h
Connector base class
ConnectorListener.h
connector listener class
InPortProvider.h
InPortProvider class
InPortSHMProviderInit
void InPortSHMProviderInit()
モジュール初期化関数
Manager.h
-- C++ --
SharedMemoryPort.h
Shared Memory Port class
RTC::BufferBase
BufferBase 抽象クラス
Definition
BufferBase.h:106
RTC::ByteData
シリアライズ後のバイト列を操作するクラス
Definition
ByteData.h:30
RTC::ConnectorInfo
ConnectorInfo クラス
Definition
ConnectorBase.h:50
RTC::ConnectorListenersBase
Definition
ConnectorListener.h:1354
RTC::ConnectorListenersBase::notifyIn
virtual::RTC::ConnectorListenerStatus::Enum notifyIn(ConnectorDataListenerType type, ConnectorInfo &info, ByteData &data)=0
リスナーへ通知する(InPort側) 指定の種類のリスナのコールバックメソッドを呼び出す。 InPortとOutPortでシリアライザの種類が違う場合があるため、 InPort側ではnotifyOut関...
RTC::InPortConnector
InPortConnector 基底クラス
Definition
InPortConnector.h:54
RTC::InPortProvider::InPortProvider
InPortProvider()
コンストラクタ
RTC::InPortSHMProvider::setBuffer
void setBuffer(BufferBase< ByteData > *buffer) override
バッファをセットする
RTC::InPortSHMProvider::setConnector
void setConnector(InPortConnector *connector) override
Connectorを設定する。
RTC::InPortSHMProvider::InPortSHMProvider
InPortSHMProvider()
コンストラクタ
RTC::InPortSHMProvider::~InPortSHMProvider
~InPortSHMProvider() override
デストラクタ
RTC::InPortSHMProvider::setListener
void setListener(ConnectorInfo &info, ConnectorListenersBase *listeners) override
リスナを設定する。
RTC::InPortSHMProvider::init
void init(coil::Properties &prop) override
設定初期化
RTC::InPortSHMProvider::put
::OpenRTM::PortStatus put() override
[CORBA interface] バッファにデータを書き込む
RTC::SharedMemoryPort::SharedMemoryPort
SharedMemoryPort()
コンストラクタ
RTC
RTコンポーネント
RTC::ConnectorDataListenerType::ON_RECEIVER_ERROR
@ ON_RECEIVER_ERROR
Definition
ConnectorListener.h:154
RTC::ConnectorDataListenerType::ON_RECEIVER_TIMEOUT
@ ON_RECEIVER_TIMEOUT
Definition
ConnectorListener.h:153
RTC::ConnectorDataListenerType::ON_BUFFER_WRITE_TIMEOUT
@ ON_BUFFER_WRITE_TIMEOUT
Definition
ConnectorListener.h:147
RTC::ConnectorDataListenerType::ON_RECEIVER_FULL
@ ON_RECEIVER_FULL
Definition
ConnectorListener.h:152
RTC::ConnectorDataListenerType::ON_BUFFER_OVERWRITE
@ ON_BUFFER_OVERWRITE
Definition
ConnectorListener.h:148
RTC::ConnectorDataListenerType::ON_RECEIVED
@ ON_RECEIVED
Definition
ConnectorListener.h:151
RTC::ConnectorDataListenerType::ON_BUFFER_WRITE
@ ON_BUFFER_WRITE
Definition
ConnectorListener.h:145
RTC::ConnectorDataListenerType::ON_BUFFER_FULL
@ ON_BUFFER_FULL
Definition
ConnectorListener.h:146
RTC::CdrBufferBase
BufferBase< ByteData > CdrBufferBase
Definition
CdrBufferBase.h:31
RTC::BufferStatus
BufferStatus
BufferStatus リターンコード
Definition
BufferStatus.h:57
構築:
1.17.0