Base module

Timeout

Timeout counter which expires after a given delay.

#include <icy/timeout.h>

class Timeout

Defined in src/base/include/icy/timeout.h:32

Subclassed by
TimedToken

Timeout counter which expires after a given delay. Delay is specified in milliseconds.

Public Methods

ReturnNameDescription
TimeoutConstructs a Timeout with the given delay.
TimeoutCopy constructor.
Timeout noexceptDefaulted constructor.
~Timeout
boolrunning constReturns true if the timer is currently running.
voidstartStarts (or restarts) the timer, recording the current time as the start point.
voidstopStops the timer without resetting it. expired() will return false after this call.
voidresetRestarts the timer from now, equivalent to calling start().
longremaining constReturns the number of milliseconds remaining before expiry. Returns 0 if already expired, or the full delay if not running.
boolexpired constReturns true if the timer is running and the delay has fully elapsed.
voidsetDelay inlineSets the expiry delay without restarting the timer.
longdelay const inlineReturns the configured delay in milliseconds.
Timeout &operator=Copy assignment operator.
Timeout &operator= noexceptDefaulted assignment operator.

Timeout

Timeout(long delay = 0, bool autoStart = false)

Defined in src/base/include/icy/timeout.h:38

Constructs a Timeout with the given delay.

Parameters

ParameterTypeDescription
delaylongExpiry duration in milliseconds (default: 0).
autoStartboolIf true, starts the timer immediately on construction.

Timeout

Timeout(const Timeout & src)

Defined in src/base/include/icy/timeout.h:42

Copy constructor.

Parameters

ParameterTypeDescription
srcconst Timeout &Source Timeout to copy state from.

Timeout

noexcept

Timeout(Timeout && src) noexcept = default

Defined in src/base/include/icy/timeout.h:44

Defaulted constructor.


~Timeout

~Timeout()

Defined in src/base/include/icy/timeout.h:45


running

const

bool running() const

Defined in src/base/include/icy/timeout.h:49

Returns true if the timer is currently running.

Returns

true if start() has been called and stop() has not.


start

void start()

Defined in src/base/include/icy/timeout.h:52

Starts (or restarts) the timer, recording the current time as the start point.


stop

void stop()

Defined in src/base/include/icy/timeout.h:55

Stops the timer without resetting it. expired() will return false after this call.


reset

void reset()

Defined in src/base/include/icy/timeout.h:58

Restarts the timer from now, equivalent to calling start().


remaining

const

long remaining() const

Defined in src/base/include/icy/timeout.h:63

Returns the number of milliseconds remaining before expiry. Returns 0 if already expired, or the full delay if not running.

Returns

Milliseconds until expiry.


expired

const

bool expired() const

Defined in src/base/include/icy/timeout.h:67

Returns true if the timer is running and the delay has fully elapsed.

Returns

true if expired, false if stopped or not yet elapsed.


setDelay

inline

inline void setDelay(long delay)

Defined in src/base/include/icy/timeout.h:71

Sets the expiry delay without restarting the timer.

Parameters

ParameterTypeDescription
delaylongNew delay in milliseconds.

delay

const inline

inline long delay() const

Defined in src/base/include/icy/timeout.h:75

Returns the configured delay in milliseconds.

Returns

Delay in milliseconds.


operator=

Timeout & operator=(const Timeout & src)

Defined in src/base/include/icy/timeout.h:79

Copy assignment operator.

Parameters

ParameterTypeDescription
srcconst Timeout &Source Timeout to copy state from.

operator=

noexcept

Timeout & operator=(Timeout && src) noexcept = default

Defined in src/base/include/icy/timeout.h:80

Defaulted assignment operator.

Protected Attributes

ReturnNameDescription
std::chrono::steady_clock::time_point_startAt
long_delay
bool_running

_startAt

std::chrono::steady_clock::time_point _startAt

Defined in src/base/include/icy/timeout.h:83


_delay

long _delay

Defined in src/base/include/icy/timeout.h:84


_running

bool _running

Defined in src/base/include/icy/timeout.h:85