diff options
Diffstat (limited to 'Swiften/Network/DummyTimerFactory.cpp')
m--------- | Swiften | 0 | ||||
-rw-r--r-- | Swiften/Network/DummyTimerFactory.cpp | 60 |
2 files changed, 0 insertions, 60 deletions
diff --git a/Swiften b/Swiften new file mode 160000 +Subproject 8213ba16d0043d2461f4b031c881d61dda5a38c diff --git a/Swiften/Network/DummyTimerFactory.cpp b/Swiften/Network/DummyTimerFactory.cpp deleted file mode 100644 index 7626584..0000000 --- a/Swiften/Network/DummyTimerFactory.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include "Swiften/Network/DummyTimerFactory.h" - -#include <algorithm> - -#include "Swiften/Base/foreach.h" -#include "Swiften/Network/Timer.h" - -namespace Swift { - -class DummyTimerFactory::DummyTimer : public Timer { - public: - DummyTimer(int timeout) : timeout(timeout), isRunning(false) { - } - - virtual void start() { - isRunning = true; - } - - virtual void stop() { - isRunning = false; - } - - int timeout; - bool isRunning; -}; - - -DummyTimerFactory::DummyTimerFactory() : currentTime(0) { -} - -boost::shared_ptr<Timer> DummyTimerFactory::createTimer(int milliseconds) { - boost::shared_ptr<DummyTimer> timer(new DummyTimer(milliseconds)); - timers.push_back(timer); - return timer; -} - -static bool hasZeroTimeout(boost::shared_ptr<DummyTimerFactory::DummyTimer> timer) { - return timer->timeout == 0; -} - -void DummyTimerFactory::setTime(int time) { - assert(time > currentTime); - int increment = time - currentTime; - std::vector< boost::shared_ptr<DummyTimer> > notifyTimers(timers.begin(), timers.end()); - foreach(boost::shared_ptr<DummyTimer> timer, notifyTimers) { - if (increment >= timer->timeout) { - if (timer->isRunning) { - timer->onTick(); - } - timer->timeout = 0; - } - else { - timer->timeout -= increment; - } - } - timers.erase(std::remove_if(timers.begin(), timers.end(), hasZeroTimeout), timers.end()); - currentTime = time; -} - -} |