uvw 2.12.1
Loading...
Searching...
No Matches
uvw::TimerHandle Class Referencefinal

The TimerHandle handle. More...

#include <timer.h>

Inheritance diagram for uvw::TimerHandle:
Collaboration diagram for uvw::TimerHandle:

Public Member Functions

bool init ()
 Initializes the handle.
 
void start (Time timeout, Time repeat)
 Starts the timer.
 
void stop ()
 Stops the handle.
 
void again ()
 Stops the timer and restarts it if it was repeating.
 
void repeat (Time repeat)
 Sets the repeat interval value.
 
Time repeat ()
 Gets the timer repeat value.
 
Time dueIn ()
 Gets the timer due value.
 
- Public Member Functions inherited from uvw::Handle< TimerHandle, uv_timer_t >
HandleCategory category () const noexcept
 Gets the category of the handle.
 
HandleType type () const noexcept
 Gets the type of the handle.
 
bool active () const noexcept
 Checks if the handle is active.
 
bool closing () const noexcept
 Checks if a handle is closing or closed.
 
void close () noexcept
 Request handle to be closed.
 
void reference () noexcept
 Reference the given handle.
 
void unreference () noexcept
 Unreference the given handle.
 
bool referenced () const noexcept
 Checks if the given handle referenced.
 
std::size_t size () const noexcept
 Returns the size of the underlying handle type.
 
int sendBufferSize ()
 Gets the size of the send buffer used for the socket.
 
bool sendBufferSize (int value)
 Sets the size of the send buffer used for the socket.
 
int recvBufferSize ()
 Gets the size of the receive buffer used for the socket.
 
bool recvBufferSize (int value)
 Sets the size of the receive buffer used for the socket.
 
OSFileDescriptor fd () const
 Gets the platform dependent file descriptor equivalent.
 
- Public Member Functions inherited from uvw::Resource< TimerHandle, uv_timer_t >
std::shared_ptr< R > data () const
 Gets user-defined data. uvw won't use this field in any case.
 
void data (std::shared_ptr< void > uData)
 Sets arbitrary data. uvw won't use this field in any case.
 
- Public Member Functions inherited from uvw::UnderlyingType< TimerHandle, uv_timer_t >
Looploop () const noexcept
 Gets the loop from which the resource was originated.
 
const uv_timer_t * raw () const noexcept
 Gets the underlying raw data structure.
 
uv_timer_t * raw () noexcept
 Gets the underlying raw data structure.
 
- Public Member Functions inherited from uvw::Emitter< TimerHandle >
Connection< E > on (Listener< E > f)
 Registers a long-lived listener with the event emitter.
 
Connection< E > once (Listener< E > f)
 Registers a short-lived listener with the event emitter.
 
void erase (Connection< E > conn) noexcept
 Disconnects a listener from the event emitter.
 
void clear () noexcept
 Disconnects all the listeners for the given event type.
 
void clear () noexcept
 Disconnects all the listeners.
 
bool empty () const noexcept
 Checks if there are listeners registered for the specific event.
 
bool empty () const noexcept
 Checks if there are listeners registered with the event emitter.
 

Additional Inherited Members

- Public Types inherited from uvw::Emitter< TimerHandle >
- Static Public Member Functions inherited from uvw::UnderlyingType< TimerHandle, uv_timer_t >
static std::shared_ptr< TimerHandlecreate (Args &&...args)
 Creates a new resource of the given type.
 
- Protected Types inherited from uvw::Resource< TimerHandle, uv_timer_t >
- Protected Member Functions inherited from uvw::Handle< TimerHandle, uv_timer_t >
- Protected Member Functions inherited from uvw::Resource< TimerHandle, uv_timer_t >
- Protected Member Functions inherited from uvw::UnderlyingType< TimerHandle, uv_timer_t >
- Protected Member Functions inherited from uvw::Emitter< TimerHandle >
- Static Protected Member Functions inherited from uvw::Handle< TimerHandle, uv_timer_t >

Detailed Description

The TimerHandle handle.

Timer handles are used to schedule events to be emitted in the future.

To create a TimerHandle through a Loop, no arguments are required.

Definition at line 26 of file timer.h.

Member Function Documentation

◆ again()

void uvw::TimerHandle::again ( )

Stops the timer and restarts it if it was repeating.

Stop the timer, and if it is repeating restart it using the repeat value as the timeout.
If the timer has never been started before it emits an ErrorEvent event.

◆ dueIn()

Time uvw::TimerHandle::dueIn ( )

Gets the timer due value.

The time is relative to Loop::now().

Returns
The timer due value or 0 if it has expired.

◆ init()

bool uvw::TimerHandle::init ( )

Initializes the handle.

Returns
True in case of success, false otherwise.

◆ repeat() [1/2]

Time uvw::TimerHandle::repeat ( )

Gets the timer repeat value.

Returns
Timer repeat value in milliseconds (as a std::chrono::duration<uint64_t, std::milli>).

◆ repeat() [2/2]

void uvw::TimerHandle::repeat ( Time repeat)

Sets the repeat interval value.

The timer will be scheduled to run on the given interval and will follow normal timer semantics in the case of a time-slice overrun.
For example, if a 50ms repeating timer first runs for 17ms, it will be scheduled to run again 33ms later. If other tasks consume more than the 33ms following the first timer event, then another event will be emitted as soon as possible.

If the repeat value is set from a listener bound to an event, it does not immediately take effect. If the timer was non-repeating before, it will have been stopped. If it was repeating, then the old repeat value will have been used to schedule the next timeout.

Parameters
repeatRepeat interval in milliseconds (use std::chrono::duration<uint64_t, std::milli>).

◆ start()

void uvw::TimerHandle::start ( Time timeout,
Time repeat )

Starts the timer.

If timeout is zero, a TimerEvent event is emitted on the next event loop iteration. If repeat is non-zero, a TimerEvent event is emitted first after timeout milliseconds and then repeatedly after repeat milliseconds.

Parameters
timeoutMilliseconds before to emit an event (use std::chrono::duration<uint64_t, std::milli>).
repeatMilliseconds between successive events (use std::chrono::duration<uint64_t, std::milli>).

The documentation for this class was generated from the following file: