OpenRTM-aist  1.2.1
PublisherFlush.h
Go to the documentation of this file.
1 // -*- C++ -*-
20 #ifndef RTC_PUBLISHERFLUSH_H
21 #define RTC_PUBLISHERFLUSH_H
22 
23 #include <coil/Condition.h>
24 #include <rtm/PublisherBase.h>
25 #include <rtm/SystemLogger.h>
26 #include <rtm/ConnectorBase.h>
27 #include <rtm/ConnectorListener.h>
28 
29 namespace coil
30 {
31  class Properties;
32 };
33 
34 namespace RTC
35 {
36  class InPortConsumer;
37 
59  : public PublisherBase
60  {
61  public:
62  typedef coil::Mutex Mutex;
66 
81 
95  virtual ~PublisherFlush(void);
96 
121  virtual ReturnCode init(coil::Properties& prop);
122 
148  virtual ReturnCode setConsumer(InPortConsumer* consumer);
149 
171  virtual ReturnCode setBuffer(CdrBufferBase* buffer);
172 
206  virtual ::RTC::DataPortStatus::Enum
207  setListener(ConnectorInfo& profile,
208  RTC::ConnectorListeners* listeners);
209 
268  virtual ReturnCode write(cdrMemoryStream& data,
269  unsigned long sec,
270  unsigned long usec);
298  virtual bool isActive();
299 
325  virtual ReturnCode activate();
326 
352  virtual ReturnCode deactivate();
353 
354  protected:
364  inline void onSend(cdrMemoryStream& data)
365  {
366  m_listeners->
367  connectorData_[ON_SEND].notify(m_profile, data);
368  }
369 
379  inline void onReceived(cdrMemoryStream& data)
380  {
381  m_listeners->
382  connectorData_[ON_RECEIVED].notify(m_profile, data);
383  }
384 
394  inline void onReceiverFull(cdrMemoryStream& data)
395  {
396  m_listeners->
397  connectorData_[ON_RECEIVER_FULL].notify(m_profile, data);
398  }
399 
409  inline void onReceiverTimeout(cdrMemoryStream& data)
410  {
411  m_listeners->
412  connectorData_[ON_RECEIVER_TIMEOUT].notify(m_profile, data);
413  }
414 
424  inline void onReceiverError(cdrMemoryStream& data)
425  {
426  m_listeners->
427  connectorData_[ON_RECEIVER_ERROR].notify(m_profile, data);
428  }
429 
430  private:
431  Logger rtclog;
432  InPortConsumer* m_consumer;
433  ConnectorInfo m_profile;
434  ConnectorListeners* m_listeners;
435  ReturnCode m_retcode;
436  Mutex m_retmutex;
437  bool m_active;
438  };
439 
440 }; // namespace RTC
441 
442 extern "C"
443 {
445 };
446 
447 #endif // RTC_PUBLISHERFLUSH_H
448 
ConnectorListeners class.
Definition: ConnectorListener.h:1217
InPortConsumer abstract class.
Definition: InPortConsumer.h:76
Definition: ConnectorListener.h:147
#define DATAPORTSTATUS_ENUM
Importing RTC::DataPortStatus macro.
Definition: DataPortStatus.h:233
RT-Component.
void DLL_EXPORT PublisherFlushInit()
Mutex class.
Definition: Mutex.h:40
RT component logger class.
void onSend(cdrMemoryStream &data)
Notify an ON_SEND event to listners.
Definition: PublisherFlush.h:364
void onReceived(cdrMemoryStream &data)
Notify an ON_RECEIVED event to listeners.
Definition: PublisherFlush.h:379
Definition: ConnectorListener.h:146
void onReceiverFull(cdrMemoryStream &data)
Notify an ON_RECEIVER_FULL event to listeners.
Definition: PublisherFlush.h:394
RTC::ReturnCode_t activate(RTC::RTObject_ptr rtc, RTC::UniqueId ec_id=0)
Definition: ConnectorBase.h:43
PublisherFlush class.
Definition: PublisherFlush.h:58
Definition: ConnectorListener.h:145
Connector base class.
coil::Properties Properties
Definition: RTC.h:83
coil::Mutex Mutex
Definition: PublisherFlush.h:62
coil::Condition< Mutex > Condition
Definition: PublisherFlush.h:63
void onReceiverError(cdrMemoryStream &data)
Notify an ON_RECEIVER_ERROR event to listeners.
Definition: PublisherFlush.h:424
Logger class.
Definition: SystemLogger.h:99
void onReceiverTimeout(cdrMemoryStream &data)
Notify an ON_RECEIVER_TIMEOUT event to listeners.
Definition: PublisherFlush.h:409
Publisher base class.
RTC::ReturnCode_t deactivate(RTC::RTObject_ptr rtc, RTC::UniqueId ec_id=0)
Class represents a set of properties.
Definition: Properties.h:101
Definition: ConnectorListener.h:149
Base class of Publisher.
Definition: PublisherBase.h:63
BufferBase abstract class.
Definition: BufferBase.h:104
#define DLL_EXPORT
Definition: RTC.h:73
connector listener class
coil::Guard< coil::Mutex > Guard
Definition: PublisherFlush.h:64
Definition: ConnectorListener.h:148
Common Object Interface Layer.
Definition: Affinity.h:28