SObjectizer  5.7
Classes | Namespaces | Typedefs | Functions
message_limit_internals.hpp File Reference
#include <so_5/message_limit.hpp>
#include <algorithm>
#include <iterator>
#include <map>
#include <memory>
#include <vector>

Go to the source code of this file.

Classes

struct  so_5::message_limit::impl::info_block_t
 Run-time data for limit of one message type. More...
 
class  so_5::message_limit::impl::info_storage_t
 An interface for storage of messages limits for one agent. More...
 
class  so_5::message_limit::impl::fixed_info_storage_t
 A fixed-capacity storage for message limits for one agent. More...
 
class  so_5::message_limit::impl::growable_info_storage_t
 A storage of growable capacity for message limits for one agent. More...
 
struct  so_5::message_limit::impl::anonymous_namespace{message_limit_internals.hpp}::decrement_on_exception_t
 Helper class to rollback message count change in case of an exception. 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.
 
 so_5::message_limit::impl::description_preparation_details
 
 so_5::message_limit::impl::anonymous_namespace{message_limit_internals.hpp}
 

Typedefs

using so_5::message_limit::impl::info_block_container_t = std::vector< info_block_t >
 Type of container for limits' run-time data. More...
 

Functions

std::tuple< description_container_t, std::optional< description_t > > so_5::message_limit::impl::description_preparation_details::prepare (description_container_t original_descriptions)
 
static std::unique_ptr< info_storage_t > so_5::message_limit::impl::create_info_storage_if_necessary (description_container_t &&descriptions)
 Create info_storage object if there are some message limits. More...
 
template<typename Lambda >
void so_5::message_limit::impl::try_to_deliver_to_agent (mbox_id_t mbox_id, const agent_t &receiver, const control_block_t *limit, const std::type_index &msg_type, const message_ref_t &what_to_deliver, unsigned int overlimit_reaction_deep, const message_limit::impl::action_msg_tracer_t *tracer, Lambda delivery_action)
 A helper function for pushing a message or a service request to agent with respect to message limit. More...