29#ifndef ETL_REFERENCE_COUNTED_OBJECT_INCLUDED
30#define ETL_REFERENCE_COUNTED_OBJECT_INCLUDED
50 :
exception(reason_, file_name_, line_number_)
76 virtual void set_reference_count(int32_t value) = 0;
77 virtual void increment_reference_count() = 0;
78 ETL_NODISCARD
virtual int32_t decrement_reference_count() = 0;
79 ETL_NODISCARD
virtual int32_t get_reference_count()
const = 0;
85 template <
typename TCounter>
103 reference_count = value;
121 return int32_t(--reference_count);
129 return int32_t(reference_count);
134 TCounter reference_count;
203 template <
typename TObject,
typename TCounter>
208 typedef TObject value_type;
209 typedef TCounter counter_type;
269#if ETL_USING_CPP11 && ETL_HAS_ATOMIC
274 template <
typename TObject>
Base for all reference counted objects.
Definition: reference_counted_object.h:190
The base of all reference counters.
Definition: reference_counted_object.h:72
Definition: reference_counted_object.h:60
Definition: reference_counted_object.h:205
virtual ETL_NODISCARD ireference_counter & get_reference_counter() ETL_OVERRIDE
Get a reference to the reference counter.
Definition: reference_counted_object.h:246
reference_counted_object()
Constructor.
Definition: reference_counted_object.h:214
ETL_NODISCARD value_type & get_object()
Get a reference to the counted object.
Definition: reference_counted_object.h:229
reference_counted_object(const TObject &object_)
Constructor.
Definition: reference_counted_object.h:221
reference_counter()
Constructor.
Definition: reference_counted_object.h:148
virtual void set_reference_count(int32_t) ETL_OVERRIDE
Set the reference count.
Definition: reference_counted_object.h:156
virtual void increment_reference_count() ETL_OVERRIDE
Increment the reference count.
Definition: reference_counted_object.h:164
A specific type of reference counter.
Definition: reference_counted_object.h:87
virtual ETL_NODISCARD int32_t get_reference_count() const ETL_OVERRIDE
Get the current reference count.
Definition: reference_counted_object.h:127
virtual void increment_reference_count() ETL_OVERRIDE
Increment the reference count.
Definition: reference_counted_object.h:109
reference_counter()
Constructor.
Definition: reference_counted_object.h:93
virtual void set_reference_count(int32_t value) ETL_OVERRIDE
Set the reference count.
Definition: reference_counted_object.h:101
virtual ETL_NODISCARD int32_t decrement_reference_count() ETL_OVERRIDE
Decrement the reference count.
Definition: reference_counted_object.h:117
Definition: reference_counted_object.h:47
#define ETL_ASSERT(b, e)
Definition: error_handler.h:316
ETL_CONSTEXPR exception(string_type reason_, string_type, numeric_type line_)
Constructor.
Definition: exception.h:69
Definition: exception.h:47
bitset_ext
Definition: absolute.h:38