00001
00020 #ifndef PublisherPeriodic_h
00021 #define PublisherPeriodic_h
00022
00023 #include <rtm/RTC.h>
00024
00025 #include <ace/Task.h>
00026 #include <ace/Synch.h>
00027 #include <rtm/PublisherBase.h>
00028
00029 namespace RTC
00030 {
00031 class InPortConsumer;
00032 class Properties;
00050 class PublisherPeriodic
00051 : public PublisherBase,
00052 public ACE_Task<ACE_MT_SYNCH>
00053 {
00054
00055
00056 public:
00086 PublisherPeriodic(InPortConsumer* consumer,
00087 const Properties& property);
00088
00102 virtual ~PublisherPeriodic();
00103
00117 virtual void update();
00118
00132 virtual int svc(void);
00133
00147 virtual int open(void *args);
00148
00167 virtual void release();
00168
00169 protected:
00170
00171 private:
00172 InPortConsumer* m_consumer;
00173 bool m_running;
00174 unsigned int m_usec;
00175 };
00176 };
00177 #endif // PublisherPeriodic_h
00178