BWAPI
SPAR/AIModule/SparAIModule/Scheduler/SchedulerTask.h
Go to the documentation of this file.
00001 #pragma once
00002 #include "Scheduler.h"
00003 #include "../SparAIContainer.h"
00004 
00008 class SchedulerTask : protected Scheduler::InternalSchedulerTask
00009 {
00010 public:
00018   SchedulerTask(const Component& owner, unsigned int priority, size_t period, size_t waitingTimeBeforeExecution)
00019     : Scheduler::InternalSchedulerTask(owner)
00020     , m_priority(priority)
00021     , m_period(period)
00022     , m_waitingTimeBeforeExecution(waitingTimeBeforeExecution)
00023   {}
00024 
00028   bool isActive() const
00029   {
00030     return Scheduler::InternalSchedulerTask::isActive();
00031   }
00032 
00037   void setWaitingTimeBeforeExecution(size_t waitingTimeBeforeExecution)
00038   {
00039     m_waitingTimeBeforeExecution = waitingTimeBeforeExecution;
00040   }
00041 
00045   void activate()
00046   {
00047     assert(!isActive());
00048     Spar->getScheduler().activate(this, m_priority, m_period, m_waitingTimeBeforeExecution);
00049   }
00050 
00054   void deactivate()
00055   {
00056     Spar->getScheduler().deactivate(this);
00057   }
00058 
00059 protected:
00063   unsigned int m_priority;
00064 
00068   size_t m_period;
00069   
00073   size_t m_waitingTimeBeforeExecution;
00074 
00075 };
00076 
00077 #define SCHEDULER_EVENT(Type, Function) \
00078   class SchedulerTask_##Type_##Function : public SchedulerTask \
00079   { \
00080   public: \
00081     SchedulerTask_##Type_##Function(Type& object, unsigned int priority, size_t period, size_t waitingTimeBeforeExecution) \
00082       : SchedulerTask(object, priority, period, waitingTimeBeforeExecution) \
00083       , m_object(object) {} \
00084     virtual ~SchedulerTask_##Type_##Function() {} \
00085   protected: \
00086     virtual void runV() \
00087     { \
00088       m_object.Function(); \
00089     } \
00090     Type& m_object; \
00091   }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines