/// item counter type
typedef typename traits::item_counter item_counter;
- //@cond
- typedef cds::container::cuckoo::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef typename base_class::scoped_cell_lock scoped_cell_lock;
/// item counter type
typedef typename traits::item_counter item_counter;
- //@cond
- typedef cds::container::cuckoo::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef typename base_class::value_type node_type;
/// BronsonAVLTree related declarations
namespace bronson_avltree {
- //@cond
- struct implementation_tag;
- //@endcond
template <typename Key, typename T, typename SyncMonitor >
struct node;
/** @ingroup cds_nonintrusive_helper
*/
namespace cuckoo {
- using cds::intrusive::cuckoo::implementation_tag;
-
#ifdef CDS_DOXYGEN_INVOKED
/// Lock striping concurrent access policy. This is typedef for intrusive::cuckoo::striping template
class striping
/** @ingroup cds_nonintrusive_helper
*/
namespace ellen_bintree {
- using cds::intrusive::ellen_bintree::implementation_tag;
-
-
#ifdef CDS_DOXYGEN_INVOKED
/// Typedef for \p cds::intrusive::ellen_bintree::update_desc
typedef cds::intrusive::ellen_bintree::update_desc update_desc;
/** @ingroup cds_nonintrusive_helper
*/
namespace michael_map {
- using cds::intrusive::michael_set::implementation_tag;
-
/// \p MichaelHashMap traits
typedef container::michael_set::traits traits;
/** @ingroup cds_nonintrusive_helper
*/
namespace michael_set {
- using cds::intrusive::michael_set::implementation_tag;
-
/// MichaelHashSet traits
typedef cds::intrusive::michael_set::traits traits;
/** @ingroup cds_nonintrusive_helper
*/
namespace multilevel_hashmap {
- //@cond
- using cds::intrusive::multilevel_hashset::implementation_tag;
- //@endcond
-
/// \p MultiLevelHashMap internal statistics, see cds::intrusive::multilevel_hashset::stat
template <typename EventCounter = cds::atomicity::event_counter>
using stat = cds::intrusive::multilevel_hashset::stat< EventCounter >;
/** @ingroup cds_nonintrusive_helper
*/
namespace multilevel_hashset {
- //@cond
- using cds::intrusive::multilevel_hashset::implementation_tag;
- //@endcond
-
/// Hash accessor option
/**
@copydetails cds::intrusive::multilevel_hashset::traits::hash_accessor
/** @ingroup cds_nonintrusive_helper
*/
namespace skip_list {
- using cds::intrusive::skip_list::implementation_tag;
-
/// Option specifying random level generator
template <typename Type>
using random_level_generator = cds::intrusive::skip_list::random_level_generator<Type>;
/** @ingroup cds_nonintrusive_helper
*/
namespace split_list {
- using cds::intrusive::split_list::implementation_tag;
-
/// Internal statistics, see \p cds::intrusive::split_list::stat
template <typename Counter = cds::intrusive::split_list::stat<>::counter_type >
using stat = cds::intrusive::split_list::stat<Counter>;
static CDS_CONSTEXPR const bool c_bExtractLockExternal = base_class::c_bExtractLockExternal; ///< Group of \p extract_xxx functions do not require external locking
- //@cond
- typedef cds::container::ellen_bintree::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef typename base_class::value_type leaf_node;
static CDS_CONSTEXPR const bool c_bExtractLockExternal = base_class::c_bExtractLockExternal; ///< Group of \p extract_xxx functions do not require external locking
- //@cond
- typedef cds::container::ellen_bintree::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef typename maker::cxx_leaf_node_allocator cxx_leaf_node_allocator;
typedef typename base_class::node_allocator node_allocator; ///< Internal node allocator
typedef typename base_class::update_desc_allocator update_desc_allocator; ///< Update descriptor allocator
- //@cond
- typedef cds::container::ellen_bintree::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef typename base_class::value_type leaf_node;
typedef typename base_class::node_allocator node_allocator; ///< Internal node allocator
typedef typename base_class::update_desc_allocator update_desc_allocator; ///< Update descriptor allocator
- //@cond
- typedef cds::container::ellen_bintree::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef typename maker::cxx_leaf_node_allocator cxx_leaf_node_allocator;
typedef typename traits::random_level_generator random_level_generator ; ///< random level generator
typedef typename traits::stat stat; ///< internal statistics type
- //@cond
- typedef cds::container::skip_list::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef typename maker::node_type node_type;
typedef typename traits::random_level_generator random_level_generator; ///< random level generator
typedef typename traits::stat stat; ///< internal statistics type
- //@cond
- typedef cds::container::skip_list::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef typename maker::node_type node_type;
typedef cds::details::Allocator< bucket_type, typename traits::allocator > bucket_table_allocator;
typedef typename bucket_type::guarded_ptr guarded_ptr; ///< Guarded pointer
- //@cond
- typedef cds::container::michael_map::implementation_tag implementation_tag;
- //@endcond
-
protected:
item_counter m_ItemCounter; ///< Item counter
hash m_HashFunctor; ///< Hash functor
/// Bucket table allocator
typedef cds::details::Allocator< bucket_type, typename traits::allocator > bucket_table_allocator;
- //@cond
- typedef cds::container::michael_map::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef typename bucket_type::iterator bucket_iterator;
/// Type of \p get() member function return value
typedef typename bucket_type::raw_ptr raw_ptr;
- //@cond
- typedef cds::container::michael_map::implementation_tag implementation_tag;
- //@endcond
-
protected:
item_counter m_ItemCounter; ///< Item counter
hash m_HashFunctor; ///< Hash functor
typedef typename bucket_type::guarded_ptr guarded_ptr; ///< Guarded pointer
- //@cond
- typedef cds::container::michael_set::implementation_tag implementation_tag;
- //@endcond
-
protected:
item_counter m_ItemCounter; ///< Item counter
hash m_HashFunctor; ///< Hash functor
/// Bucket table allocator
typedef cds::details::Allocator< bucket_type, typename traits::allocator > bucket_table_allocator;
- //@cond
- typedef cds::container::michael_set::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef typename bucket_type::iterator bucket_iterator;
/// Group of \p extract_xxx functions require external locking if underlying ordered list requires that
static CDS_CONSTEXPR const bool c_bExtractLockExternal = bucket_type::c_bExtractLockExternal;
- //@cond
- typedef cds::container::michael_set::implementation_tag implementation_tag;
- //@endcond
-
protected:
item_counter m_ItemCounter; ///< Item counter
hash m_HashFunctor; ///< Hash functor
typedef typename base_class::stat stat; ///< internal statistics type
typedef typename base_class::random_level_generator random_level_generator; ///< random level generator
- //@cond
- typedef cds::container::skip_list::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef typename base_class::node_type node_type;
typedef typename traits::random_level_generator random_level_generator; ///< random level generator
typedef typename traits::stat stat; ///< internal statistics type
- //@cond
- typedef cds::container::skip_list::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef typename maker::node_type node_type;
typedef typename options::stat stat ; ///< internal statistics type
typedef typename base_class::random_level_generator random_level_generator ; ///< random level generator
- //@cond
- typedef cds::container::skip_list::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef typename maker::node_type node_type;
typedef typename traits::stat stat ; ///< internal statistics type
typedef typename traits::rcu_check_deadlock rcu_check_deadlock ; ///< Deadlock checking policy
- //@cond
- typedef cds::container::skip_list::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef typename maker::node_type node_type;
typedef typename base_class::item_counter item_counter; ///< Item counter type
typedef typename base_class::stat stat; ///< Internal statistics
- //@cond
- typedef cds::container::split_list::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef typename base_class::maker::traits::key_accessor key_accessor;
typedef typename base_class::item_counter item_counter; ///< Item counter type
typedef typename base_class::stat stat; ///< Internal statistics
- //@cond
- typedef cds::container::split_list::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef typename base_class::traits::key_accessor key_accessor;
static CDS_CONSTEXPR const bool c_bExtractLockExternal = base_class::c_bExtractLockExternal;
typedef typename base_class::raw_ptr raw_ptr; ///< type of \p get() return value
- //@cond
- typedef cds::container::split_list::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef typename base_class::maker::traits::key_accessor key_accessor;
typedef typename base_class::item_counter item_counter; ///< Item counter type
typedef typename base_class::stat stat; ///< Internal statistics
- //@cond
- typedef cds::container::split_list::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef typename maker::cxx_node_allocator cxx_node_allocator;
typedef typename base_class::item_counter item_counter; ///< Item counter type
typedef typename base_class::stat stat; ///< Internal statistics
- //@cond
- typedef cds::container::split_list::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef typename maker::cxx_node_allocator cxx_node_allocator;
/// Group of \p extract_xxx functions require external locking if underlying ordered list requires that
static CDS_CONSTEXPR const bool c_bExtractLockExternal = base_class::c_bExtractLockExternal;
- //@cond
- typedef cds::container::split_list::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef typename maker::cxx_node_allocator cxx_node_allocator;
/// CuckooSet-related definitions
namespace cuckoo {
- //@cond
- struct implementation_tag;
- //@endcond
-
/// Option to define probeset type
/**
The option specifies probeset type for the CuckooSet.
/// node disposer
typedef typename traits::disposer disposer;
- //@cond
- typedef cds::intrusive::cuckoo::implementation_tag implementation_tag;
- //@endcond
protected:
//@cond
typedef typename node_type::probeset_class probeset_class;
/// EllenBinTree related declarations
namespace ellen_bintree {
- struct implementation_tag;
-
//Forwards
template <class GC> struct base_node;
template <class GC, typename Tag = opt::none> struct node;
/** @ingroup cds_intrusive_helper
*/
namespace michael_set {
-
- //@cond
- struct implementation_tag;
- //@endcond
-
/// MichaelHashSet traits
struct traits {
/// Hash function
/** @ingroup cds_intrusive_helper
*/
namespace multilevel_hashset {
- //@cond
- struct implementation_tag;
- //@endcond
-
/// Hash accessor option
/**
@copydetails traits::hash_accessor
/** @ingroup cds_intrusive_helper
*/
namespace skip_list {
- //@cond
- struct implementation_tag;
- //@endcond
-
/// The maximum possible height of any skip-list
static unsigned int const c_nHeightLimit = 32;
/** @ingroup cds_intrusive_helper
*/
namespace split_list {
- //@cond
- struct implementation_tag;
- //@endcond
-
/// Split-ordered list node
/**
Template parameter:
typedef typename traits::disposer disposer; ///< leaf node disposer
typedef typename traits::back_off back_off; ///< back-off strategy
- //@cond
- typedef cds::intrusive::ellen_bintree::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef ellen_bintree::base_node< gc > tree_node; ///< Base type of tree node
typedef typename gc::template guarded_ptr< value_type > guarded_ptr; ///< Guarded pointer
- //@cond
- typedef cds::intrusive::ellen_bintree::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef ellen_bintree::base_node< gc > tree_node; ///< Base type of tree node
typedef typename traits::back_off back_off; ///< Back-off strategy
typedef typename traits::stat stat; ///< internal statistics type
- //@cond
- typedef cds::intrusive::skip_list::implementation_tag implementation_tag;
- //@endcond
public:
typedef typename gc::template guarded_ptr< value_type > guarded_ptr; ///< Guarded pointer
/// Bucket table allocator
typedef cds::details::Allocator< bucket_type, typename traits::allocator > bucket_table_allocator;
- //@cond
- typedef cds::intrusive::michael_set::implementation_tag implementation_tag;
- //@endcond
-
protected:
item_counter m_ItemCounter; ///< Item counter
hash m_HashFunctor; ///< Hash functor
/// Bucket table allocator
typedef cds::details::Allocator< bucket_type, typename traits::allocator > bucket_table_allocator;
- //@cond
- typedef cds::intrusive::michael_set::implementation_tag implementation_tag;
- //@endcond
-
protected:
item_counter m_ItemCounter; ///< Item counter
hash m_HashFunctor; ///< Hash functor
/// Group of \p extract_xxx functions require external locking if underlying ordered list requires that
static CDS_CONSTEXPR const bool c_bExtractLockExternal = bucket_type::c_bExtractLockExternal;
- //@cond
- typedef cds::intrusive::michael_set::implementation_tag implementation_tag;
- //@endcond
-
protected:
item_counter m_ItemCounter; ///< Item counter
hash m_HashFunctor; ///< Hash functor
//@cond
static unsigned int const c_nMinHeight = 3;
- typedef cds::intrusive::skip_list::implementation_tag implementation_tag;
//@endcond
protected:
//@cond
static unsigned int const c_nMinHeight = 5;
- typedef cds::intrusive::skip_list::implementation_tag implementation_tag;
//@endcond
protected:
typedef GC gc; ///< Garbage collector
typedef Traits traits; ///< Set traits
- //@cond
- typedef cds::intrusive::split_list::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef split_list::details::rebind_list_traits<OrderedList, traits> wrapped_ordered_list;
/// Hash functor for \p value_type and all its derivatives that you use
typedef typename cds::opt::v::hash_selector< typename traits::hash >::type hash;
- //@cond
- typedef cds::intrusive::split_list::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef split_list::details::rebind_list_traits<OrderedList, traits> wrapped_ordered_list;
/// Hash functor for \ref value_type and all its derivatives that you use
typedef typename cds::opt::v::hash_selector< typename traits::hash >::type hash;
- //@cond
- typedef cds::intrusive::split_list::implementation_tag implementation_tag;
- //@endcond
-
protected:
//@cond
typedef split_list::details::rebind_list_traits<OrderedList, traits> wrapped_ordered_list;
typedef cds::details::Allocator< bucket_type, allocator_type > bucket_allocator; ///< bucket allocator type based on allocator_type
- //@cond
- typedef cds::intrusive::striped_set::implementation_tag implementation_tag;
- //@endcond
-
protected:
bucket_type * m_Buckets ; ///< Bucket table
size_t m_nBucketMask ; ///< Bucket table size - 1. m_nBucketMask + 1 should be power of two.
/// StripedSet related definitions
namespace striped_set {
- //@cond
- struct implementation_tag;
- //@endcond
-
/// Default adapter for intrusive striped/refinable hash set
/**
By default, the metafunction does not make any transformation for container type \p Container.