Files
Sourcetrail/src/lib/utility/scheduling/TaskDecoratorDelay.cpp
T
Eberhard Graether ff65a3f285 logic: Added update checker connecting to online API
* connects to https://www.sourcetrail.com/api/v1/versions/latest
* sends information about OS, platform, license type, current version and a unique user token
* Automatic update check is enabled via Startscreen and performed once every 24 hours on window focus
* Update check can be forced by clicking on "check for new version" on start screen
* renamed TimePoint to TimeStamp

fortune cookie message = In Träumen und im Leben ist nichts unmöglich.
2017-08-08 14:18:14 +02:00

50 lines
963 B
C++

#include "utility/scheduling/TaskDecoratorDelay.h"
#include <thread>
TaskDecoratorDelay::TaskDecoratorDelay(size_t delayMS)
: m_delayMS(delayMS)
, m_delayComplete(delayMS == 0)
{
}
void TaskDecoratorDelay::doEnter(std::shared_ptr<Blackboard> blackboard)
{
m_start = TimeStamp::now();
}
Task::TaskState TaskDecoratorDelay::doUpdate(std::shared_ptr<Blackboard> blackboard)
{
if (m_delayComplete)
{
return m_taskRunner->update(blackboard);
}
const int SLEEP_TIME_MS = 25;
std::this_thread::sleep_for(std::chrono::microseconds(SLEEP_TIME_MS));
m_delayComplete = (TimeStamp::now().deltaMS(m_start) >= m_delayMS);
return Task::STATE_HOLD;
}
void TaskDecoratorDelay::doExit(std::shared_ptr<Blackboard> blackboard)
{
}
void TaskDecoratorDelay::doReset(std::shared_ptr<Blackboard> blackboard)
{
if (m_delayComplete)
{
m_taskRunner->reset();
}
}
void TaskDecoratorDelay::doTerminate()
{
if (m_delayComplete)
{
m_taskRunner->terminate();
}
}