C++ Actor Framework 1.0.0
Loading...
Searching...
No Matches
caf::typed_actor< TraitOrSignature > Class Template Reference

Identifies a statically typed actor. More...

#include <typed_actor.hpp>

Inheritance diagram for caf::typed_actor< TraitOrSignature >:
caf::detail::comparable< typed_actor< TraitOrSignature > > caf::detail::comparable< typed_actor< TraitOrSignature >, actor > caf::detail::comparable< typed_actor< TraitOrSignature >, actor_addr > caf::detail::comparable< typed_actor< TraitOrSignature >, strong_actor_ptr >

Public Types

using trait = detail::to_statically_typed_trait_t<TraitOrSignature>
 Stores the template parameter pack.
 
using signatures = typename trait::signatures
 Stores the template parameter pack.
 
template<class... Es>
using extend = detail::extend_with_helper_t<signatures, type_list<Es...>>
 Creates a new typed_actor type by extending this one with Es....
 
template<class... Es>
using extend_with = detail::extend_with_helper_t<signatures, typename Es::signatures...>
 Creates a new typed_actor type by extending this one with another typed_actor.
 
using behavior_type = typed_behavior<TraitOrSignature>
 Identifies the behavior type actors of this kind use for their behavior stack.
 
using impl = typed_event_based_actor<TraitOrSignature>
 The default, event-based type for implementing this messaging interface.
 
using pointer = impl*
 Identifies pointers to instances of this kind of actor.
 
using pointer_view = typed_actor_pointer<TraitOrSignature>
 A view to an actor that implements this messaging interface without knowledge of the actual type.
 
using base = impl
 A class type suitable as base type class-based implementations.
 
template<class State >
using stateful_impl = stateful_actor<State, impl>
 The default, event-based type for implementing this messaging interface as a stateful actor.
 
template<class State >
using stateful_pointer = stateful_impl<State>*
 Convenience alias for stateful_impl<State>*.
 
using broker_base = typename detail::broker_from_signatures<signatures>::type
 Identifies the base class of brokers implementing this interface.
 
using broker_pointer = broker_base*
 Identifies pointers to brokers implementing this interface.
 
template<class State >
using stateful_broker_base = stateful_actor<State, broker_base>
 Identifies the broker_base class for this kind of actor with actor.
 
template<class State >
using stateful_broker_pointer = stateful_actor<State, broker_base>*
 Identifies the broker_base class for this kind of actor with actor.
 

Public Member Functions

 typed_actor (typed_actor &&)=default
 
 typed_actor (const typed_actor &)=default
 
typed_actor & operator= (typed_actor &&)=default
 
typed_actor & operator= (const typed_actor &)=default
 
template<class... Ts>
 typed_actor (const typed_actor< Ts... > &other)
 
template<class T , class = std::enable_if_t<actor_traits<T>::is_statically_typed>>
 typed_actor (T *ptr)
 
template<class T , class = std::enable_if_t< std::is_base_of_v<typed_actor_view_base, T>>>
 typed_actor (T ptr)
 
template<class... Ts>
typed_actor & operator= (const typed_actor< Ts... > &other)
 
typed_actor & operator= (std::nullptr_t)
 
 operator bool () const
 Queries whether this actor handle is valid.
 
bool operator! () const
 Queries whether this actor handle is invalid.
 
actor_addr address () const noexcept
 Queries the address of the stored actor.
 
actor_id id () const noexcept
 Returns the ID of this actor.
 
node_id node () const noexcept
 Returns the origin node of this actor.
 
actor_systemhome_system () const noexcept
 Returns the hosting actor system.
 
void swap (typed_actor &other) noexcept
 Exchange content of *this and other.
 

Static Public Attributes

static constexpr bool has_weak_ptr_semantics = false
 

Friends

class local_actor
 
class abstract_actor
 
template<class >
class data_processor
 
template<class , class , int >
class actor_cast_access
 

Detailed Description

template<class TraitOrSignature>
class caf::typed_actor< TraitOrSignature >

Identifies a statically typed actor.


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