A cooperatively scheduled, event-based actor implementation with static type-checking.
More...
|
| typed_event_based_actor (actor_config &cfg) |
|
std::set< std::string > | message_types () const override |
| Returns the set of accepted messages types as strings or an empty set if this actor is untyped.
|
|
void | initialize () override |
|
| local_actor (actor_config &cfg) |
|
void | on_destroy () override |
| Cleans up any remaining state before the destructor is called.
|
|
void | setup_metrics () |
|
virtual void | launch (execution_unit *eu, bool lazy, bool hide)=0 |
|
clock_type::time_point | now () const noexcept |
| Returns the current time.
|
|
disposable | request_response_timeout (timespan d, message_id mid) |
| Requests a new timeout for mid .
|
|
template<class T , spawn_options Os = no_spawn_options, class... Ts> |
infer_handle_from_class_t< T > | spawn (Ts &&... xs) |
|
template<spawn_options Os = no_spawn_options, class F , class... Ts> |
infer_handle_from_fun_t< F > | spawn (F fun, Ts &&... xs) |
|
template<class T , spawn_options Os = no_spawn_options, class Groups , class... Ts> |
actor | spawn_in_groups (const Groups &gs, Ts &&... xs) |
|
template<class T , spawn_options Os = no_spawn_options, class... Ts> |
actor | spawn_in_groups (std::initializer_list< group > gs, Ts &&... xs) |
|
template<class T , spawn_options Os = no_spawn_options, class... Ts> |
actor | spawn_in_group (const group &grp, Ts &&... xs) |
|
template<spawn_options Os = no_spawn_options, class Groups , class F , class... Ts> |
actor | spawn_in_groups (const Groups &gs, F fun, Ts &&... xs) |
|
template<spawn_options Os = no_spawn_options, class F , class... Ts> |
actor | spawn_in_groups (std::initializer_list< group > gs, F fun, Ts &&... xs) |
|
template<spawn_options Os = no_spawn_options, class F , class... Ts> |
actor | spawn_in_group (const group &grp, F fun, Ts &&... xs) |
|
void | send_exit (const actor_addr &whom, error reason) |
| Sends an exit message to whom .
|
|
void | send_exit (const strong_actor_ptr &whom, error reason) |
| Sends an exit message to whom .
|
|
template<class ActorHandle > |
void | send_exit (const ActorHandle &whom, error reason) |
| Sends an exit message to whom .
|
|
execution_unit * | context () const noexcept |
| Returns the execution unit currently used by this actor.
|
|
void | context (execution_unit *x) noexcept |
| Sets the execution unit for this actor.
|
|
actor_system & | system () const noexcept |
| Returns the hosting actor system.
|
|
const actor_system_config & | config () const noexcept |
| Returns the config of the hosting actor system.
|
|
actor_clock & | clock () const noexcept |
| Returns the clock of the actor system.
|
|
strong_actor_ptr & | current_sender () noexcept |
| Returns a pointer to the sender of the current message.
|
|
message_id | current_message_id () noexcept |
| Returns the ID of the current message.
|
|
message_id | take_current_message_id () noexcept |
| Returns the ID of the current message and marks the ID stored in the current mailbox element as answered.
|
|
void | drop_current_message_id () noexcept |
| Marks the current message ID as answered.
|
|
strong_actor_ptr | current_next_stage () noexcept |
| Returns a pointer to the next stage from the forwarding path of the current message or nullptr if the path is empty.
|
|
strong_actor_ptr | take_current_next_stage () |
| Returns a pointer to the next stage from the forwarding path of the current message and removes it from the path.
|
|
const mailbox_element::forwarding_stack & | current_forwarding_stack () noexcept |
| Returns the forwarding stack from the current mailbox element.
|
|
mailbox_element::forwarding_stack | take_current_forwarding_stack () noexcept |
| Moves the forwarding stack from the current mailbox element.
|
|
mailbox_element * | current_mailbox_element () noexcept |
| Returns a pointer to the currently processed mailbox element.
|
|
void | monitor (const node_id &node) |
| Adds a unidirectional monitor to node .
|
|
template<message_priority P = message_priority::normal, class Handle > |
void | monitor (const Handle &whom) |
| Adds a unidirectional monitor to whom .
|
|
void | demonitor (const actor_addr &whom) |
| Removes a monitor from whom .
|
|
void | demonitor (const strong_actor_ptr &whom) |
| Removes a monitor from whom .
|
|
void | demonitor (const node_id &node) |
| Removes a monitor from node .
|
|
template<class Handle > |
void | demonitor (const Handle &whom) |
| Removes a monitor from whom .
|
|
virtual void | on_exit () |
| Can be overridden to perform cleanup code after an actor finished execution.
|
|
template<class... Ts> |
detail::response_promise_t< Ts... > | make_response_promise () |
| Creates a typed_response_promise to respond to a request later on.
|
|
response_promise | make_response_promise () |
| Creates a response_promise to respond to a request later on.
|
|
const char * | name () const override |
| Returns an implementation-dependent name for logging purposes, which is only valid as long as the actor is running.
|
|
virtual error | save_state (serializer &sink, unsigned int version) |
| Serializes the state of this actor to sink .
|
|
virtual error | load_state (deserializer &source, unsigned int version) |
| Deserializes the state of this actor from source .
|
|
const error & | fail_state () const noexcept |
| Returns the currently defined fail state.
|
|
virtual const char * | name () const |
| Returns an implementation-dependent name for logging purposes, which is only valid as long as the actor is running.
|
|
void | attach (attachable_ptr ptr) override |
| Attaches ptr to this actor.
|
|
size_t | detach (const attachable::token &what) override |
| Detaches the first attached object that matches what .
|
|
void | link_to (const actor_addr &x) |
| Links this actor to x .
|
|
template<class ActorHandle > |
void | link_to (const ActorHandle &x) |
| Links this actor to x .
|
|
void | unlink_from (const actor_addr &x) |
| Unlinks this actor from x .
|
|
template<class ActorHandle > |
void | unlink_from (const ActorHandle &x) |
| Links this actor to x .
|
|
actor_control_block * | ctrl () const |
|
| abstract_actor (const abstract_actor &)=delete |
|
abstract_actor & | operator= (const abstract_actor &)=delete |
|
virtual void | on_destroy () |
| Cleans up any remaining state before the destructor is called.
|
|
bool | enqueue (strong_actor_ptr sender, message_id mid, message msg, execution_unit *host) override |
| Enqueues a new message without forwarding stack to the channel.
|
|
virtual bool | enqueue (mailbox_element_ptr what, execution_unit *host)=0 |
| Enqueues a new message wrapped in a mailbox_element to the actor.
|
|
virtual void | attach (attachable_ptr ptr)=0 |
| Attaches ptr to this actor.
|
|
template<class F > |
void | attach_functor (F f) |
| Convenience function that attaches the functor f to this actor.
|
|
actor_addr | address () const noexcept |
| Returns the logical actor address.
|
|
virtual size_t | detach (const attachable::token &what)=0 |
| Detaches the first attached object that matches what .
|
|
virtual std::set< std::string > | message_types () const |
| Returns the set of accepted messages types as strings or an empty set if this actor is untyped.
|
|
actor_id | id () const noexcept |
| Returns the ID of this actor.
|
|
node_id | node () const noexcept |
| Returns the node this actor is living on.
|
|
actor_system & | home_system () const noexcept |
| Returns the system that created this actor (or proxy).
|
|
virtual bool | enqueue (strong_actor_ptr sender, message_id mid, message content, execution_unit *host=nullptr)=0 |
| Enqueues a new message without forwarding stack to the channel.
|
|
bool | is_abstract_actor () const |
|
bool | is_abstract_group () const |
|
bool | is_actor_decorator () const |
|
template<class... Sigs>
class caf::typed_event_based_actor< Sigs >
A cooperatively scheduled, event-based actor implementation with static type-checking.