4 #ifndef __SIMPLE_THREADING_MESSAGE__
5 #define __SIMPLE_THREADING_MESSAGE__
15 context(
const std::size_t c) : m_id(c) { }
17 context(
const std::size_t c,
st::data&& d) :
22 virtual ~context() { }
45 return std::move(msg);
57 msg.ctx(std::make_shared<detail::message::context>(
id, std::move(d)));
81 msg.ctx(std::make_shared<detail::message::context>(
id));
100 const std::size_t
id()
const {
108 return ctx()->m_data;
type erased data container
Definition: data.hpp:24
interthread type erased message container
Definition: message.hpp:36
static message make()
construct a message
Definition: message.hpp:90
static message make(std::size_t id)
construct a message
Definition: message.hpp:79
static message make(std::size_t id, st::data &&d)
construct a message
Definition: message.hpp:55
const std::size_t id() const
an unsigned integer representing message's intended operation
Definition: message.hpp:100
static message make(message msg)
convenience function for templating
Definition: message.hpp:44
st::data & data()
optional type erased payload data
Definition: message.hpp:107
static message make(std::size_t id, T &&t)
construct a message
Definition: message.hpp:69
CRTP-templated interface to provide shared context api.
Definition: context.hpp:43
std::shared_ptr< detail::message::context > & ctx() const
Definition: context.hpp:50