OpenRTM-aist 2.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
InPortSHMProvider.h
[詳解]
1// -*- C++ -*-
18#ifndef RTC_INPORTSHMPROVIDER_H
19#define RTC_INPORTSHMPROVIDER_H
20
22#include <rtm/BufferBase.h>
23#include <rtm/InPortProvider.h>
24#include <rtm/CORBA_SeqUtil.h>
25#include <rtm/Manager.h>
27#include <rtm/ConnectorBase.h>
28
29namespace RTC
30{
53 : public InPortProvider,
54 public virtual SharedMemoryPort
55 {
56 public:
71
86
103 void init(coil::Properties& prop) override;
104
120 void setBuffer(BufferBase<ByteData>* buffer) override;
121
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 {
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
240extern "C"
241{
256}
257
258#endif // RTC_INPORTCORBACDRPROVIDER_H
259
Buffer abstract class
CORBA sequence utility template functions
Connector base class
connector listener class
InPortProvider class
void InPortSHMProviderInit()
モジュール初期化関数
-*- C++ -*-
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関...
InPortConnector 基底クラス
Definition InPortConnector.h:54
Definition InPortProvider.h:191
InPortSHMProvider クラス
Definition InPortSHMProvider.h:55
void setBuffer(BufferBase< ByteData > *buffer) override
バッファをセットする
void setConnector(InPortConnector *connector) override
Connectorを設定する。
InPortSHMProvider()
コンストラクタ
~InPortSHMProvider() override
デストラクタ
void setListener(ConnectorInfo &info, ConnectorListenersBase *listeners) override
リスナを設定する。
void init(coil::Properties &prop) override
設定初期化
::OpenRTM::PortStatus put() override
[CORBA interface] バッファにデータを書き込む
SharedMemory クラス
Definition SharedMemoryPort.h:57
RTコンポーネント
BufferBase< ByteData > CdrBufferBase
Definition CdrBufferBase.h:31
BufferStatus
BufferStatus リターンコード
Definition BufferStatus.h:57