9 #ifndef anna_timex_Engine_hpp 10 #define anna_timex_Engine_hpp 103 void pause() noexcept(
false);
108 void play() noexcept(
false);
117 void activate(
TimeEvent* timeEvent) noexcept(
false);
136 void cancel(
TimeEvent* timeEvent) noexcept(
false);
174 virtual std::string asString()
const ;
191 typedef std::vector <TimeEvent*> Quantum;
192 typedef Quantum::iterator quantum_iterator;
193 typedef std::map <TimeEvent::Id, Quantum*> Directory;
195 Quantum* a_timeTable;
196 Engine::Directory a_directory;
197 int a_currentQuantum;
205 Quantum* a_expiredQuantum;
206 Quantum a_delayedQuantum;
207 pthread_t a_threadProducer;
209 void do_initialize() noexcept(
false);
213 void tick() noexcept(
false);
214 int getQuantum(
const int timeout)
const {
return (a_currentQuantum + (timeout / a_resolution)) % a_maxQuantum; }
218 void do_cloneParent() ;
219 void do_cloneChild() noexcept(
false);
221 static void notifyRelease(
TimeEvent* timeEvent) ;
222 static TimeEvent* timeEvent(quantum_iterator& ii) {
return *ii; }
226 friend class st::TickProducer;
227 friend class mt::TickProducer;
anna::ptrnumber Id
Definition: TimeEvent.hpp:34
Definition: Thread.hpp:31
const Millisecond & getMaxTimeout() const
Definition: Engine.hpp:95
Definition: Millisecond.hpp:24
static const Millisecond minResolution
Definition: Engine.hpp:67
virtual void eventEndQuantum(const int quantumSize) noexcept(false)
Definition: Engine.hpp:168
Definition: TickProducer.hpp:24
Definition: TimeEvent.hpp:26
void cancel(TimeEvent &timeEvent) noexcept(false)
Definition: Engine.hpp:144
void activate(TimeEvent &timeEvent) noexcept(false)
Definition: Engine.hpp:127
const Millisecond & getResolution() const
Definition: Engine.hpp:89
virtual void eventBeginQuantum() noexcept(false)
Definition: Engine.hpp:160
Definition: Component.hpp:44
Definition: Engine.hpp:62
Definition: TickConsumer.hpp:25
static const char * getClassName()
Definition: Engine.hpp:188