SObjectizer  5.7
Classes | Namespaces | Typedefs | Functions
message_limit.hpp File Reference
#include <so_5/message.hpp>
#include <so_5/mbox.hpp>
#include <so_5/enveloped_msg.hpp>
#include <so_5/details/lambda_traits.hpp>
#include <so_5/details/invoke_noexcept_code.hpp>
#include <so_5/optional.hpp>
#include <so_5/declspec.hpp>
#include <functional>
#include <typeindex>
#include <atomic>
#include <vector>

Go to the source code of this file.

Classes

struct  so_5::message_limit::description_t
 A description of one message limit. More...
 
struct  so_5::message_limit::drop_indicator_t< M >
 Message limit with reaction 'drop new message'. More...
 
struct  so_5::message_limit::abort_app_indicator_t< M >
 Message limit with reaction 'abort the application'. More...
 
struct  so_5::message_limit::log_then_abort_app_indicator_t< M, L >
 Message limit with reaction 'abort the application' and the possibility to call additional lambda before aborting the app. More...
 
struct  so_5::message_limit::impl::call_pre_abort_action_impl< is_message, M, L >
 Helper class for calling pre-abort action. More...
 
struct  so_5::message_limit::impl::call_pre_abort_action_impl< false, M, L >
 Specialization for the case of signal. More...
 
struct  so_5::message_limit::impl::call_pre_abort_action< M, L >
 Helper class for calling pre-abort action. More...
 
struct  so_5::message_limit::redirect_indicator_t< Msg, Lambda >
 Indication that a message must be redirected on overlimit. More...
 
struct  so_5::message_limit::impl::transformed_message_maker< is_signal, Result, Msg, Args >
 A helper function to call appropriate constructor of resulting type in dependence of message or signal. More...
 
struct  so_5::message_limit::impl::transformed_message_maker< true, Result, Msg >
 A specialization of signal. More...
 
class  so_5::message_limit::transformed_message_t< Msg >
 A result of message transformation. More...
 
struct  so_5::message_limit::transform_indicator_t< Source >
 An indicator of transform reaction on message overlimit. More...
 
struct  so_5::message_limit::message_limit_methods_mixin_t
 A mixin with message limit definition methods. More...
 

Namespaces

 so_5
 Public part of message limit implementation.
 
 so_5::message_limit
 All stuff related to message limits.
 
 so_5::message_limit::impl
 Internal implementation of message limits related stuff.
 

Typedefs

using so_5::message_limit::description_container_t = std::vector< description_t >
 Type of container for holding message limit descriptions. More...
 

Functions

SO_5_FUNC void so_5::message_limit::impl::drop_message_reaction (const overlimit_context_t &ctx)
 Actual implementation of drop message reaction. More...
 
template<class M >
void so_5::message_limit::accept_one_indicator (description_container_t &to, const drop_indicator_t< M > &indicator)
 Helper function for accepting drop_indicator and storing the corresponding description into the limits container. More...
 
SO_5_FUNC void so_5::message_limit::impl::abort_app_reaction (const overlimit_context_t &ctx)
 Actual implementation of abort application reaction. More...
 
template<class M >
void so_5::message_limit::accept_one_indicator (description_container_t &to, const abort_app_indicator_t< M > &indicator)
 Helper function for accepting abort_app_indicator and storing the corresponding description into the limits container. More...
 
template<class M , class L >
void so_5::message_limit::accept_one_indicator (description_container_t &to, const log_then_abort_app_indicator_t< M, L > &indicator)
 Helper function for accepting log_then_abort_app_indicator and storing the corresponding description into the limits container. More...
 
SO_5_FUNC void so_5::message_limit::impl::redirect_reaction ( const overlimit_context_t &ctx, const mbox_t &to)
 Actual implementation of redirect message reaction. More...
 
template<typename Msg , typename Lambda >
void so_5::message_limit::accept_one_indicator (description_container_t &to, redirect_indicator_t< Msg, Lambda > indicator)
 Helper function for accepting redirect_indicator and storing the corresponding description into the limits container. More...
 
SO_5_FUNC void so_5::message_limit::impl::transform_reaction ( const overlimit_context_t &ctx, const mbox_t &to, const std::type_index &msg_type, const message_ref_t &message)
 Actual implementation of transform reaction. More...
 
template<class M >
void so_5::message_limit::accept_one_indicator (description_container_t &to, transform_indicator_t< M > indicator)
 Helper function for accepting transform_indicator and storing the corresponding description into the limits container. More...
 
template<typename I , typename... Args>
void so_5::message_limit::accept_indicators (description_container_t &to, I &&indicator, Args &&... others)
 Helper function for constructing limits description from a series of limit indicators. More...
 
void so_5::message_limit::accept_indicators (description_container_t &)