OpenRTM-aist 2.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
OutPortSHMProvider.h
[詳解]
1// -*- C++ -*-
17#ifndef RTC_OUTPORTSHMPROVIDER_H
18#define RTC_OUTPORTSHMPROVIDER_H
19
21#include <rtm/BufferBase.h>
22#include <rtm/OutPortProvider.h>
23#include <rtm/CORBA_SeqUtil.h>
24#include <rtm/Manager.h>
26#include <rtm/ConnectorBase.h>
27
28namespace RTC
29{
52 : public OutPortProvider,
53 public virtual SharedMemoryPort
54 {
55 public:
70
85
104 void init(coil::Properties& prop) override;
105
123 void setBuffer(CdrBufferBase* buffer) override;
124
145 ConnectorListenersBase* listeners) override;
146
164 void setConnector(OutPortConnector* connector) override;
165
183 ::OpenRTM::PortStatus get() override;
184
185
186 private:
194 ::OpenRTM::PortStatus convertReturn(BufferStatus status,
195 ByteData& data);
196
197
207 inline void onBufferRead(ByteData& data)
208 {
209 m_listeners->notifyOut(ConnectorDataListenerType::ON_BUFFER_READ, m_profile, data);
210 }
211
221 inline void onSend(ByteData& data)
222 {
223 m_listeners->notifyOut(ConnectorDataListenerType::ON_SEND, m_profile, data);
224 }
225
233 inline void onBufferEmpty()
234 {
235 m_listeners->notify(ConnectorListenerType::ON_BUFFER_EMPTY, m_profile);
236 }
237
245 inline void onBufferReadTimeout()
246 {
248 }
249
257 inline void onSenderEmpty()
258 {
259 m_listeners->notify(ConnectorListenerType::ON_SENDER_EMPTY, m_profile);
260 }
261
269 inline void onSenderTimeout()
270 {
271 m_listeners->notify(ConnectorListenerType::ON_SENDER_TIMEOUT, m_profile);
272 }
273
281 inline void onSenderError()
282 {
283 m_listeners->notify(ConnectorListenerType::ON_SENDER_ERROR, m_profile);
284 }
285
286 private:
287 CdrBufferBase* m_buffer{nullptr};
288 ::OpenRTM::PortSharedMemory_var m_objref;
289 ConnectorListenersBase* m_listeners;
290 ConnectorInfo m_profile;
291 OutPortConnector* m_connector{nullptr};
292 std::string m_shm_address;
293 int m_memory_size{0};
294 ByteData m_cdr;
295 }; // class OutPortCorbaCdrProvider
296} // namespace RTC
297
298extern "C"
299{
314}
315
316#endif // RTC_OUTPORTSHMPROVIDER_H
Buffer abstract class
CORBA sequence utility template functions
Connector base class
connector listener class
-*- C++ -*-
OutPortProvider class
void OutPortSHMProviderInit(void)
モジュール初期化関数
Shared Memory Port class
BufferBase 抽象クラス
Definition BufferBase.h:106
シリアライズ後のバイト列を操作するクラス
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
リスナーへ通知する
OutPortConnector 基底クラス
Definition OutPortConnector.h:58
OutPortProvider
Definition OutPortProvider.h:190
OutPortSHMProvider クラス
Definition OutPortSHMProvider.h:54
void setListener(ConnectorInfo &info, ConnectorListenersBase *listeners) override
リスナを設定する。
::OpenRTM::PortStatus get() override
[CORBA interface] バッファからデータを取得する
void init(coil::Properties &prop) override
設定初期化
void setBuffer(CdrBufferBase *buffer) override
バッファをセットする
void setConnector(OutPortConnector *connector) override
Connectorを設定する。
OutPortSHMProvider()
コンストラクタ
~OutPortSHMProvider() override
デストラクタ
SharedMemory クラス
Definition SharedMemoryPort.h:57
RTコンポーネント
BufferBase< ByteData > CdrBufferBase
Definition CdrBufferBase.h:31
BufferStatus
BufferStatus リターンコード
Definition BufferStatus.h:57