00001
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef PublisherPeriodic_h
00036 #define PublisherPeriodic_h
00037
00038 #include <rtm/RTC.h>
00039
00040 #include <ace/Task.h>
00041 #include <ace/Synch.h>
00042 #include <rtm/PublisherBase.h>
00043
00044 namespace RTC
00045 {
00046 class InPortConsumer;
00047 class Properties;
00057 class PublisherPeriodic
00058 : public PublisherBase,
00059 public ACE_Task<ACE_MT_SYNCH>
00060 {
00061
00062
00063 public:
00071 PublisherPeriodic(InPortConsumer* consumer,
00072 const Properties& property);
00073
00082 virtual ~PublisherPeriodic();
00090 virtual void update();
00091
00105 virtual int svc(void);
00106
00120 virtual int open(void *args);
00121
00135 virtual void release();
00136
00137 protected:
00138
00139 private:
00140 InPortConsumer* m_consumer;
00141 bool m_running;
00142 unsigned int m_usec;
00143 };
00144
00145 };
00146 #endif // PublisherPeriodic_h
00147