SObjectizer-5 Extra
Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
so_5::extra::mboxes::collecting_mbox::details::collected_messages_bunch_t< Config_Type > Class Template Referencefinal

Type of message to be sent when all collecting messages are received. More...

#include <collecting_mbox.hpp>

Inheritance diagram for so_5::extra::mboxes::collecting_mbox::details::collected_messages_bunch_t< Config_Type >:

Public Member Functions

template<typename F >
decltype(auto) with_nth (std::size_t index, F &&f) const
 Do some action with Nth collected message. More...
 
template<typename F >
void for_each (F &&f) const
 Do some action for all collected message. More...
 
template<typename F >
void for_each_with_index (F &&f) const
 Do some action for all collected message. More...
 

Private Types

using mixin_base_type = typename traits_t< Config_Type >::messages_collected_mixin_type
 

Private Member Functions

void store_collected_messages (size_t index, message_ref_t msg)
 Store another collected message at the specified index. More...
 
 collected_messages_bunch_t (std::size_t size)
 Initializing constructor. More...
 

Private Attributes

traits_t< Config_Type >::container_type m_collected_messages
 A container for collected messages. More...
 

Friends

template<typename >
class collected_messages_bunch_builder_t
 

Detailed Description

template<typename Config_Type>
class so_5::extra::mboxes::collecting_mbox::details::collected_messages_bunch_t< Config_Type >

Type of message to be sent when all collecting messages are received.

Template Parameters
Config_Typea type with enumeration of all necessary type traits. It is expected to be config_type with appropriate type parameters.

Definition at line 159 of file collecting_mbox.hpp.

Member Typedef Documentation

◆ mixin_base_type

template<typename Config_Type >
using so_5::extra::mboxes::collecting_mbox::details::collected_messages_bunch_t< Config_Type >::mixin_base_type = typename traits_t<Config_Type>::messages_collected_mixin_type
private

Definition at line 166 of file collecting_mbox.hpp.

Constructor & Destructor Documentation

◆ collected_messages_bunch_t()

template<typename Config_Type >
so_5::extra::mboxes::collecting_mbox::details::collected_messages_bunch_t< Config_Type >::collected_messages_bunch_t ( std::size_t  size)
inlineprivate

Initializing constructor.

Definition at line 183 of file collecting_mbox.hpp.

Member Function Documentation

◆ for_each()

template<typename Config_Type >
template<typename F >
void so_5::extra::mboxes::collecting_mbox::details::collected_messages_bunch_t< Config_Type >::for_each ( F &&  f) const
inline

Do some action for all collected message.

Note
This method can be used for immutable and for mutable messages.
Returns
value of f(mhood_t<Config_Type::collecting_msg_t>(...)).
Template Parameters
Ftype of functor/lambda which accepts mhood_t.

Usage example:

struct my_msg final : public so_5::message_t {
std::string value_;
...
};
my_msg, so_5::extra::mboxes::collecting_msg::runtime_size_traits_t >;
...
void my_actor::on_my_msg_collected(mhood_t<typename my_msg_collector::messages_collected_t> cmd) {
cmd->for_all( [](auto m) { std::cout << m->value_; } );
}

Definition at line 250 of file collecting_mbox.hpp.

◆ for_each_with_index()

template<typename Config_Type >
template<typename F >
void so_5::extra::mboxes::collecting_mbox::details::collected_messages_bunch_t< Config_Type >::for_each_with_index ( F &&  f) const
inline

Do some action for all collected message.

Note
This method can be used for immutable and for mutable messages.
Returns
value of f(index, mhood_t<Config_Type::collecting_msg_t>(...)).
Template Parameters
Ftype of functor/lambda which accepts two parameters: index of std::size_t and cmd of mhood_t.

Usage example:

struct my_msg final : public so_5::message_t {
std::string value_;
...
};
my_msg, so_5::extra::mboxes::collecting_msg::runtime_size_traits_t >;
...
void my_actor::on_my_msg_collected(mhood_t<typename my_msg_collector::messages_collected_t> cmd) {
cmd->for_all_with_index( [](auto i, auto m) { std::cout << i << ":" m->value_; } );
}

Definition at line 281 of file collecting_mbox.hpp.

◆ store_collected_messages()

template<typename Config_Type >
void so_5::extra::mboxes::collecting_mbox::details::collected_messages_bunch_t< Config_Type >::store_collected_messages ( size_t  index,
message_ref_t  msg 
)
inlineprivate

Store another collected message at the specified index.

Parameters
indexIndex at which message should be stored.
msgMessage to be stored.

Definition at line 173 of file collecting_mbox.hpp.

◆ with_nth()

template<typename Config_Type >
template<typename F >
decltype(auto) so_5::extra::mboxes::collecting_mbox::details::collected_messages_bunch_t< Config_Type >::with_nth ( std::size_t  index,
F &&  f 
) const
inline

Do some action with Nth collected message.

Note
This method can be used for immutable and for mutable messages.
Attention
index should be less than size(). Value of index is not checked at the run-time.
Returns
value of f(mhood_t<Config_Type::collecting_msg_t>(...)).
Template Parameters
Ftype of functor/lambda which accepts mhood_t.

Usage example:

struct my_msg final : public so_5::message_t {
std::string value_;
...
};
my_msg, so_5::extra::mboxes::collecting_msg::runtime_size_traits_t >;
...
void my_actor::on_my_msg_collected(mhood_t<typename my_msg_collector::messages_collected_t> cmd) {
std::string v = cmd->with_nth( 0, [](auto m) { return m->value_; } );
}

Definition at line 218 of file collecting_mbox.hpp.

Friends And Related Function Documentation

◆ collected_messages_bunch_builder_t

template<typename Config_Type >
template<typename >
friend class collected_messages_bunch_builder_t
friend

Definition at line 163 of file collecting_mbox.hpp.

Member Data Documentation

◆ m_collected_messages

template<typename Config_Type >
traits_t<Config_Type>::container_type so_5::extra::mboxes::collecting_mbox::details::collected_messages_bunch_t< Config_Type >::m_collected_messages
private

A container for collected messages.

Definition at line 169 of file collecting_mbox.hpp.


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