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.
Public Methods
| Return | Name | Description |
|---|---|---|
Runner | ||
~Runner virtual | ||
void | start virtual | Starts the asynchronous context with the given callback. The callback must remain valid for the lifetime of the 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() is called. This normalizes behaviour across thread-based and event-loop-based Runner implementations. Must be called before start(). |
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
~Runner
virtual
virtual ~Runner()Defined in src/base/include/icy/runner.h:38
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.
Reimplemented by
Parameters
| Parameter | Type | Description |
|---|---|---|
target | std::function< void()> | Callable to invoke when the context runs. |
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() 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() is called. This normalizes behaviour across thread-based and event-loop-based Runner implementations. Must be called before start().
Parameters
| Parameter | Type | Description |
|---|---|---|
flag | bool | True 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.
Returns
True if the context exited cleanly, false if the timeout was reached (throws instead).
Parameters
| Parameter | Type | Description |
|---|---|---|
timeout | int | Maximum number of milliseconds to wait. Pass 0 to wait indefinitely. |
Protected Attributes
_context
std::shared_ptr< Context > _contextType: std::shared_ptr< Context >
Defined in src/base/include/icy/runner.h:117
Shared pointer to the internal Context.
Protected Methods
| Return | Name | Description |
|---|---|---|
Runner | NonCopyable and NonMovable. | |
Runner & | operator= | Deleted assignment operator. |
Runner | Deleted constructor. | |
Runner & | operator= | Deleted assignment operator. |
Runner
Runner(const Runner &) = deleteDefined in src/base/include/icy/runner.h:111
NonCopyable and NonMovable.
operator=
Runner & operator=(const Runner &) = deleteDefined in src/base/include/icy/runner.h:112
Deleted assignment operator.
Runner
Runner(Runner &&) = deleteDefined in src/base/include/icy/runner.h:113
Deleted constructor.
operator=
Runner & operator=(Runner &&) = deleteDefined in src/base/include/icy/runner.h:114
Deleted assignment operator.
