TimeoutManager Interface ======================== Overview -------- The ``common::ITimeoutManager2`` class provides the interface for setting and canceling timeouts. The ``common::AsyncTimeoutManager`` class provides the implementation of the ``common::ITimeoutManager2hh`` interface. The ``set()`` function sets the timeout for the given object, and the ``cancel()`` function cancels the timeout. Primarily, the ``common::AsyncTimeoutManager`` acts as a wrapper around the ``::async::scheduleAtFixedRate()`` and ``::async::schedule()`` for timers as runnables. Examples -------- Introduce a class that implements the ``common::AbstractTimeout`` interface: .. code-block:: cpp class AbstractTimeoutImpl : public ::common::AbstractTimeout { public: void expired(TimeoutExpiredActions actions) override { // printf("Timeout expired\n"); } }; In the client code allocate the timeout object and set the timer: .. code-block:: cpp static common::AsyncTimeoutManager timeManager; static common::AbstractTimeoutImpl timer; void somefunc() { timeManager.init(); timeManager.set(timer, 1000U, false); // set timeout for 1 second }