PublisherNew.h

説明を見る。
00001 // -*- C++ -*-
00020 #ifndef PublisherNew_h
00021 #define PublisherNew_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;
00057   class PublisherNew
00058     : public PublisherBase,
00059       public ACE_Task<ACE_MT_SYNCH>
00060   {
00061   public:
00083     PublisherNew(InPortConsumer* consumer,
00084                  const Properties& property);
00085     
00099     virtual ~PublisherNew();
00100     
00118     virtual void update();
00119     
00139     virtual int svc(void);
00140     
00164     virtual int open(void *args);
00165     
00185     virtual void release();
00186     
00187   protected:
00188     
00189   private:
00190     InPortConsumer* m_consumer;
00191     bool m_running;
00192     unsigned long m_usec;
00193     
00194     // NewData condition struct
00195     struct NewData
00196     {
00197       NewData() : _cond(_mutex), _updated(false) {};
00198       ACE_Thread_Mutex _mutex;
00199       ACE_Condition<ACE_Thread_Mutex> _cond;
00200       bool _updated;
00201     };
00202     
00203     // A condition variable for data update notification 
00204     NewData m_data;
00205   };
00206 };     // namespace RTC
00207 #endif // PublisherNew_h
00208 

OpenRTMに対してWed May 21 05:17:25 2008に生成されました。  doxygen 1.5.3