Loading...
Searching...
No Matches
caf::actor_system Class Reference

Actor environment including scheduler, registry, and optional components such as a middleman. More...

`#include <actor_system.hpp>`

## Classes

class | module
| An (optional) component of the actor system. More...

## Public Types

using | module_ptr = std::unique_ptr<module>
using | module_array = std::array<module_ptr, module::num_ids>
using | mpi = std::set<std::string>
| A message passing interface (MPI) in run-time checkable representation.

## Public Member Functions

const strong_actor_ptr & | spawn_serv () const
| Returns the internal actor for dynamic spawn operations.
const strong_actor_ptr & | config_serv () const
| Returns the internal actor for storing the runtime configuration for this actor system.
| actor_system (const actor_system &)=delete
actor_system & | operator= (const actor_system &)=delete
| actor_system (actor_system_config &cfg)
template<class T, class E = typename std::enable_if<!is_typed_actor<T>::value>::type>
mpi | message_types (detail::type_list< T >) const
template<class... Ts>
mpi | message_types (detail::type_list< typed_actor< Ts... > >) const
template<class T, class E = typename std::enable_if<!detail::is_type_list<T>::value>::type>
mpi | message_types (const T &) const
template<class T>
mpi | message_types () const
| Returns a string representation of the messaging interface using portable names;.
bool | assignable (const mpi &xs, const mpi &ys) const
| Returns whether actor handles described by xs can be assigned to actor handles described by ys.
template<class T>
bool | assignable (const std::set< std::string > &xs) const
| Returns whether actor handles described by xs can be assigned to actor handles of type T.
const node_id & | node () const
| Returns the host-local identifier for this system.
scheduler::abstract_coordinator & | scheduler ()
| Returns the scheduler instance.
caf::logger & | logger ()
| Returns the system-wide event logger.
actor_registry & | registry ()
| Returns the system-wide actor registry.
const uniform_type_info_map & | types () const
| Returns the system-wide factory for custom types and actors.
std::string | render (const error &x) const
| Returns a string representation for err.
group_manager & | groups ()
| Returns the system-wide group manager.
bool | has_middleman () const
| Returns true if the I/O module is available, false otherwise.
io::middleman & | middleman ()
| Returns the middleman instance from the I/O module.
bool | has_opencl_manager () const
| Returns true if the opencl module is available, false otherwise.
opencl::manager & | opencl_manager () const
| Returns the manager instance from the OpenCL module.
bool | has_openssl_manager () const
| Returns true if the openssl module is available, false otherwise.
openssl::manager & | openssl_manager () const
| Returns the manager instance from the OpenSSL module.
bool | has_network_manager () const noexcept
| Returns true if the network module is available, false otherwise.
net::middleman & | network_manager ()
| Returns the network manager (middleman) instance.
scoped_execution_unit * | dummy_execution_unit ()
| Returns a dummy execution unit that forwards everything to the scheduler.
actor_id | next_actor_id ()
| Returns a new actor ID.
actor_id | latest_actor_id () const
| Returns the last given actor ID.
void | await_all_actors_done () const
| Blocks this caller until all actors are done.
template<class C, spawn_options Os, class... Ts>
infer_handle_from_class_t< C > | spawn_class (actor_config &cfg, Ts &&... xs)
| Called by spawn when used to create a class-based actor to apply automatic conversions to xs before spawning the actor.
template<class C, spawn_options Os = no_spawn_options, class... Ts>
infer_handle_from_class_t< C > | spawn (Ts &&... xs)
| Returns a new actor of type C using xs... as constructor arguments.
template<class S, spawn_options Os = no_spawn_options>
infer_handle_from_state_t< S > | spawn ()
template<spawn_options Os = no_spawn_options, class F, class... Ts>
infer_handle_from_fun_t< F > | spawn (F fun, Ts &&... xs)
| Returns a new functor-based actor.
template<class Handle, class E = typename std::enable_if<is_handle<Handle>::value>::type>
expected< Handle > | spawn (const std::string &name, message args, execution_unit *ctx=nullptr, bool check_interface=true, const mpi *expected_ifs=nullptr)
| Returns a new actor with run-time type name, constructed with the arguments stored in args.
template<spawn_options Os = no_spawn_options, class F, class... Ts>
infer_handle_from_fun_t< F > | spawn_in_groups (std::initializer_list< group > gs, F fun, Ts &&... xs)
| Returns a new functor-based actor subscribed to all groups in gs.
template<spawn_options Os = no_spawn_options, class Gs, class F, class... Ts>
infer_handle_from_fun_t< F > | spawn_in_groups (const Gs &gs, F fun, Ts &&... xs)
| Returns a new functor-based actor subscribed to all groups in gs.
template<spawn_options Os = no_spawn_options, class F, class... Ts>
infer_handle_from_fun_t< F > | spawn_in_group (const group &grp, F fun, Ts &&... xs)
| Returns a new functor-based actor subscribed to all groups in gs.
template<class T, spawn_options Os = no_spawn_options, class... Ts>
infer_handle_from_class_t< T > | spawn_in_groups (std::initializer_list< group > gs, Ts &&... xs)
| Returns a new class-based actor subscribed to all groups in gs.
template<class T, spawn_options Os = no_spawn_options, class Gs, class... Ts>
infer_handle_from_class_t< T > | spawn_in_groups (const Gs &gs, Ts &&... xs)
| Returns a new class-based actor subscribed to all groups in gs.
template<class T, spawn_options Os = no_spawn_options, class... Ts>
infer_handle_from_class_t< T > | spawn_in_group (const group &grp, Ts &&... xs)
| Returns a new class-based actor subscribed to all groups in gs.
bool | await_actors_before_shutdown () const
| Returns whether this actor system calls await_all_actors_done in its destructor before shutting down.
void | await_actors_before_shutdown (bool x)
| Configures whether this actor system calls await_all_actors_done in its destructor before shutting down.
const actor_system_config & | config () const
| Returns the configuration of this actor system.
actor_clock & | clock () noexcept
| Returns the system-wide clock.
runtime_settings_map & | runtime_settings ()
| Returns application-specific, system-wide runtime settings.
const runtime_settings_map & | runtime_settings () const
| Returns application-specific, system-wide runtime settings.
size_t | detached_actors ()
| Returns the number of detached actors.

## Static Public Member Functions

static constexpr size_t | internal_actor_id (atom_value x)
| Returns the ID of an internal actor by its name.

## Static Public Attributes

static constexpr size_t | num_internal_actors = 2
| The number of actors implictly spawned by the actor system on startup.

## Friends

class | logger
class | io::middleman
class | net::middleman
class | abstract_actor

## Detailed Description

Actor environment including scheduler, registry, and optional components such as a middleman.

Examples
  dancing_kirby.cpp, and hello_world.cpp.

## Constructor & Destructor Documentation

## actor_system()

caf::actor_system::actor_system | ( | actor_system_config & | cfg | ) |

explicit

Warning
  The system stores a reference to cfg, which means the config object must outlive the actor system.

## Member Function Documentation

## assignable() [1/2]

bool caf::actor_system::assignable | ( | const mpi & | xs,
|  | const mpi & | ys ) const

Returns whether actor handles described by xs can be assigned to actor handles described by ys.

Attention
  This feature is experimental.

## assignable() [2/2]

template<class T>

bool caf::actor_system::assignable | ( | const std::set< std::string > & | xs | ) | const

Returns whether actor handles described by xs can be assigned to actor handles of type T.

Attention
  This feature is experimental.

## internal_actor_id()

constexpr size_t caf::actor_system::internal_actor_id | ( | atom_value | x | ) |

static constexpr

Returns the ID of an internal actor by its name.

Precondition
  x in {'SpawnServ', 'ConfigServ', 'StreamServ'}

## middleman()

io::middleman & caf::actor_system::middleman | ( |  | ) |

Returns the middleman instance from the I/O module.

Exceptions

  `std::logic_error` | if module is not loaded.

## network_manager()

net::middleman & caf::actor_system::network_manager | ( |  | ) |

Returns the network manager (middleman) instance.

Exceptions

  `std::logic_error` | if module is not loaded.

## opencl_manager()

opencl::manager & caf::actor_system::opencl_manager | ( |  | ) | const

Returns the manager instance from the OpenCL module.

Exceptions

  `std::logic_error` | if module is not loaded.

## openssl_manager()

openssl::manager & caf::actor_system::openssl_manager | ( |  | ) | const

Returns the manager instance from the OpenSSL module.

Exceptions

  `std::logic_error` | if module is not loaded.

## spawn() [1/3]

template<class Handle, class E = typename std::enable_if<is_handle<Handle>::value>::type>

expected< Handle > caf::actor_system::spawn | ( | const std::string & | name,
|  | message | args,
|  | execution_unit * | ctx = nullptr,
|  | bool | check_interface = true,
|  | const mpi * | expected_ifs = nullptr )

Returns a new actor with run-time type name, constructed with the arguments stored in args.

Attention
  This feature is experimental.

## spawn() [2/3]

template<spawn_options Os = no_spawn_options, class F, class... Ts>

infer_handle_from_fun_t< F > caf::actor_system::spawn | ( | F | fun,
|  | Ts &&... | xs )

Returns a new functor-based actor.

The first argument must be the functor, the remainder of xs... is used to invoke the functor. The behavior of spawn can be modified by setting Os, e.g., to opt-out of the cooperative scheduling.

## spawn() [3/3]

template<class C, spawn_options Os = no_spawn_options, class... Ts>

infer_handle_from_class_t< C > caf::actor_system::spawn | ( | Ts &&... | xs | ) |

Returns a new actor of type C using xs... as constructor arguments.

The behavior of spawn can be modified by setting Os, e.g., to opt-out of the cooperative scheduling.

Parameters

  xs | Constructor arguments for C.

Examples
  dancing_kirby.cpp, and hello_world.cpp.

## spawn_class()

template<class C, spawn_options Os, class... Ts>

infer_handle_from_class_t< C > caf::actor_system::spawn_class | ( | actor_config & | cfg,
|  | Ts &&... | xs )

Called by spawn when used to create a class-based actor to apply automatic conversions to xs before spawning the actor.

Should not be called by users of the library directly.

Parameters

  cfg | To-be-filled config for the actor.
  xs | Constructor arguments for C.

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

- /build/actor-framework-Z9pIPl/actor-framework-0.17.6/libcaf_core/caf/actor_system.hpp