OpenRTM-aist 2.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
OutPortSHMConsumer.h
[詳解]
1// -*- C++ -*-
19#ifndef RTC_OUTPORTSHMCONSUMER_H
20#define RTC_OUTPORTSHMCONSUMER_H
21
23#include <rtm/CorbaConsumer.h>
24#include <rtm/OutPortConsumer.h>
26#include <rtm/ConnectorBase.h>
27
28namespace RTC
29{
52 : public OutPortConsumer,
53 public CorbaConsumer< ::OpenRTM::PortSharedMemory >
54 {
55 public:
56
71
86
105 void init(coil::Properties& prop) override;
106
124 void setBuffer(CdrBufferBase* buffer) override;
125
146 ConnectorListenersBase* listeners) override;
147
169 DataPortStatus get(ByteData& data) override;
170
193 bool subscribeInterface(const SDOPackage::NVList& properties) override;
194
212 void unsubscribeInterface(const SDOPackage::NVList& properties) override;
213 bool setObject(CORBA::Object_ptr obj) override;
214
215 private:
223 DataPortStatus convertReturn(::OpenRTM::PortStatus status,
224 ByteData& data);
225
235 inline void onBufferWrite(ByteData& data)
236 {
238 }
239
249 inline void onBufferFull(ByteData& data)
250 {
252 }
253
263 inline void onReceived(ByteData& data)
264 {
266 }
267
277 inline void onReceiverFull(ByteData& data)
278 {
280 }
281
289 inline void onSenderEmpty()
290 {
292 }
293
301 inline void onSenderTimeout()
302 {
304 }
305
313 inline void onSenderError()
314 {
316 }
317protected:
318 mutable Logger rtclog;
319 coil::Properties m_properties;
320 std::mutex m_mutex;
321 std::string m_shm_address;
325
329 };
330} // namespace RTC
331
332extern "C"
333{
348}
349
350#endif // RTC_OUTPORTSHMCONSUMER_H
Connector base class
connector listener class
CORBA Consumer class
OutPortConsumer class
void OutPortSHMConsumerInit(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 notifyIn(ConnectorDataListenerType type, ConnectorInfo &info, ByteData &data)=0
リスナーへ通知する(InPort側) 指定の種類のリスナのコールバックメソッドを呼び出す。 InPortとOutPortでシリアライザの種類が違う場合があるため、 InPort側ではnotifyOut関...
virtual::RTC::ConnectorListenerStatus::Enum notify(ConnectorListenerType type, ConnectorInfo &info)=0
リスナーへ通知する
オブジェクトリファレンスを保持するプレースホルダテンプレートクラス
Definition CorbaConsumer.h:333
Logger クラス
Definition SystemLogger.h:101
OutPortConsumer 抽象クラス
Definition OutPortConsumer.h:173
OutPortSHMConsumer クラス
Definition OutPortSHMConsumer.h:54
~OutPortSHMConsumer() override
デストラクタ
int m_memory_size
Definition OutPortSHMConsumer.h:323
std::mutex m_mutex
Definition OutPortSHMConsumer.h:320
DataPortStatus get(ByteData &data) override
データを読み出す
SharedMemoryPort m_shmem
Definition OutPortSHMConsumer.h:322
coil::Properties m_properties
Definition OutPortSHMConsumer.h:319
void setBuffer(CdrBufferBase *buffer) override
バッファをセットする
ConnectorInfo m_profile
Definition OutPortSHMConsumer.h:328
void init(coil::Properties &prop) override
設定初期化
void unsubscribeInterface(const SDOPackage::NVList &properties) override
データ受信通知からの登録解除
bool setObject(CORBA::Object_ptr obj) override
オブジェクトをセットする
void setListener(ConnectorInfo &info, ConnectorListenersBase *listeners) override
リスナを設定する。
Logger rtclog
Definition OutPortSHMConsumer.h:318
OutPortSHMConsumer()
コンストラクタ
bool m_endian
Definition OutPortSHMConsumer.h:324
ConnectorListenersBase * m_listeners
Definition OutPortSHMConsumer.h:327
std::string m_shm_address
Definition OutPortSHMConsumer.h:321
CdrBufferBase * m_buffer
Definition OutPortSHMConsumer.h:326
bool subscribeInterface(const SDOPackage::NVList &properties) override
データ受信通知への登録
SharedMemory クラス
Definition SharedMemoryPort.h:57
RTコンポーネント
DataPortStatus
Definition DataPortStatus.h:114