From 5999e6e0c32e6897b88f59f0743b4bb1fc9c521c Mon Sep 17 00:00:00 2001 From: Florent Le Coz Date: Tue, 27 May 2014 01:12:46 +0200 Subject: Introduce the timed events --- src/test.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/test.cpp') diff --git a/src/test.cpp b/src/test.cpp index f624bc2..fe89b5a 100644 --- a/src/test.cpp +++ b/src/test.cpp @@ -3,6 +3,7 @@ */ #include +#include #include #include #include @@ -16,6 +17,7 @@ #include #include +#include #include #include @@ -25,6 +27,28 @@ static const std::string reset(""); int main() { + /** + * Timed events + */ + std::cout << color << "Testing timed events…" << reset << std::endl; + TimedEventsManager te_manager; + // No event. + assert(te_manager.get_timeout() == utils::no_timeout); + assert(te_manager.execute_expired_events() == 0); + + // Add a single event + te_manager.add_event(TimedEvent(std::chrono::steady_clock::now() + 50ms, [](){ std::cout << "Timeout expired" << std::endl; })); + // The event should not yet be expired + assert(te_manager.get_timeout() > 0ms); + assert(te_manager.execute_expired_events() == 0); + std::chrono::milliseconds timoute = te_manager.get_timeout(); + std::cout << "Sleeping for " << timoute.count() << "ms" << std::endl; + std::this_thread::sleep_for(timoute); + + // Event is now expired + assert(te_manager.execute_expired_events() == 1); + assert(te_manager.get_timeout() == utils::no_timeout); + /** * Encoding */ -- cgit v1.2.3