SObjectizer-5 Extra
Loading...
Searching...
No Matches
inflight_limit.hpp File Reference

Implementation of proxy mbox with inflight limit. More...

#include <so_5_extra/mboxes/proxy.hpp>
#include <so_5_extra/error_ranges.hpp>
#include <so_5_extra/enveloped_msg/just_envelope.hpp>
#include <so_5/impl/msg_tracing_helpers.hpp>
#include <so_5/environment.hpp>
#include <atomic>

Go to the source code of this file.

Classes

struct  so_5::impl::msg_tracing_helpers::details::extra_inflight_limit_specifics::limit_info
 
struct  so_5::extra::mboxes::inflight_limit::impl::instances_counter_t
 Separate type for holding inflight message counter as a separate object. More...
 
class  so_5::extra::mboxes::inflight_limit::impl::counter_incrementer_t
 Helper class for incrementing/decrementing number of messages in RAII style. More...
 
class  so_5::extra::mboxes::inflight_limit::impl::special_envelope_t
 Type of envelope to be used by inflight_limit_mbox. More...
 
class  so_5::extra::mboxes::inflight_limit::impl::not_null_underlying_mbox_t
 Helper type that tells that underlying mbox isn't nullptr. More...
 
class  so_5::extra::mboxes::inflight_limit::impl::actual_mbox_t< Tracing_Base >
 Actual implementation of inflight_limit_mbox. More...
 

Namespaces

namespace  so_5
 Ranges for error codes of each submodules.
 
namespace  so_5::extra
 
namespace  so_5::extra::mboxes
 
namespace  so_5::extra::mboxes::inflight_limit
 
namespace  so_5::impl
 
namespace  so_5::impl::msg_tracing_helpers
 
namespace  so_5::impl::msg_tracing_helpers::details
 
namespace  so_5::impl::msg_tracing_helpers::details::extra_inflight_limit_specifics
 
namespace  so_5::extra::mboxes::inflight_limit::errors
 
namespace  so_5::extra::mboxes::inflight_limit::impl
 

Typedefs

using so_5::extra::mboxes::inflight_limit::underlying_counter_t = unsigned int
 Type to be used for limit and counter of inflight messages.
 
using so_5::extra::mboxes::inflight_limit::impl::instances_counter_shptr_t = std::shared_ptr< instances_counter_t >
 An alias for shared_ptr to instances_counter.
 

Functions

void so_5::impl::msg_tracing_helpers::details::extra_inflight_limit_specifics::make_trace_to_1 (std::ostream &s, extra_inflight_limit_specifics::limit_info info)
 
void so_5::impl::msg_tracing_helpers::details::extra_inflight_limit_specifics::fill_trace_data_1 (actual_trace_data_t &, extra_inflight_limit_specifics::limit_info)
 
not_null_underlying_mbox_t so_5::extra::mboxes::inflight_limit::impl::ensure_underlying_mbox_not_null (so_5::mbox_t mbox)
 Ensure that underlying mbox is not nullptr.
 
template<typename Msg_Type >
void so_5::extra::mboxes::inflight_limit::impl::ensure_valid_message_type_for_underlying_mbox (const so_5::mbox_t &underlying_mbox)
 Check for compatibility between mbox type and message type.
 
template<typename Msg_Type >
mbox_t so_5::extra::mboxes::inflight_limit::make_mbox (mbox_t dest_mbox, underlying_counter_t inflight_limit)
 Create an instance of inflight_limit_mbox.
 

Variables

const int so_5::extra::mboxes::inflight_limit::errors::rc_different_message_type
 An attempt to use a message type that differs from mbox's message type.
 
const int so_5::extra::mboxes::inflight_limit::errors::rc_nullptr_as_underlying_mbox
 Null pointer to underlying mbox.
 

Detailed Description

Implementation of proxy mbox with inflight limit.

Since
v.1.5.2

Definition in file inflight_limit.hpp.