libjmmcg
build_2783
A C++ library containing an eclectic mix of useful, advanced components.
|
Hold the first node in the slist. More...
#include <intrusive.hpp>
Public Types | |
using | base_t = node_details_itf< LkT > |
using | base2_t = sp_counter_type< typename base_t::atomic_ctr_t::value_type, typename base_t::lock_traits > |
using | atomic_ctr_t = typename base2_t::atomic_ctr_t |
using | lock_traits = typename base_t::lock_traits |
Public Types inherited from jmmcg::intrusive::node_details_itf< LkT > | |
using | base_t = sp_counter_itf_type< long > |
using | lock_traits = LkT |
using | atomic_ctr_t = base_t |
using | atomic_ptr_t = typename lock_traits::template atomic< node_details_itf * > |
Public Types inherited from jmmcg::sp_counter_itf_type< long > | |
typedef long | value_type |
typedef jmmcg::default_delete< sp_counter_itf_type > | deleter_t |
The default deletion method for objects that inherit from this intrusively-counted type, which is just heap-deletion, if the objects are heap-allocated. More... | |
Public Types inherited from jmmcg::sp_counter_type< node_details_itf< LkT >::atomic_ctr_t::value_type, node_details_itf< LkT >::lock_traits > | |
using | base_t = sp_counter_itf_type< node_details_itf< LkT >::atomic_ctr_t::value_type > |
using | value_type = typename base_t::value_type |
using | atomic_ctr_t = node_details_itf< LkT >::lock_traits ::template atomic_counter_type< value_type > |
using | lock_traits = node_details_itf< LkT >::lock_traits |
typedef jmmcg::default_delete< sp_counter_type > | deleter_t |
Make sure the correct object deletion mechanism is used. More... | |
Public Member Functions | |
constexpr | node_details () noexcept(true) FORCE_INLINE |
~node_details () noexcept(true)=default | |
void | operator= (node_details const &)=delete |
void | operator= (node_details &&)=delete |
tstring | to_string () const noexcept(false) FORCE_INLINE override |
Public Member Functions inherited from jmmcg::intrusive::node_details_itf< LkT > | |
virtual | ~node_details_itf () noexcept(true) FORCE_INLINE |
Public Member Functions inherited from jmmcg::sp_counter_itf_type< long > | |
virtual | ~sp_counter_itf_type () |
virtual value_type | sp_count () const noexcept(true) |
virtual value_type | sp_acquire () noexcept(true) |
virtual bool | sp_release () noexcept(true) |
virtual bool | sp_noop_ctr () const noexcept(true) |
virtual bool __fastcall | operator< (const value_type) const noexcept(true) |
virtual bool __fastcall | operator> (const value_type) const noexcept(true) |
virtual bool __fastcall | operator>= (const value_type) const noexcept(true) |
constexpr bool FORCE_INLINE | operator== (const value_type v) const noexcept(true) |
virtual void | deleter () |
Call the correct deleter_t object to delete the object. More... | |
virtual tstring | sp_to_string () const noexcept(false) |
Public Member Functions inherited from jmmcg::sp_counter_type< node_details_itf< LkT >::atomic_ctr_t::value_type, node_details_itf< LkT >::lock_traits > | |
virtual | ~sp_counter_type () noexcept(true)=default |
void | deleter () override |
Call the correct deleter_t object to delete the object. More... | |
value_type | sp_count () const noexcept(true) override final |
atomic_ctr_t::value_type | sp_acquire () noexcept(true) override final |
bool | sp_release () noexcept(true) override final |
bool __fastcall | operator< (const value_type v) const noexcept(true) override |
bool __fastcall | operator> (const value_type v) const noexcept(true) override |
bool __fastcall | operator>= (const value_type v) const noexcept(true) override final |
tstring | sp_to_string () const noexcept(false) override final |
Additional Inherited Members | |
Public Attributes inherited from jmmcg::intrusive::node_details_itf< LkT > | |
atomic_ptr_t | next |
Static Public Attributes inherited from jmmcg::sp_counter_itf_type< long > | |
static constexpr ppd::generic_traits::memory_access_modes | memory_access_mode |
Static Public Attributes inherited from jmmcg::sp_counter_type< node_details_itf< LkT >::atomic_ctr_t::value_type, node_details_itf< LkT >::lock_traits > | |
static constexpr ppd::generic_traits::memory_access_modes | memory_access_mode |
Protected Member Functions inherited from jmmcg::intrusive::node_details_itf< LkT > | |
node_details_itf () noexcept(true) FORCE_INLINE | |
Protected Member Functions inherited from jmmcg::sp_counter_itf_type< long > | |
constexpr | sp_counter_itf_type () noexcept(true) |
Protected Member Functions inherited from jmmcg::sp_counter_type< node_details_itf< LkT >::atomic_ctr_t::value_type, node_details_itf< LkT >::lock_traits > | |
constexpr | sp_counter_type () noexcept(true) |
Hold the first node in the slist.
Definition at line 105 of file intrusive.hpp.
using jmmcg::intrusive::private_::node_details< LkT >::atomic_ctr_t = typename base2_t::atomic_ctr_t |
Definition at line 109 of file intrusive.hpp.
using jmmcg::intrusive::private_::node_details< LkT >::base2_t = sp_counter_type<typename base_t::atomic_ctr_t::value_type, typename base_t::lock_traits> |
Definition at line 108 of file intrusive.hpp.
using jmmcg::intrusive::private_::node_details< LkT >::base_t = node_details_itf<LkT> |
Definition at line 107 of file intrusive.hpp.
using jmmcg::intrusive::private_::node_details< LkT >::lock_traits = typename base_t::lock_traits |
Definition at line 110 of file intrusive.hpp.
|
inlineconstexprnoexcept |
Definition at line 112 of file intrusive.hpp.
|
defaultnoexcept |
|
delete |
|
delete |
|
inlineoverridevirtualnoexcept |
Reimplemented from jmmcg::intrusive::node_details_itf< LkT >.
Definition at line 119 of file intrusive.hpp.