29#ifndef ETL_REFERENCE_COUNTED_MESSAGE_INCLUDED
30#define ETL_REFERENCE_COUNTED_MESSAGE_INCLUDED
35#include "reference_counted_object.h"
36#include "static_assert.h"
62 template <
typename TMessage,
typename TCounter>
134 owner.release(*
this);
146 template <
typename TMessage>
215#if ETL_USING_CPP11 && ETL_HAS_ATOMIC
220 template <
typename TMessage>
Interface for a reference counted message pool.
Definition ireference_counted_message_pool.h:44
Definition reference_counted_message.h:48
virtual ETL_NODISCARD const etl::imessage & get_message() const =0
Get a const reference to the message.
virtual ETL_NODISCARD etl::ireference_counter & get_reference_counter()=0
Get a reference to the reference counter.
virtual ETL_NODISCARD etl::imessage & get_message()=0
Get a reference to the message.
virtual ETL_NODISCARD const etl::ireference_counter & get_reference_counter() const =0
Get a const reference to the reference counter.
virtual void release()=0
Release back to the owner.
The base of all reference counters.
Definition reference_counted_object.h:72
Definition reference_counted_message.h:148
virtual ETL_NODISCARD etl::ireference_counter & get_reference_counter() ETL_OVERRIDE
Definition reference_counted_message.h:187
virtual ETL_NODISCARD const etl::ireference_counter & get_reference_counter() const ETL_OVERRIDE
Definition reference_counted_message.h:196
virtual ETL_NODISCARD TMessage & get_message() ETL_OVERRIDE
Definition reference_counted_message.h:169
virtual void release() ETL_OVERRIDE
Definition reference_counted_message.h:205
virtual ETL_NODISCARD const TMessage & get_message() const ETL_OVERRIDE
Definition reference_counted_message.h:178
persistent_message(const TMessage &msg_)
Definition reference_counted_message.h:160
Definition reference_counted_message.h:64
virtual ETL_NODISCARD etl::ireference_counter & get_reference_counter() ETL_OVERRIDE
Definition reference_counted_message.h:114
virtual ETL_NODISCARD const TMessage & get_message() const ETL_OVERRIDE
Definition reference_counted_message.h:105
virtual ETL_NODISCARD const etl::ireference_counter & get_reference_counter() const ETL_OVERRIDE
Definition reference_counted_message.h:123
reference_counted_message(etl::ireference_counted_message_pool &owner_)
Definition reference_counted_message.h:76
virtual ETL_NODISCARD TMessage & get_message() ETL_OVERRIDE
Definition reference_counted_message.h:96
reference_counted_message(const TMessage &msg_, etl::ireference_counted_message_pool &owner_)
Definition reference_counted_message.h:86
virtual void release() ETL_OVERRIDE
Definition reference_counted_message.h:132
virtual ETL_NODISCARD ireference_counter & get_reference_counter() ETL_OVERRIDE
Get a reference to the reference counter.
Definition reference_counted_object.h:246
ETL_NODISCARD value_type & get_object()
Get a reference to the counted object.
Definition reference_counted_object.h:229
is_base_of
Definition type_traits_generator.h:1252
bitset_ext
Definition absolute.h:38
pair holds two objects of arbitrary type
Definition utility.h:164