libjmmcg  build_2783
A C++ library containing an eclectic mix of useful, advanced components.
jmmcg::intrusive::private_::node_details< LkT > Class Template Referencefinal

Hold the first node in the slist. More...

#include <intrusive.hpp>

Inheritance diagram for jmmcg::intrusive::private_::node_details< LkT >:
[legend]
Collaboration diagram for jmmcg::intrusive::private_::node_details< LkT >:
[legend]

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_typedeleter_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_typedeleter_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)
 

Detailed Description

template<class LkT>
class jmmcg::intrusive::private_::node_details< LkT >

Hold the first node in the slist.

Definition at line 105 of file intrusive.hpp.

Member Typedef Documentation

◆ atomic_ctr_t

template<class LkT >
using jmmcg::intrusive::private_::node_details< LkT >::atomic_ctr_t = typename base2_t::atomic_ctr_t

Definition at line 109 of file intrusive.hpp.

◆ base2_t

Definition at line 108 of file intrusive.hpp.

◆ base_t

template<class LkT >
using jmmcg::intrusive::private_::node_details< LkT >::base_t = node_details_itf<LkT>

Definition at line 107 of file intrusive.hpp.

◆ lock_traits

template<class LkT >
using jmmcg::intrusive::private_::node_details< LkT >::lock_traits = typename base_t::lock_traits

Definition at line 110 of file intrusive.hpp.

Constructor & Destructor Documentation

◆ node_details()

template<class LkT >
constexpr jmmcg::intrusive::private_::node_details< LkT >::node_details ( )
inlineconstexprnoexcept

Definition at line 112 of file intrusive.hpp.

◆ ~node_details()

template<class LkT >
jmmcg::intrusive::private_::node_details< LkT >::~node_details ( )
defaultnoexcept

Member Function Documentation

◆ operator=() [1/2]

template<class LkT >
void jmmcg::intrusive::private_::node_details< LkT >::operator= ( node_details< LkT > &&  )
delete

◆ operator=() [2/2]

template<class LkT >
void jmmcg::intrusive::private_::node_details< LkT >::operator= ( node_details< LkT > const &  )
delete

◆ to_string()

template<class LkT >
tstring jmmcg::intrusive::private_::node_details< LkT >::to_string ( ) const
inlineoverridevirtualnoexcept

Reimplemented from jmmcg::intrusive::node_details_itf< LkT >.

Definition at line 119 of file intrusive.hpp.


The documentation for this class was generated from the following file: