mirror of
https://github.com/ETLCPP/etl.git
synced 2026-05-01 03:19:10 +08:00
1.4 KiB
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.