#include <so_5/all.hpp>
using namespace std::chrono_literals;
int main()
{
so_5::wrapped_env_t sobj;
auto ch = create_mchain(sobj);
envelope_ns::make<std::string>("Hello!")
.envelope<envelope_ns::time_limited_delivery_t>(250ms)
.send_to(ch);
envelope_ns::make<std::string>("Bye!")
.envelope<envelope_ns::time_limited_delivery_t>(2s)
.send_to(ch);
std::cout << "ch.size: " << ch->size() << std::endl;
std::this_thread::sleep_for(1s);
const auto receive_result =
receive(from(ch).no_wait_on_empty().handle_all(),
[](so_5::mhood_t<std::string> cmd) {
std::cout << "Msg: " << *cmd << std::endl;
});
std::cout << "messages extracted: " << receive_result.extracted()
<< ", handled: " << receive_result.handled() << std::endl;
return 0;
}
Variuos send functions for simplification of sending enveloped messages.
An implementation of time_limited_delivery envelope.