A C++ template library for embedded applications
MIT licensed
Designed and
maintained by
John Wellbelove
Shared Messages

The type used to encapsulate reference counted messages.
Shared messages are usually passed by value.

See the Shared Message Tutorial
____________________________________________________________________________________________________
template <typename TPool, typename TMessage>
shared_message(TPool& owner, const TMessage& message)

Static asserts if TPool is not derived from etl::ireference_counted_message_pool
Static asserts if TMessage not derived from etl::imessage

Requires that TPool implements the following member function to allocate from the pool.
template <typename TMessage>
etl::ireference_counted_message* allocate(const TMessage& message)
____________________________________________________________________________________________________
explicit shared_message(etl::ireference_coutnted_message& message)
Construct from a reference counted message.
____________________________________________________________________________________________________
shared_message(const etl::shared_message& other)
Copy constructor.
____________________________________________________________________________________________________
shared_message& operator =(const etl::shared_message& other)
Assignment operator.
____________________________________________________________________________________________________
~shared_message()
Destructor.
____________________________________________________________________________________________________
ETL_NODISCARD etl::imessage& get_message()
Gets a reference to the contained message.
____________________________________________________________________________________________________
ETL_NODISCARD const etl::imessage& get_message() const
Gets a const reference to the contained message.
____________________________________________________________________________________________________
ETL_NODISCARD uint32_t get_reference_count() const
Gets the current reference count for this shared message.
shared_message.h