C++ Actor Framework 0.19
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Related Symbols | List of all members
caf::flow::coordinator Class Referenceabstract

Coordinates any number of co-located observables and observers. More...

#include <coordinator.hpp>

Inheritance diagram for caf::flow::coordinator:
caf::async::execution_context

Public Types

using steady_time_point = std::chrono::steady_clock::time_point
 A time point of the monotonic clock.
 

Public Member Functions

observable_builder make_observable ()
 Returns a factory object for new observable objects on this coordinator.
 
virtual steady_time_point steady_time ()=0
 Returns the current time on the monotonic clock of this coordinator.
 
virtual void delay (action what)=0
 Delays execution of an action until all pending actions were executed.
 
template<class F >
void delay_fn (F &&what)
 Delays execution of an action until all pending actions were executed.
 
virtual disposable delay_until (steady_time_point abs_time, action what)=0
 Delays execution of an action with an absolute timeout.
 
template<class F >
disposable delay_until_fn (steady_time_point abs_time, F &&what)
 Delays execution of an action until all pending actions were executed.
 
disposable delay_for (timespan rel_time, action what)
 Delays execution of an action with a relative timeout.
 
template<class F >
void delay_for_fn (timespan rel_time, F &&what)
 Delays execution of an action with a relative timeout.
 
- Public Member Functions inherited from caf::async::execution_context
virtual void ref_execution_context () const noexcept=0
 Increases the reference count of the execution_context.
 
virtual void deref_execution_context () const noexcept=0
 Decreases the reference count of the execution context and destroys the object if necessary.
 
virtual void schedule (action what)=0
 Schedules what to run on the event loop of the execution context.
 
template<class F >
void schedule_fn (F &&what)
 Schedules what to run on the event loop of the execution context.
 
virtual void watch (disposable what)=0
 Asks the coordinator to keep its event loop running until what becomes disposed since it depends on external events or produces events that are visible to outside observers.
 

Related Symbols

(Note that these are not member symbols.)

using coordinator_ptr = intrusive_ptr< coordinator >
 

Detailed Description

Coordinates any number of co-located observables and observers.

The co-located objects never need to synchronize calls to other co-located objects since the coordinator guarantees synchronous execution.

Member Function Documentation

◆ delay()

virtual void caf::flow::coordinator::delay ( action  what)
pure virtual

Delays execution of an action until all pending actions were executed.

May call schedule.

Parameters
whatThe action for delayed execution.

◆ delay_fn()

template<class F >
void caf::flow::coordinator::delay_fn ( F &&  what)

Delays execution of an action until all pending actions were executed.

May call schedule.

Parameters
whatThe action for delayed execution.

◆ delay_for()

disposable caf::flow::coordinator::delay_for ( timespan  rel_time,
action  what 
)

Delays execution of an action with a relative timeout.

Parameters
rel_timeThe relative time when this action should take place.
whatThe action for delayed execution.
Returns
a disposable to cancel the pending timeout.

◆ delay_for_fn()

template<class F >
void caf::flow::coordinator::delay_for_fn ( timespan  rel_time,
F &&  what 
)

Delays execution of an action with a relative timeout.

Parameters
rel_timeThe relative time when this action should take place.
whatThe action for delayed execution.
Returns
a disposable to cancel the pending timeout.

◆ delay_until()

virtual disposable caf::flow::coordinator::delay_until ( steady_time_point  abs_time,
action  what 
)
pure virtual

Delays execution of an action with an absolute timeout.

Parameters
abs_timeThe absolute time when this action should take place.
whatThe action for delayed execution.
Returns
a disposable to cancel the pending timeout.

◆ delay_until_fn()

template<class F >
disposable caf::flow::coordinator::delay_until_fn ( steady_time_point  abs_time,
F &&  what 
)

Delays execution of an action until all pending actions were executed.

May call schedule.

Parameters
whatThe action for delayed execution.

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