00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "stdafx.h"
00024
00025 #include "TimerAgent.h"
00026
00027 TimerAgent::TimerAgent(const string &name, const string &type, const int &delay)
00028 : MicoleAgentThread(name,type), _elapsedTime(0)
00029 {
00030 bindMessage( "^Time$", BUS_CALLBACK_OF(TimerAgent, handleTime));
00031 this->start();
00032 _threadActive = true;
00033 _delay = delay;
00034 }
00035
00036 TimerAgent::~TimerAgent()
00037 {
00038 _threadActive = 0;
00039 }
00040
00041 void TimerAgent::run ()
00042 {
00043 while(_threadActive)
00044 {
00045 _elapsedTime+=_delay;
00046 ::Sleep(_delay);
00047 onTimer();
00048 }
00049 }
00050
00051
00052 void TimerAgent::handleTime(MicoleBus *app,int argc, const char **argv)
00053 {
00054 }
00055
00056 int TimerAgent::getElapsedTime()
00057 {
00058 return _elapsedTime;
00059 }
00060
00064 void TimerAgent::prepareToStop(int argc, const char **argv)
00065 {
00066 _threadActive = false;
00067 }
00068
00069 void TimerAgent::prepareToSuspend(int argc, const char **argv)
00070 {
00071 _threadActive = false;
00072 }