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>
69 typedef TMessage message_type;
70 typedef TCounter counter_type;
105 ETL_NODISCARD
virtual const TMessage&
get_message() const ETL_OVERRIDE
134 owner.release(*
this);
146 template <
typename TMessage>
153 typedef TMessage message_type;
154 typedef void counter_type;
178 ETL_NODISCARD
virtual const TMessage&
get_message() const ETL_OVERRIDE
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 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 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 TMessage & get_message() ETL_OVERRIDE
Definition: reference_counted_message.h:169
virtual void release() ETL_OVERRIDE
Definition: reference_counted_message.h:205
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
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