SObjectizer 5.8
Loading...
Searching...
No Matches
message.hpp File Reference

A base class for the agent messages definition. More...

#include <so_5/declspec.hpp>
#include <so_5/exception.hpp>
#include <so_5/atomic_refcounted.hpp>
#include <so_5/types.hpp>
#include <so_5/agent_ref_fwd.hpp>
#include <type_traits>
#include <typeindex>
#include <functional>
#include <future>
#include <atomic>

Go to the source code of this file.

Classes

class  so_5::message_t
 A base class for agent messages. More...
 
class  so_5::signal_t
 A base class for agent signals. More...
 
struct  so_5::user_type_message_t< T >
 Template class for representing object of user type as a message. More...
 
struct  so_5::immutable_msg< M >
 A special marker for immutable message. More...
 
struct  so_5::mutable_msg< M >
 A special marker for mutable message. More...
 
struct  so_5::details::message_mutability_traits< T >
 Detector of message type traits in dependency of message immutability or mutability. More...
 
struct  so_5::details::message_mutability_traits< immutable_msg< T > >
 
struct  so_5::details::message_mutability_traits< mutable_msg< T > >
 
struct  so_5::is_user_type_message< M >
 A helper for detection presence of message of user type. More...
 
struct  so_5::is_user_type_message< user_type_message_t< M > >
 
struct  so_5::is_signal< T >
 A helper class for checking that message is a signal. More...
 
struct  so_5::is_classical_message< T >
 A helper class for checking that message is a classical message derived from message_t class. More...
 
struct  so_5::is_mutable_message< T >
 A helper class for checking that message is a mutable message. More...
 
struct  so_5::is_mutable_message< mutable_msg< T > >
 
struct  so_5::message_payload_type_impl< T, is_classical_message >
 Implementation details for message_payload_type. More...
 
struct  so_5::message_payload_type_impl< T, false >
 Implementation details for message_payload_type. More...
 
struct  so_5::message_payload_type< T >
 A helper class for detection of payload type of message. More...
 
struct  so_5::message_payload_type< user_type_message_t< T > >
 
struct  so_5::details::make_message_instance_impl< is_signal, Msg >
 
struct  so_5::details::make_message_instance_impl< true, Msg >
 
struct  so_5::details::msg_state_timeout
 A signal to be used for switching to another state by timeout. More...
 
class  so_5::message_limit::any_unspecified_message
 A special mark to be used for default limits. More...
 
struct  so_5::message_limit::overlimit_context_t
 Description of context for overlimit action. More...
 
struct  so_5::message_limit::control_block_t
 A control block for one message limit. More...
 

Namespaces

namespace  so_5
 Private part of message limit implementation.
 
namespace  so_5::details
 Some reusable and low-level classes/functions which can be used in public header files.
 
namespace  so_5::message_limit
 All stuff related to message limits.
 
namespace  so_5::message_limit::impl
 Internal implementation of message limits related stuff.
 

Typedefs

using so_5::message_ref_t = intrusive_ptr_t< message_t >
 A smart reference to the message.
 
using so_5::message_limit::action_t = std::function< void(const overlimit_context_t&) >
 A type for reaction of message overlimit.
 

Functions

template<class Msg >
void so_5::ensure_not_signal ()
 A special compile-time checker to guarantee that the message class is not a signal class.
 
template<class Msg >
void so_5::ensure_message_with_actual_data (const Msg *m)
 A special checker to guarantee that the message is an instance of the message_t (not signal_t) and has a not-null pointer to the message data.
 
template<class S >
void so_5::ensure_not_mutable_signal ()
 A special compile-time checker to guarantee that S is not a mutable signal.
 
template<class Msg >
void so_5::ensure_signal ()
 A special compile-time checker to guarantee that the Msg is derived from the signal_t.
 
template<typename Msg >
void so_5::ensure_classical_message ()
 A special compile-time checker to guarantee that Msg is derived from message_t.
 
template<typename Msg , typename... Args>
auto so_5::details::make_message_instance (Args &&... args) -> std::unique_ptr< typename message_payload_type< Msg >::envelope_type >
 A helper for allocate instance of a message.
 

Detailed Description

A base class for the agent messages definition.

Definition in file message.hpp.