etl/docs/Messaging/shared-message.md
John Wellbelove 2bf8fd1359 Converted more documentation pages
Modified the site CSS
2026-04-25 12:50:43 +02:00

1.4 KiB

title
shared_message

{{< callout type="info">}} Header: shared_message.h
{{< /callout >}}

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.