|
Embedded Template Library 1.0
|
Classes | |
| class | etl::generic_pool< VTypeSize, VAlignment, VSize > |
| class | etl::generic_pool_ext< VTypeSize, VAlignment > |
| class | etl::pool_exception |
| class | etl::pool_no_allocation |
| class | etl::pool_object_not_in_pool |
| class | etl::pool_element_size |
| class | etl::ipool |
| class | etl::pool< T, VSize > |
| class | etl::pool_ext< T > |
A fixed capacity pool.
| class etl::generic_pool |
A templated abstract pool implementation that uses a fixed size pool.
Public Member Functions | |
| generic_pool () | |
| Constructor. | |
| template<typename U> | |
| U * | allocate () |
| template<typename U> | |
| U * | create () |
| template<typename U, typename T1> | |
| U * | create (const T1 &value1) |
| template<typename U, typename T1, typename T2> | |
| U * | create (const T1 &value1, const T2 &value2) |
| template<typename U, typename T1, typename T2, typename T3> | |
| U * | create (const T1 &value1, const T2 &value2, const T3 &value3) |
| template<typename U, typename T1, typename T2, typename T3, typename T4> | |
| U * | create (const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4) |
| template<typename U> | |
| void | destroy (const U *const p_object) |
| Public Member Functions inherited from etl::ipool | |
| iterator | begin () |
| iterator | end () |
| const_iterator | begin () const |
| const_iterator | end () const |
| const_iterator | cbegin () const |
| const_iterator | cend () const |
| template<typename T> | |
| T * | allocate () |
| template<typename T> | |
| T * | create () |
| template<typename T, typename T1> | |
| T * | create (const T1 &value1) |
| template<typename T, typename T1, typename T2> | |
| T * | create (const T1 &value1, const T2 &value2) |
| template<typename T, typename T1, typename T2, typename T3> | |
| T * | create (const T1 &value1, const T2 &value2, const T3 &value3) |
| template<typename T, typename T1, typename T2, typename T3, typename T4> | |
| T * | create (const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4) |
| template<typename T> | |
| void | destroy (const T *const p_object) |
| void | release (const void *const p_object) |
| void | release_all () |
| Release all objects in the pool. | |
| bool | is_in_pool (const void *const p_object) const |
| size_t | max_size () const |
| Returns the maximum number of items in the pool. | |
| size_t | max_item_size () const |
| Returns the maximum size of an item in the pool. | |
| size_t | capacity () const |
| Returns the maximum number of items in the pool. | |
| size_t | available () const |
| Returns the number of free items in the pool. | |
| size_t | size () const |
| Returns the number of allocated items in the pool. | |
| bool | empty () const |
| bool | full () const |
Static Public Attributes | |
| static ETL_CONSTANT size_t | SIZE = VSize |
| static ETL_CONSTANT size_t | ALIGNMENT = VAlignment |
| static ETL_CONSTANT size_t | TYPE_SIZE = VTypeSize |
Additional Inherited Members | |
| Public Types inherited from etl::ipool | |
| typedef size_t | size_type |
| typedef ipool_iterator< false > | iterator |
| Protected Member Functions inherited from etl::ipool | |
| ipool (char *p_buffer_, uint32_t item_size_, uint32_t max_size_) | |
| Constructor. | |
| ~ipool () | |
| Destructor. | |
|
inline |
Allocate an object from the pool. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned. Static asserts if the specified type is too large for the pool.
|
inline |
Allocate storage for an object from the pool and create with default. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Allocate storage for an object from the pool and create with 1 parameter. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Allocate storage for an object from the pool and create with 2 parameters. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Allocate storage for an object from the pool and create with 3 parameters. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Allocate storage for an object from the pool and create with 4 parameters. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Destroys the object. Undefined behaviour if the pool does not contain a 'U'.
| p_object | A pointer to the object to be destroyed. |
| class etl::generic_pool_ext |
A templated abstract pool implementation that uses a fixed size pool. The storage for the pool is supplied externally.
Public Types | |
| typedef etl::aligned_storage< sizeof(element_internal), etl::alignment_of< element_internal >::value >::type | element |
| Public Types inherited from etl::ipool | |
| typedef size_t | size_type |
| typedef ipool_iterator< false > | iterator |
Public Member Functions | |
| generic_pool_ext (element *buffer, size_t size) | |
| Constructor. | |
| template<typename U> | |
| U * | allocate () |
| template<typename U> | |
| U * | create () |
| template<typename U, typename T1> | |
| U * | create (const T1 &value1) |
| template<typename U, typename T1, typename T2> | |
| U * | create (const T1 &value1, const T2 &value2) |
| template<typename U, typename T1, typename T2, typename T3> | |
| U * | create (const T1 &value1, const T2 &value2, const T3 &value3) |
| template<typename U, typename T1, typename T2, typename T3, typename T4> | |
| U * | create (const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4) |
| template<typename U> | |
| void | destroy (const U *const p_object) |
| Public Member Functions inherited from etl::ipool | |
| iterator | begin () |
| iterator | end () |
| const_iterator | begin () const |
| const_iterator | end () const |
| const_iterator | cbegin () const |
| const_iterator | cend () const |
| template<typename T> | |
| T * | allocate () |
| template<typename T> | |
| T * | create () |
| template<typename T, typename T1> | |
| T * | create (const T1 &value1) |
| template<typename T, typename T1, typename T2> | |
| T * | create (const T1 &value1, const T2 &value2) |
| template<typename T, typename T1, typename T2, typename T3> | |
| T * | create (const T1 &value1, const T2 &value2, const T3 &value3) |
| template<typename T, typename T1, typename T2, typename T3, typename T4> | |
| T * | create (const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4) |
| template<typename T> | |
| void | destroy (const T *const p_object) |
| void | release (const void *const p_object) |
| void | release_all () |
| Release all objects in the pool. | |
| bool | is_in_pool (const void *const p_object) const |
| size_t | max_size () const |
| Returns the maximum number of items in the pool. | |
| size_t | max_item_size () const |
| Returns the maximum size of an item in the pool. | |
| size_t | capacity () const |
| Returns the maximum number of items in the pool. | |
| size_t | available () const |
| Returns the number of free items in the pool. | |
| size_t | size () const |
| Returns the number of allocated items in the pool. | |
| bool | empty () const |
| bool | full () const |
Static Public Attributes | |
| static ETL_CONSTANT size_t | ALIGNMENT = VAlignment |
| static ETL_CONSTANT size_t | TYPE_SIZE = VTypeSize |
Additional Inherited Members | |
| Protected Member Functions inherited from etl::ipool | |
| ipool (char *p_buffer_, uint32_t item_size_, uint32_t max_size_) | |
| Constructor. | |
| ~ipool () | |
| Destructor. | |
|
inline |
Allocate an object from the pool. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned. Static asserts if the specified type is too large for the pool.
|
inline |
Allocate storage for an object from the pool and create with default. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Allocate storage for an object from the pool and create with 1 parameter. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Allocate storage for an object from the pool and create with 2 parameters. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Allocate storage for an object from the pool and create with 3 parameters. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Allocate storage for an object from the pool and create with 4 parameters. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Destroys the object. Undefined behaviour if the pool does not contain a 'U'.
| p_object | A pointer to the object to be destroyed. |
| class etl::pool_exception |
The base class for pool exceptions.
Public Member Functions | |
| pool_exception (string_type reason_, string_type file_name_, numeric_type line_number_) | |
| Public Member Functions inherited from etl::exception | |
| ETL_CONSTEXPR | exception (string_type reason_, string_type, numeric_type line_) |
| Constructor. | |
| ETL_CONSTEXPR string_type | what () const |
| ETL_CONSTEXPR string_type | file_name () const |
| ETL_CONSTEXPR numeric_type | line_number () const |
Additional Inherited Members | |
| Public Types inherited from etl::exception | |
| typedef const char * | string_type |
| typedef int | numeric_type |
| class etl::pool_no_allocation |
The exception thrown when the pool has no more free items.
Public Member Functions | |
| pool_no_allocation (string_type file_name_, numeric_type line_number_) | |
| Public Member Functions inherited from etl::pool_exception | |
| pool_exception (string_type reason_, string_type file_name_, numeric_type line_number_) | |
| Public Member Functions inherited from etl::exception | |
| ETL_CONSTEXPR | exception (string_type reason_, string_type, numeric_type line_) |
| Constructor. | |
| ETL_CONSTEXPR string_type | what () const |
| ETL_CONSTEXPR string_type | file_name () const |
| ETL_CONSTEXPR numeric_type | line_number () const |
Additional Inherited Members | |
| Public Types inherited from etl::exception | |
| typedef const char * | string_type |
| typedef int | numeric_type |
| class etl::pool_object_not_in_pool |
The exception thrown when an object is released which does not belong to the pool.
Public Member Functions | |
| pool_object_not_in_pool (string_type file_name_, numeric_type line_number_) | |
| Public Member Functions inherited from etl::pool_exception | |
| pool_exception (string_type reason_, string_type file_name_, numeric_type line_number_) | |
| Public Member Functions inherited from etl::exception | |
| ETL_CONSTEXPR | exception (string_type reason_, string_type, numeric_type line_) |
| Constructor. | |
| ETL_CONSTEXPR string_type | what () const |
| ETL_CONSTEXPR string_type | file_name () const |
| ETL_CONSTEXPR numeric_type | line_number () const |
Additional Inherited Members | |
| Public Types inherited from etl::exception | |
| typedef const char * | string_type |
| typedef int | numeric_type |
| class etl::pool_element_size |
The exception thrown when an the type requested is larger than the element size.
Public Member Functions | |
| pool_element_size (string_type file_name_, numeric_type line_number_) | |
| Public Member Functions inherited from etl::pool_exception | |
| pool_exception (string_type reason_, string_type file_name_, numeric_type line_number_) | |
| Public Member Functions inherited from etl::exception | |
| ETL_CONSTEXPR | exception (string_type reason_, string_type, numeric_type line_) |
| Constructor. | |
| ETL_CONSTEXPR string_type | what () const |
| ETL_CONSTEXPR string_type | file_name () const |
| ETL_CONSTEXPR numeric_type | line_number () const |
Additional Inherited Members | |
| Public Types inherited from etl::exception | |
| typedef const char * | string_type |
| typedef int | numeric_type |
| class etl::ipool |
Public Types | |
| typedef size_t | size_type |
| typedef ipool_iterator< false > | iterator |
Public Member Functions | |
| iterator | begin () |
| iterator | end () |
| const_iterator | begin () const |
| const_iterator | end () const |
| const_iterator | cbegin () const |
| const_iterator | cend () const |
| template<typename T> | |
| T * | allocate () |
| template<typename T> | |
| T * | create () |
| template<typename T, typename T1> | |
| T * | create (const T1 &value1) |
| template<typename T, typename T1, typename T2> | |
| T * | create (const T1 &value1, const T2 &value2) |
| template<typename T, typename T1, typename T2, typename T3> | |
| T * | create (const T1 &value1, const T2 &value2, const T3 &value3) |
| template<typename T, typename T1, typename T2, typename T3, typename T4> | |
| T * | create (const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4) |
| template<typename T> | |
| void | destroy (const T *const p_object) |
| void | release (const void *const p_object) |
| void | release_all () |
| Release all objects in the pool. | |
| bool | is_in_pool (const void *const p_object) const |
| size_t | max_size () const |
| Returns the maximum number of items in the pool. | |
| size_t | max_item_size () const |
| Returns the maximum size of an item in the pool. | |
| size_t | capacity () const |
| Returns the maximum number of items in the pool. | |
| size_t | available () const |
| Returns the number of free items in the pool. | |
| size_t | size () const |
| Returns the number of allocated items in the pool. | |
| bool | empty () const |
| bool | full () const |
Protected Member Functions | |
| ipool (char *p_buffer_, uint32_t item_size_, uint32_t max_size_) | |
| Constructor. | |
| ~ipool () | |
| Destructor. | |
Friends | |
| template<bool is_const> | |
| class | ipool_iterator |
|
inline |
Allocate storage for an object from the pool. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Allocate storage for an object from the pool and create default. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Allocate storage for an object from the pool and create with 1 parameter. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Destroys the object. Undefined behaviour if the pool does not contain a 'T'.
| p_object | A pointer to the object to be destroyed. |
|
inline |
Checks to see if there are no allocated items in the pool.
|
inline |
Checks to see if there are no free items in the pool.
|
inline |
Check to see if the object belongs to the pool.
| p_object | A pointer to the object to be checked. |
|
inline |
Release an object in the pool. If asserts or exceptions are enabled and the object does not belong to this pool then an etl::pool_object_not_in_pool is thrown.
| p_object | A pointer to the object to be released. |
| class etl::pool |
A templated pool implementation that uses a fixed size pool.
Public Member Functions | |
| pool () | |
| Constructor. | |
| T * | allocate () |
| T * | create () |
| template<typename T1> | |
| T * | create (const T1 &value1) |
| template<typename T1, typename T2> | |
| T * | create (const T1 &value1, const T2 &value2) |
| template<typename T1, typename T2, typename T3> | |
| T * | create (const T1 &value1, const T2 &value2, const T3 &value3) |
| template<typename T1, typename T2, typename T3, typename T4> | |
| T * | create (const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4) |
| template<typename U> | |
| void | release (const U *const p_object) |
| template<typename U> | |
| void | destroy (const U *const p_object) |
| Public Member Functions inherited from etl::generic_pool< sizeof(T), etl::alignment_of< T >::value, VSize > | |
| generic_pool () | |
| Constructor. | |
| U * | allocate () |
| U * | create () |
| U * | create (const T1 &value1) |
| U * | create (const T1 &value1, const T2 &value2) |
| U * | create (const T1 &value1, const T2 &value2, const T3 &value3) |
| U * | create (const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4) |
| void | destroy (const U *const p_object) |
| Public Member Functions inherited from etl::ipool | |
| iterator | begin () |
| iterator | end () |
| const_iterator | begin () const |
| const_iterator | end () const |
| const_iterator | cbegin () const |
| const_iterator | cend () const |
| template<typename T> | |
| T * | allocate () |
| template<typename T> | |
| T * | create () |
| template<typename T, typename T1> | |
| T * | create (const T1 &value1) |
| template<typename T, typename T1, typename T2> | |
| T * | create (const T1 &value1, const T2 &value2) |
| template<typename T, typename T1, typename T2, typename T3> | |
| T * | create (const T1 &value1, const T2 &value2, const T3 &value3) |
| template<typename T, typename T1, typename T2, typename T3, typename T4> | |
| T * | create (const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4) |
| template<typename T> | |
| void | destroy (const T *const p_object) |
| void | release (const void *const p_object) |
| void | release_all () |
| Release all objects in the pool. | |
| bool | is_in_pool (const void *const p_object) const |
| size_t | max_size () const |
| Returns the maximum number of items in the pool. | |
| size_t | max_item_size () const |
| Returns the maximum size of an item in the pool. | |
| size_t | capacity () const |
| Returns the maximum number of items in the pool. | |
| size_t | available () const |
| Returns the number of free items in the pool. | |
| size_t | size () const |
| Returns the number of allocated items in the pool. | |
| bool | empty () const |
| bool | full () const |
Additional Inherited Members | |
| Public Types inherited from etl::ipool | |
| typedef size_t | size_type |
| typedef ipool_iterator< false > | iterator |
| Static Public Attributes inherited from etl::generic_pool< sizeof(T), etl::alignment_of< T >::value, VSize > | |
| static ETL_CONSTANT size_t | SIZE |
| static ETL_CONSTANT size_t | ALIGNMENT |
| static ETL_CONSTANT size_t | TYPE_SIZE |
| Protected Member Functions inherited from etl::ipool | |
| ipool (char *p_buffer_, uint32_t item_size_, uint32_t max_size_) | |
| Constructor. | |
| ~ipool () | |
| Destructor. | |
|
inline |
Allocate an object from the pool. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned. Static asserts if the specified type is too large for the pool.
|
inline |
Allocate storage for an object from the pool and create with default. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Allocate storage for an object from the pool and create with 1 parameter. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Allocate storage for an object from the pool and create with 2 parameters. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Allocate storage for an object from the pool and create with 3 parameters. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Allocate storage for an object from the pool and create with 4 parameters. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Destroys the object. Undefined behaviour if the pool does not contain a 'U' object derived from 'U'.
| p_object | A pointer to the object to be destroyed. |
|
inline |
Releases the object. Undefined behaviour if the pool does not contain a 'U' object derived from 'U'.
| p_object | A pointer to the object to be destroyed. |
| class etl::pool_ext |
A templated pool implementation that uses a fixed size pool. The storage for the pool is supplied externally.
Public Member Functions | |
| pool_ext (typename base_t::element *buffer, size_t size) | |
| Constructor. | |
| T * | allocate () |
| T * | create () |
| template<typename T1> | |
| T * | create (const T1 &value1) |
| template<typename T1, typename T2> | |
| T * | create (const T1 &value1, const T2 &value2) |
| template<typename T1, typename T2, typename T3> | |
| T * | create (const T1 &value1, const T2 &value2, const T3 &value3) |
| template<typename T1, typename T2, typename T3, typename T4> | |
| T * | create (const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4) |
| template<typename U> | |
| void | release (const U *const p_object) |
| template<typename U> | |
| void | destroy (const U *const p_object) |
| Public Member Functions inherited from etl::generic_pool_ext< sizeof(T), etl::alignment_of< T >::value > | |
| generic_pool_ext (element *buffer, size_t size) | |
| Constructor. | |
| U * | allocate () |
| U * | create () |
| U * | create (const T1 &value1) |
| U * | create (const T1 &value1, const T2 &value2) |
| U * | create (const T1 &value1, const T2 &value2, const T3 &value3) |
| U * | create (const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4) |
| void | destroy (const U *const p_object) |
| Public Member Functions inherited from etl::ipool | |
| iterator | begin () |
| iterator | end () |
| const_iterator | begin () const |
| const_iterator | end () const |
| const_iterator | cbegin () const |
| const_iterator | cend () const |
| template<typename T> | |
| T * | allocate () |
| template<typename T> | |
| T * | create () |
| template<typename T, typename T1> | |
| T * | create (const T1 &value1) |
| template<typename T, typename T1, typename T2> | |
| T * | create (const T1 &value1, const T2 &value2) |
| template<typename T, typename T1, typename T2, typename T3> | |
| T * | create (const T1 &value1, const T2 &value2, const T3 &value3) |
| template<typename T, typename T1, typename T2, typename T3, typename T4> | |
| T * | create (const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4) |
| template<typename T> | |
| void | destroy (const T *const p_object) |
| void | release (const void *const p_object) |
| void | release_all () |
| Release all objects in the pool. | |
| bool | is_in_pool (const void *const p_object) const |
| size_t | max_size () const |
| Returns the maximum number of items in the pool. | |
| size_t | max_item_size () const |
| Returns the maximum size of an item in the pool. | |
| size_t | capacity () const |
| Returns the maximum number of items in the pool. | |
| size_t | available () const |
| Returns the number of free items in the pool. | |
| size_t | size () const |
| Returns the number of allocated items in the pool. | |
| bool | empty () const |
| bool | full () const |
Additional Inherited Members | |
| Public Types inherited from etl::generic_pool_ext< sizeof(T), etl::alignment_of< T >::value > | |
| typedef etl::aligned_storage< sizeof(element_internal), etl::alignment_of< element_internal >::value >::type | element |
| Public Types inherited from etl::ipool | |
| typedef size_t | size_type |
| typedef ipool_iterator< false > | iterator |
| Static Public Attributes inherited from etl::generic_pool_ext< sizeof(T), etl::alignment_of< T >::value > | |
| static ETL_CONSTANT size_t | ALIGNMENT |
| static ETL_CONSTANT size_t | TYPE_SIZE |
| Protected Member Functions inherited from etl::ipool | |
| ipool (char *p_buffer_, uint32_t item_size_, uint32_t max_size_) | |
| Constructor. | |
| ~ipool () | |
| Destructor. | |
|
inline |
Allocate an object from the pool. Uses the default constructor. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned. Static asserts if the specified type is too large for the pool.
|
inline |
Allocate storage for an object from the pool and create with default. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Allocate storage for an object from the pool and create with 1 parameter. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Allocate storage for an object from the pool and create with 2 parameters. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Allocate storage for an object from the pool and create with 3 parameters. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Allocate storage for an object from the pool and create with 4 parameters. If asserts or exceptions are enabled and there are no more free items an etl::pool_no_allocation if thrown, otherwise a null pointer is returned.
|
inline |
Destroys the object. Undefined behaviour if the pool does not contain a 'U' object derived from 'U'.
| p_object | A pointer to the object to be destroyed. |
|
inline |
Releases the object. Undefined behaviour if the pool does not contain a 'U' object derived from 'U'.
| p_object | A pointer to the object to be destroyed. |