Runner
Runner
#include <icy/runner.h>class RunnerDefined in src/base/include/icy/runner.h:34
Subclassed by:
Idler,Synchronizer,Thread,Timer
Runner is a virtual interface for implementing asynchronous objects such as threads and futures.
List of all members
| Name | Kind | Owner |
|---|---|---|
Runner | function | Declared here |
~Runner | function | Declared here |
start | function | Declared here |
running | function | Declared here |
cancel | function | Declared here |
cancelled | function | Declared here |
repeating | function | Declared here |
setRepeating | function | Declared here |
async | function | Declared here |
tid | function | Declared here |
waitForExit | function | Declared here |
_context | variable | Declared here |
Runner | function | Declared here |
operator= | function | Declared here |
Runner | function | Declared here |
operator= | function | Declared here |
Public Methods
| Return | Name | Description |
|---|---|---|
Runner | ||
void | start virtual | Starts the asynchronous context with the given callback. The callback must remain valid for the lifetime of the [Runner](#runner). |
bool | running const | Returns true if the async context is currently running. |
void | cancel | Signals the async context to stop at the earliest opportunity. |
bool | cancelled const | Returns true if the context has been cancelled. The implementation is responsible for exiting as soon as possible after cancellation. |
bool | repeating const | Returns true if the runner is in repeating mode. |
void | setRepeating | Enables or disables repeating mode. When repeating, the target function is invoked repeatedly until [cancel()](#cancel-2) is called. This normalizes behaviour across thread-based and event-loop-based [Runner](#runner) implementations. Must be called before [start()](#start-3). |
bool | async virtual const | Returns true if the implementation is thread-based. |
std::thread::id | tid const | Returns the native thread ID of the thread running the async context. |
bool | waitForExit | Blocks until the async context exits or the timeout elapses. The context should be cancelled before calling this method. Must be called from outside the runner's own thread to avoid deadlock. |
Runner
Runner()Defined in src/base/include/icy/runner.h:37
start
virtual
virtual void start(std::function< void()> target)Defined in src/base/include/icy/runner.h:43
Starts the asynchronous context with the given callback. The callback must remain valid for the lifetime of the [Runner](#runner).
Parameters
targetCallable to invoke when the context runs.
Reimplemented by
running
const
bool running() constDefined in src/base/include/icy/runner.h:47
Returns true if the async context is currently running.
Returns
True if the runner's context has been started and has not yet stopped.
cancel
void cancel()Defined in src/base/include/icy/runner.h:50
Signals the async context to stop at the earliest opportunity.
cancelled
const
bool cancelled() constDefined in src/base/include/icy/runner.h:55
Returns true if the context has been cancelled. The implementation is responsible for exiting as soon as possible after cancellation.
Returns
True if [cancel()](#cancel-2) has been called.
repeating
const
bool repeating() constDefined in src/base/include/icy/runner.h:59
Returns true if the runner is in repeating mode.
Returns
True if the target function is invoked in a loop until cancelled.
setRepeating
void setRepeating(bool flag)Defined in src/base/include/icy/runner.h:66
Enables or disables repeating mode. When repeating, the target function is invoked repeatedly until [cancel()](#cancel-2) is called. This normalizes behaviour across thread-based and event-loop-based [Runner](#runner) implementations. Must be called before [start()](#start-3).
Parameters
flagTrue to enable repeating mode, false to run the target once.
async
virtual const
virtual bool async() constDefined in src/base/include/icy/runner.h:70
Returns true if the implementation is thread-based.
Returns
True for thread-backed runners, false for event-loop-driven runners.
Reimplemented by
tid
const
std::thread::id tid() constDefined in src/base/include/icy/runner.h:74
Returns the native thread ID of the thread running the async context.
Returns
std::thread::id of the runner thread, or a default-constructed ID if not started.
waitForExit
bool waitForExit(int timeout = 5000)Defined in src/base/include/icy/runner.h:81
Blocks until the async context exits or the timeout elapses. The context should be cancelled before calling this method. Must be called from outside the runner's own thread to avoid deadlock.
Parameters
timeoutMaximum number of milliseconds to wait. Pass 0 to wait indefinitely.
Returns
True if the context exited cleanly, false if the timeout was reached (throws instead).
Protected Attributes
_context
std::shared_ptr< Context > _contextDefined in src/base/include/icy/runner.h:117
Shared pointer to the internal Context.
Protected Methods
Runner
Runner(const Runner &) = deleteDefined in src/base/include/icy/runner.h:111
NonCopyable and NonMovable.
Runner
Runner(Runner &&) = deleteDefined in src/base/include/icy/runner.h:113
Deleted constructor.
