From 379ec1e9a23db4834c6d6c385c07e1d9b7518a77 Mon Sep 17 00:00:00 2001 From: khizmax Date: Fri, 7 Nov 2014 14:41:09 +0300 Subject: [PATCH] intrusive::EllenBinTree test refactoring --- cds/intrusive/details/ellen_bintree_base.h | 2 +- cds/intrusive/ellen_bintree_rcu.h | 14 ++++ cds/intrusive/impl/ellen_bintree.h | 14 ++++ projects/Win/vc12/hdr-test-tree.vcxproj | 6 +- .../Win/vc12/hdr-test-tree.vcxproj.filters | 14 ++-- .../tree/hdr_ellenbintree_map_ptb.cpp | 10 +-- .../tree/hdr_ellenbintree_set_ptb.cpp | 10 +-- tests/test-hdr/tree/hdr_intrusive_bintree.h | 76 +++++++++--------- ...pp => hdr_intrusive_ellen_bintree_dhp.cpp} | 78 +++++++++---------- ...dr_intrusive_ellen_bintree_dhp_member.cpp} | 64 +++++++-------- .../tree/hdr_intrusive_ellen_bintree_hp.cpp | 16 ++-- .../hdr_intrusive_ellen_bintree_hp_member.cpp | 7 ++ ...=> hdr_intrusive_ellen_bintree_pool_dhp.h} | 10 +-- .../hdr_intrusive_ellen_bintree_rcu_gpb.cpp | 16 ++-- tests/test-hdr/tree/hdr_tree_reg.cpp | 4 +- 15 files changed, 188 insertions(+), 153 deletions(-) rename tests/test-hdr/tree/{hdr_intrusive_ellen_bintree_ptb.cpp => hdr_intrusive_ellen_bintree_dhp.cpp} (69%) rename tests/test-hdr/tree/{hdr_intrusive_ellen_bintree_ptb_member.cpp => hdr_intrusive_ellen_bintree_dhp_member.cpp} (69%) rename tests/test-hdr/tree/{hdr_intrusive_ellen_bintree_pool_ptb.h => hdr_intrusive_ellen_bintree_pool_dhp.h} (89%) diff --git a/cds/intrusive/details/ellen_bintree_base.h b/cds/intrusive/details/ellen_bintree_base.h index 2c32d9ab..f0d9ffc3 100644 --- a/cds/intrusive/details/ellen_bintree_base.h +++ b/cds/intrusive/details/ellen_bintree_base.h @@ -285,7 +285,7 @@ namespace cds { namespace intrusive { struct member_hook: public hook< opt::member_hook_tag, Options... > { //@cond - static const size_t c_nMemberOffset = MemberOffset; + static CDS_CONSTEXPR const size_t c_nMemberOffset = MemberOffset; //@endcond }; diff --git a/cds/intrusive/ellen_bintree_rcu.h b/cds/intrusive/ellen_bintree_rcu.h index 31611fb4..df52c4e7 100644 --- a/cds/intrusive/ellen_bintree_rcu.h +++ b/cds/intrusive/ellen_bintree_rcu.h @@ -1109,6 +1109,13 @@ namespace cds { namespace intrusive { { return find_( key, f ); } + //@cond + template + bool find( Q const& key, Func f ) const + { + return find_( key, f ); + } + //@endcond /// Finds the key \p key with comparing functor \p pred /** @@ -1123,6 +1130,13 @@ namespace cds { namespace intrusive { { return find_with_( key, pred, f ); } + //@cond + template + bool find_with( Q const& key, Less pred, Func f ) const + { + return find_with_( key, pred, f ); + } + //@endcond /// Finds \p key and return the item found /** \anchor cds_intrusive_EllenBinTree_rcu_get diff --git a/cds/intrusive/impl/ellen_bintree.h b/cds/intrusive/impl/ellen_bintree.h index 577f6c86..dc54c619 100644 --- a/cds/intrusive/impl/ellen_bintree.h +++ b/cds/intrusive/impl/ellen_bintree.h @@ -684,6 +684,13 @@ namespace cds { namespace intrusive { { return find_( key, f ); } + //@cond + template + bool find( Q const& key, Func f ) const + { + return find_( key, f ); + } + //@endcond /// Finds the key \p key with comparing functor \p pred /** @@ -698,6 +705,13 @@ namespace cds { namespace intrusive { { return find_with_( key, pred, f ); } + //@cond + template + bool find_with( Q const& key, Less pred, Func f ) const + { + return find_with_( key, pred, f ); + } + //@endcond /// Finds \p key and returns the item found /** @anchor cds_intrusive_EllenBinTree_get diff --git a/projects/Win/vc12/hdr-test-tree.vcxproj b/projects/Win/vc12/hdr-test-tree.vcxproj index 30ac4451..c21ab5c6 100644 --- a/projects/Win/vc12/hdr-test-tree.vcxproj +++ b/projects/Win/vc12/hdr-test-tree.vcxproj @@ -538,8 +538,8 @@ + - @@ -557,10 +557,10 @@ + + - - diff --git a/projects/Win/vc12/hdr-test-tree.vcxproj.filters b/projects/Win/vc12/hdr-test-tree.vcxproj.filters index 9f196a6d..343c96a1 100644 --- a/projects/Win/vc12/hdr-test-tree.vcxproj.filters +++ b/projects/Win/vc12/hdr-test-tree.vcxproj.filters @@ -24,7 +24,7 @@ intrusive - + intrusive @@ -96,12 +96,6 @@ intrusive - - intrusive - - - intrusive - container @@ -114,5 +108,11 @@ container + + intrusive + + + intrusive + \ No newline at end of file diff --git a/tests/test-hdr/tree/hdr_ellenbintree_map_ptb.cpp b/tests/test-hdr/tree/hdr_ellenbintree_map_ptb.cpp index d05f06bb..3fef81b3 100644 --- a/tests/test-hdr/tree/hdr_ellenbintree_map_ptb.cpp +++ b/tests/test-hdr/tree/hdr_ellenbintree_map_ptb.cpp @@ -3,7 +3,7 @@ #include "tree/hdr_ellenbintree_map.h" #include -#include "tree/hdr_intrusive_ellen_bintree_pool_ptb.h" +#include "tree/hdr_intrusive_ellen_bintree_pool_dhp.h" #include "unit/print_ellenbintree_stat.h" namespace tree { @@ -114,8 +114,8 @@ namespace tree { typedef cc::EllenBinTreeMap< gc_type, key_type, value_type, cc::ellen_bintree::make_map_traits< co::less< less > - ,co::node_allocator< cds::memory::pool_allocator< tree_internal_node, ellen_bintree_ptb::internal_node_pool_accessor > > - ,cc::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< tree_update_desc, ellen_bintree_ptb::update_desc_pool_accessor > > + ,co::node_allocator< cds::memory::pool_allocator< tree_internal_node, ellen_bintree_dhp::internal_node_pool_accessor > > + ,cc::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< tree_update_desc, ellen_bintree_dhp::update_desc_pool_accessor > > >::type > set_type; @@ -127,8 +127,8 @@ namespace tree { typedef cc::EllenBinTreeMap< gc_type, key_type, value_type, cc::ellen_bintree::make_map_traits< co::less< less > - ,co::node_allocator< cds::memory::pool_allocator< tree_internal_node, ellen_bintree_ptb::internal_node_pool_accessor > > - ,cc::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< tree_update_desc, ellen_bintree_ptb::update_desc_pool_accessor > > + ,co::node_allocator< cds::memory::pool_allocator< tree_internal_node, ellen_bintree_dhp::internal_node_pool_accessor > > + ,cc::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< tree_update_desc, ellen_bintree_dhp::update_desc_pool_accessor > > ,co::item_counter< cds::atomicity::item_counter > ,co::stat< cc::ellen_bintree::stat<> > >::type diff --git a/tests/test-hdr/tree/hdr_ellenbintree_set_ptb.cpp b/tests/test-hdr/tree/hdr_ellenbintree_set_ptb.cpp index 269fd782..d5bef869 100644 --- a/tests/test-hdr/tree/hdr_ellenbintree_set_ptb.cpp +++ b/tests/test-hdr/tree/hdr_ellenbintree_set_ptb.cpp @@ -3,7 +3,7 @@ #include "tree/hdr_ellenbintree_set.h" #include -#include "tree/hdr_intrusive_ellen_bintree_pool_ptb.h" +#include "tree/hdr_intrusive_ellen_bintree_pool_dhp.h" #include "unit/print_ellenbintree_stat.h" namespace tree { @@ -122,8 +122,8 @@ namespace tree { cc::ellen_bintree::make_set_traits< cc::ellen_bintree::key_extractor< key_extractor > ,co::less< less > - ,co::node_allocator< cds::memory::pool_allocator< tree_internal_node, ellen_bintree_ptb::internal_node_pool_accessor > > - ,cc::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< tree_update_desc, ellen_bintree_ptb::update_desc_pool_accessor > > + ,co::node_allocator< cds::memory::pool_allocator< tree_internal_node, ellen_bintree_dhp::internal_node_pool_accessor > > + ,cc::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< tree_update_desc, ellen_bintree_dhp::update_desc_pool_accessor > > >::type > set_type; @@ -136,8 +136,8 @@ namespace tree { cc::ellen_bintree::make_set_traits< cc::ellen_bintree::key_extractor< key_extractor > ,co::less< less > - ,co::node_allocator< cds::memory::pool_allocator< tree_internal_node, ellen_bintree_ptb::internal_node_pool_accessor > > - ,cc::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< tree_update_desc, ellen_bintree_ptb::update_desc_pool_accessor > > + ,co::node_allocator< cds::memory::pool_allocator< tree_internal_node, ellen_bintree_dhp::internal_node_pool_accessor > > + ,cc::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< tree_update_desc, ellen_bintree_dhp::update_desc_pool_accessor > > ,co::item_counter< cds::atomicity::item_counter > ,co::stat< cc::ellen_bintree::stat<> > >::type diff --git a/tests/test-hdr/tree/hdr_intrusive_bintree.h b/tests/test-hdr/tree/hdr_intrusive_bintree.h index 32ce3b1f..3091d5c1 100644 --- a/tests/test-hdr/tree/hdr_intrusive_bintree.h +++ b/tests/test-hdr/tree/hdr_intrusive_bintree.h @@ -936,25 +936,25 @@ namespace tree { void EllenBinTree_hp_member_less_pool(); void EllenBinTree_hp_member_less_pool_ic_stat(); - void EllenBinTree_ptb_base_less(); - void EllenBinTree_ptb_base_cmp(); - void EllenBinTree_ptb_base_cmpless(); - void EllenBinTree_ptb_base_less_ic(); - void EllenBinTree_ptb_base_cmp_ic(); - void EllenBinTree_ptb_base_less_stat(); - void EllenBinTree_ptb_base_cmp_ic_stat(); - void EllenBinTree_ptb_base_less_pool(); - void EllenBinTree_ptb_base_less_pool_ic_stat(); - - void EllenBinTree_ptb_member_less(); - void EllenBinTree_ptb_member_cmp(); - void EllenBinTree_ptb_member_cmpless(); - void EllenBinTree_ptb_member_less_ic(); - void EllenBinTree_ptb_member_cmp_ic(); - void EllenBinTree_ptb_member_less_stat(); - void EllenBinTree_ptb_member_cmp_ic_stat(); - void EllenBinTree_ptb_member_less_pool(); - void EllenBinTree_ptb_member_less_pool_ic_stat(); + void EllenBinTree_dhp_base_less(); + void EllenBinTree_dhp_base_cmp(); + void EllenBinTree_dhp_base_cmpless(); + void EllenBinTree_dhp_base_less_ic(); + void EllenBinTree_dhp_base_cmp_ic(); + void EllenBinTree_dhp_base_less_stat(); + void EllenBinTree_dhp_base_cmp_ic_stat(); + void EllenBinTree_dhp_base_less_pool(); + void EllenBinTree_dhp_base_less_pool_ic_stat(); + + void EllenBinTree_dhp_member_less(); + void EllenBinTree_dhp_member_cmp(); + void EllenBinTree_dhp_member_cmpless(); + void EllenBinTree_dhp_member_less_ic(); + void EllenBinTree_dhp_member_cmp_ic(); + void EllenBinTree_dhp_member_less_stat(); + void EllenBinTree_dhp_member_cmp_ic_stat(); + void EllenBinTree_dhp_member_less_pool(); + void EllenBinTree_dhp_member_less_pool_ic_stat(); void EllenBinTree_rcu_gpi_base_less(); void EllenBinTree_rcu_gpi_base_cmp(); @@ -1077,25 +1077,25 @@ namespace tree { CPPUNIT_TEST(EllenBinTree_hp_member_less_pool) CPPUNIT_TEST(EllenBinTree_hp_member_less_pool_ic_stat) - CPPUNIT_TEST(EllenBinTree_ptb_base_less) - CPPUNIT_TEST(EllenBinTree_ptb_base_cmp) - CPPUNIT_TEST(EllenBinTree_ptb_base_less_stat) - CPPUNIT_TEST(EllenBinTree_ptb_base_cmpless) - CPPUNIT_TEST(EllenBinTree_ptb_base_less_ic) - CPPUNIT_TEST(EllenBinTree_ptb_base_cmp_ic) - CPPUNIT_TEST(EllenBinTree_ptb_base_cmp_ic_stat) - CPPUNIT_TEST(EllenBinTree_ptb_base_less_pool) - CPPUNIT_TEST(EllenBinTree_ptb_base_less_pool_ic_stat) - - CPPUNIT_TEST(EllenBinTree_ptb_member_less) - CPPUNIT_TEST(EllenBinTree_ptb_member_cmp) - CPPUNIT_TEST(EllenBinTree_ptb_member_less_stat) - CPPUNIT_TEST(EllenBinTree_ptb_member_cmpless) - CPPUNIT_TEST(EllenBinTree_ptb_member_less_ic) - CPPUNIT_TEST(EllenBinTree_ptb_member_cmp_ic) - CPPUNIT_TEST(EllenBinTree_ptb_member_cmp_ic_stat) - CPPUNIT_TEST(EllenBinTree_ptb_member_less_pool) - CPPUNIT_TEST(EllenBinTree_ptb_member_less_pool_ic_stat) + CPPUNIT_TEST(EllenBinTree_dhp_base_less) + CPPUNIT_TEST(EllenBinTree_dhp_base_cmp) + CPPUNIT_TEST(EllenBinTree_dhp_base_less_stat) + CPPUNIT_TEST(EllenBinTree_dhp_base_cmpless) + CPPUNIT_TEST(EllenBinTree_dhp_base_less_ic) + CPPUNIT_TEST(EllenBinTree_dhp_base_cmp_ic) + CPPUNIT_TEST(EllenBinTree_dhp_base_cmp_ic_stat) + CPPUNIT_TEST(EllenBinTree_dhp_base_less_pool) + CPPUNIT_TEST(EllenBinTree_dhp_base_less_pool_ic_stat) + + CPPUNIT_TEST(EllenBinTree_dhp_member_less) + CPPUNIT_TEST(EllenBinTree_dhp_member_cmp) + CPPUNIT_TEST(EllenBinTree_dhp_member_less_stat) + CPPUNIT_TEST(EllenBinTree_dhp_member_cmpless) + CPPUNIT_TEST(EllenBinTree_dhp_member_less_ic) + CPPUNIT_TEST(EllenBinTree_dhp_member_cmp_ic) + CPPUNIT_TEST(EllenBinTree_dhp_member_cmp_ic_stat) + CPPUNIT_TEST(EllenBinTree_dhp_member_less_pool) + CPPUNIT_TEST(EllenBinTree_dhp_member_less_pool_ic_stat) CPPUNIT_TEST(EllenBinTree_rcu_gpi_base_less) CPPUNIT_TEST(EllenBinTree_rcu_gpi_base_cmp) diff --git a/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_ptb.cpp b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_dhp.cpp similarity index 69% rename from tests/test-hdr/tree/hdr_intrusive_ellen_bintree_ptb.cpp rename to tests/test-hdr/tree/hdr_intrusive_ellen_bintree_dhp.cpp index 3f95b5cc..209e933a 100644 --- a/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_ptb.cpp +++ b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_dhp.cpp @@ -3,14 +3,14 @@ #include "tree/hdr_intrusive_bintree.h" #include -#include "tree/hdr_intrusive_ellen_bintree_pool_ptb.h" +#include "tree/hdr_intrusive_ellen_bintree_pool_dhp.h" #include "unit/print_ellenbintree_stat.h" namespace tree { namespace ci = cds::intrusive; namespace co = cds::opt; namespace { - typedef ci::ellen_bintree::node leaf_node; + typedef ci::ellen_bintree::node leaf_node; typedef IntrusiveBinTreeHdrTest::base_hook_value< leaf_node > base_value; struct print_stat { @@ -25,25 +25,25 @@ namespace tree { typedef ci::ellen_bintree::update_desc< leaf_node, internal_node > update_desc; } - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_base_less() + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_base_less() { - typedef ci::EllenBinTree< cds::gc::PTB, key_type, base_value, - ci::ellen_bintree::make_traits< - ci::opt::hook< ci::ellen_bintree::base_hook< co::gc< cds::gc::PTB > > > - ,ci::ellen_bintree::key_extractor< key_extractor< base_value > > - ,co::less< less< base_value > > - ,ci::opt::disposer< disposer< base_value > > - >::type - > tree_type; + struct tree_traits : public ci::ellen_bintree::traits + { + typedef ci::ellen_bintree::base_hook< co::gc< cds::gc::DHP >> hook; + typedef IntrusiveBinTreeHdrTest::key_extractor< base_value > key_extractor; + typedef IntrusiveBinTreeHdrTest::less< base_value > less; + typedef IntrusiveBinTreeHdrTest::disposer< base_value > disposer; + }; + typedef ci::EllenBinTree< cds::gc::DHP, key_type, base_value, tree_traits > tree_type; test(); } - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_base_less_stat() + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_base_less_stat() { - typedef ci::EllenBinTree< cds::gc::PTB, key_type, base_value, + typedef ci::EllenBinTree< cds::gc::DHP, key_type, base_value, ci::ellen_bintree::make_traits< - ci::opt::hook< ci::ellen_bintree::base_hook< co::gc< cds::gc::PTB > > > + ci::opt::hook< ci::ellen_bintree::base_hook< co::gc< cds::gc::DHP > > > ,ci::ellen_bintree::key_extractor< key_extractor< base_value > > ,co::less< less< base_value > > ,ci::opt::disposer< disposer< base_value > > @@ -54,11 +54,11 @@ namespace tree { test(); } - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_base_cmp() + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_base_cmp() { - typedef ci::EllenBinTree< cds::gc::PTB, key_type, base_value, + typedef ci::EllenBinTree< cds::gc::DHP, key_type, base_value, ci::ellen_bintree::make_traits< - ci::opt::hook< ci::ellen_bintree::base_hook< co::gc< cds::gc::PTB > > > + ci::opt::hook< ci::ellen_bintree::base_hook< co::gc< cds::gc::DHP > > > ,ci::ellen_bintree::key_extractor< key_extractor< base_value > > ,co::compare< compare< base_value > > ,ci::opt::disposer< disposer< base_value > > @@ -68,11 +68,11 @@ namespace tree { test(); } - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_base_cmpless() + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_base_cmpless() { - typedef ci::EllenBinTree< cds::gc::PTB, key_type, base_value, + typedef ci::EllenBinTree< cds::gc::DHP, key_type, base_value, ci::ellen_bintree::make_traits< - ci::opt::hook< ci::ellen_bintree::base_hook< co::gc< cds::gc::PTB > > > + ci::opt::hook< ci::ellen_bintree::base_hook< co::gc< cds::gc::DHP > > > ,ci::ellen_bintree::key_extractor< key_extractor< base_value > > ,co::compare< compare< base_value > > ,co::less< less< base_value > > @@ -83,11 +83,11 @@ namespace tree { test(); } - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_base_less_ic() + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_base_less_ic() { - typedef ci::EllenBinTree< cds::gc::PTB, key_type, base_value, + typedef ci::EllenBinTree< cds::gc::DHP, key_type, base_value, ci::ellen_bintree::make_traits< - ci::opt::hook< ci::ellen_bintree::base_hook< co::gc< cds::gc::PTB > > > + ci::opt::hook< ci::ellen_bintree::base_hook< co::gc< cds::gc::DHP > > > ,ci::ellen_bintree::key_extractor< key_extractor< base_value > > ,co::less< less< base_value > > ,ci::opt::disposer< disposer< base_value > > @@ -98,11 +98,11 @@ namespace tree { test(); } - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_base_cmp_ic() + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_base_cmp_ic() { - typedef ci::EllenBinTree< cds::gc::PTB, key_type, base_value, + typedef ci::EllenBinTree< cds::gc::DHP, key_type, base_value, ci::ellen_bintree::make_traits< - ci::opt::hook< ci::ellen_bintree::base_hook< co::gc< cds::gc::PTB > > > + ci::opt::hook< ci::ellen_bintree::base_hook< co::gc< cds::gc::DHP > > > ,ci::ellen_bintree::key_extractor< key_extractor< base_value > > ,co::compare< compare< base_value > > ,ci::opt::disposer< disposer< base_value > > @@ -113,11 +113,11 @@ namespace tree { test(); } - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_base_cmp_ic_stat() + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_base_cmp_ic_stat() { - typedef ci::EllenBinTree< cds::gc::PTB, key_type, base_value, + typedef ci::EllenBinTree< cds::gc::DHP, key_type, base_value, ci::ellen_bintree::make_traits< - ci::opt::hook< ci::ellen_bintree::base_hook< co::gc< cds::gc::PTB > > > + ci::opt::hook< ci::ellen_bintree::base_hook< co::gc< cds::gc::DHP > > > ,ci::ellen_bintree::key_extractor< key_extractor< base_value > > ,co::compare< compare< base_value > > ,ci::opt::disposer< disposer< base_value > > @@ -129,32 +129,32 @@ namespace tree { test(); } - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_base_less_pool() + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_base_less_pool() { - typedef ci::EllenBinTree< cds::gc::PTB, key_type, base_value, + typedef ci::EllenBinTree< cds::gc::DHP, key_type, base_value, ci::ellen_bintree::make_traits< - ci::opt::hook< ci::ellen_bintree::base_hook< co::gc< cds::gc::PTB > > > + ci::opt::hook< ci::ellen_bintree::base_hook< co::gc< cds::gc::DHP > > > ,ci::ellen_bintree::key_extractor< key_extractor< base_value > > ,co::less< less< base_value > > ,ci::opt::disposer< disposer< base_value > > - ,co::node_allocator< cds::memory::pool_allocator< internal_node, ellen_bintree_ptb::internal_node_pool_accessor > > - ,ci::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< update_desc, ellen_bintree_ptb::update_desc_pool_accessor > > + ,co::node_allocator< cds::memory::pool_allocator< internal_node, ellen_bintree_dhp::internal_node_pool_accessor > > + ,ci::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< update_desc, ellen_bintree_dhp::update_desc_pool_accessor > > >::type > tree_type; test(); } - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_base_less_pool_ic_stat() + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_base_less_pool_ic_stat() { - typedef ci::EllenBinTree< cds::gc::PTB, key_type, base_value, + typedef ci::EllenBinTree< cds::gc::DHP, key_type, base_value, ci::ellen_bintree::make_traits< - ci::opt::hook< ci::ellen_bintree::base_hook< co::gc< cds::gc::PTB > > > + ci::opt::hook< ci::ellen_bintree::base_hook< co::gc< cds::gc::DHP > > > ,ci::ellen_bintree::key_extractor< key_extractor< base_value > > ,co::less< less< base_value > > ,ci::opt::disposer< disposer< base_value > > - ,co::node_allocator< cds::memory::pool_allocator< internal_node, ellen_bintree_ptb::internal_node_pool_accessor > > - ,ci::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< update_desc, ellen_bintree_ptb::update_desc_pool_accessor > > + ,co::node_allocator< cds::memory::pool_allocator< internal_node, ellen_bintree_dhp::internal_node_pool_accessor > > + ,ci::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< update_desc, ellen_bintree_dhp::update_desc_pool_accessor > > ,co::item_counter< cds::atomicity::item_counter > ,co::stat< ci::ellen_bintree::stat<> > >::type diff --git a/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_ptb_member.cpp b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_dhp_member.cpp similarity index 69% rename from tests/test-hdr/tree/hdr_intrusive_ellen_bintree_ptb_member.cpp rename to tests/test-hdr/tree/hdr_intrusive_ellen_bintree_dhp_member.cpp index e0ac4f7f..2275c297 100644 --- a/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_ptb_member.cpp +++ b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_dhp_member.cpp @@ -3,17 +3,17 @@ #include "tree/hdr_intrusive_bintree.h" #include -#include "tree/hdr_intrusive_ellen_bintree_pool_ptb.h" +#include "tree/hdr_intrusive_ellen_bintree_pool_dhp.h" #include "unit/print_ellenbintree_stat.h" namespace tree { namespace ci = cds::intrusive; namespace co = cds::opt; namespace { - typedef ci::ellen_bintree::node leaf_node; + typedef ci::ellen_bintree::node leaf_node; typedef IntrusiveBinTreeHdrTest::member_hook_value< leaf_node > member_value; - typedef ci::opt::hook< ci::ellen_bintree::member_hook< offsetof(member_value, hook), co::gc< cds::gc::PTB > > > member_hook; + typedef ci::opt::hook< ci::ellen_bintree::member_hook< offsetof(member_value, hook), co::gc< cds::gc::DHP > > > member_hook; struct print_stat { template @@ -27,23 +27,23 @@ namespace tree { typedef ci::ellen_bintree::update_desc< leaf_node, internal_node > update_desc; } - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_member_less() + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_member_less() { - typedef ci::EllenBinTree< cds::gc::PTB, key_type, member_value, - ci::ellen_bintree::make_traits< - member_hook - ,ci::ellen_bintree::key_extractor< key_extractor< member_value > > - ,co::less< less< member_value > > - ,ci::opt::disposer< disposer< member_value > > - >::type - > tree_type; + struct tree_traits : public ci::ellen_bintree::traits + { + typedef ci::ellen_bintree::member_hook< offsetof( member_value, hook ), co::gc< cds::gc::DHP >> hook; + typedef IntrusiveBinTreeHdrTest::key_extractor< member_value > key_extractor; + typedef IntrusiveBinTreeHdrTest::less< member_value > less; + typedef IntrusiveBinTreeHdrTest::disposer< member_value > disposer; + }; + typedef ci::EllenBinTree< cds::gc::DHP, key_type, member_value, tree_traits > tree_type; test(); } - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_member_less_stat() + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_member_less_stat() { - typedef ci::EllenBinTree< cds::gc::PTB, key_type, member_value, + typedef ci::EllenBinTree< cds::gc::DHP, key_type, member_value, ci::ellen_bintree::make_traits< member_hook ,ci::ellen_bintree::key_extractor< key_extractor< member_value > > @@ -56,9 +56,9 @@ namespace tree { test(); } - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_member_cmp() + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_member_cmp() { - typedef ci::EllenBinTree< cds::gc::PTB, key_type, member_value, + typedef ci::EllenBinTree< cds::gc::DHP, key_type, member_value, ci::ellen_bintree::make_traits< member_hook ,ci::ellen_bintree::key_extractor< key_extractor< member_value > > @@ -70,9 +70,9 @@ namespace tree { test(); } - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_member_cmpless() + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_member_cmpless() { - typedef ci::EllenBinTree< cds::gc::PTB, key_type, member_value, + typedef ci::EllenBinTree< cds::gc::DHP, key_type, member_value, ci::ellen_bintree::make_traits< member_hook ,ci::ellen_bintree::key_extractor< key_extractor< member_value > > @@ -85,9 +85,9 @@ namespace tree { test(); } - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_member_less_ic() + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_member_less_ic() { - typedef ci::EllenBinTree< cds::gc::PTB, key_type, member_value, + typedef ci::EllenBinTree< cds::gc::DHP, key_type, member_value, ci::ellen_bintree::make_traits< member_hook ,ci::ellen_bintree::key_extractor< key_extractor< member_value > > @@ -100,9 +100,9 @@ namespace tree { test(); } - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_member_cmp_ic() + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_member_cmp_ic() { - typedef ci::EllenBinTree< cds::gc::PTB, key_type, member_value, + typedef ci::EllenBinTree< cds::gc::DHP, key_type, member_value, ci::ellen_bintree::make_traits< member_hook ,ci::ellen_bintree::key_extractor< key_extractor< member_value > > @@ -115,9 +115,9 @@ namespace tree { test(); } - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_member_cmp_ic_stat() + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_member_cmp_ic_stat() { - typedef ci::EllenBinTree< cds::gc::PTB, key_type, member_value, + typedef ci::EllenBinTree< cds::gc::DHP, key_type, member_value, ci::ellen_bintree::make_traits< member_hook ,ci::ellen_bintree::key_extractor< key_extractor< member_value > > @@ -131,32 +131,32 @@ namespace tree { test(); } - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_member_less_pool() + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_member_less_pool() { - typedef ci::EllenBinTree< cds::gc::PTB, key_type, member_value, + typedef ci::EllenBinTree< cds::gc::DHP, key_type, member_value, ci::ellen_bintree::make_traits< member_hook ,ci::ellen_bintree::key_extractor< key_extractor< member_value > > ,co::less< less< member_value > > ,ci::opt::disposer< disposer< member_value > > - ,co::node_allocator< cds::memory::pool_allocator< internal_node, ellen_bintree_ptb::internal_node_pool_accessor > > - ,ci::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< update_desc, ellen_bintree_ptb::update_desc_pool_accessor > > + ,co::node_allocator< cds::memory::pool_allocator< internal_node, ellen_bintree_dhp::internal_node_pool_accessor > > + ,ci::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< update_desc, ellen_bintree_dhp::update_desc_pool_accessor > > >::type > tree_type; test(); } - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_member_less_pool_ic_stat() + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_member_less_pool_ic_stat() { - typedef ci::EllenBinTree< cds::gc::PTB, key_type, member_value, + typedef ci::EllenBinTree< cds::gc::DHP, key_type, member_value, ci::ellen_bintree::make_traits< member_hook ,ci::ellen_bintree::key_extractor< key_extractor< member_value > > ,co::less< less< member_value > > ,ci::opt::disposer< disposer< member_value > > - ,co::node_allocator< cds::memory::pool_allocator< internal_node, ellen_bintree_ptb::internal_node_pool_accessor > > - ,ci::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< update_desc, ellen_bintree_ptb::update_desc_pool_accessor > > + ,co::node_allocator< cds::memory::pool_allocator< internal_node, ellen_bintree_dhp::internal_node_pool_accessor > > + ,ci::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< update_desc, ellen_bintree_dhp::update_desc_pool_accessor > > ,co::item_counter< cds::atomicity::item_counter > ,co::stat< ci::ellen_bintree::stat<> > >::type diff --git a/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_hp.cpp b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_hp.cpp index 39a189f4..f2faad09 100644 --- a/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_hp.cpp +++ b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_hp.cpp @@ -27,14 +27,14 @@ namespace tree { void IntrusiveBinTreeHdrTest::EllenBinTree_hp_base_less() { - typedef ci::EllenBinTree< cds::gc::HP, key_type, base_value, - ci::ellen_bintree::make_traits< - ci::opt::hook< ci::ellen_bintree::base_hook< co::gc< cds::gc::HP > > > - ,ci::ellen_bintree::key_extractor< key_extractor< base_value > > - ,co::less< less< base_value > > - ,ci::opt::disposer< disposer< base_value > > - >::type - > tree_type; + struct tree_traits : public ci::ellen_bintree::traits + { + typedef ci::ellen_bintree::base_hook< co::gc< cds::gc::HP >> hook; + typedef IntrusiveBinTreeHdrTest::key_extractor< base_value > key_extractor; + typedef IntrusiveBinTreeHdrTest::less< base_value > less; + typedef IntrusiveBinTreeHdrTest::disposer< base_value > disposer; + }; + typedef ci::EllenBinTree< cds::gc::HP, key_type, base_value, tree_traits > tree_type; test(); } diff --git a/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_hp_member.cpp b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_hp_member.cpp index 24473a7c..a68eafd7 100644 --- a/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_hp_member.cpp +++ b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_hp_member.cpp @@ -29,6 +29,13 @@ namespace tree { void IntrusiveBinTreeHdrTest::EllenBinTree_hp_member_less() { + struct tree_traits : public ci::ellen_bintree::traits + { + typedef ci::ellen_bintree::member_hook< offsetof( member_value, hook ), co::gc< cds::gc::HP >> hook; + typedef IntrusiveBinTreeHdrTest::key_extractor< member_value > key_extractor; + typedef IntrusiveBinTreeHdrTest::less< member_value > less; + typedef IntrusiveBinTreeHdrTest::disposer< member_value > disposer; + }; typedef ci::EllenBinTree< cds::gc::HP, key_type, member_value, ci::ellen_bintree::make_traits< member_hook diff --git a/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_pool_ptb.h b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_pool_dhp.h similarity index 89% rename from tests/test-hdr/tree/hdr_intrusive_ellen_bintree_pool_ptb.h rename to tests/test-hdr/tree/hdr_intrusive_ellen_bintree_pool_dhp.h index 17fb5c1c..8c67b652 100644 --- a/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_pool_ptb.h +++ b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_pool_dhp.h @@ -1,7 +1,7 @@ //$$CDS-header$$ -#ifndef CDSHDRTEST_INTRUSIVE_ELLEN_BINTREE_POOL_PTB_H -#define CDSHDRTEST_INTRUSIVE_ELLEN_BINTREE_POOL_PTB_H +#ifndef CDSHDRTEST_INTRUSIVE_ELLEN_BINTREE_POOL_DHP_H +#define CDSHDRTEST_INTRUSIVE_ELLEN_BINTREE_POOL_DHP_H #include "tree/hdr_intrusive_bintree.h" #include @@ -11,7 +11,7 @@ namespace tree { - namespace ellen_bintree_ptb { + namespace ellen_bintree_dhp { typedef cds::intrusive::ellen_bintree::node_types node_types; typedef node_types::leaf_node_type leaf_node; typedef IntrusiveBinTreeHdrTest::base_hook_value< leaf_node > base_value; @@ -53,8 +53,8 @@ namespace tree { } }; - } // namespace ellen_bintree_ptb + } // namespace ellen_bintree_dhp } // namespace tree -#endif // #ifndef CDSHDRTEST_INTRUSIVE_ELLEN_BINTREE_POOL_PTB_H +#endif // #ifndef CDSHDRTEST_INTRUSIVE_ELLEN_BINTREE_POOL_DHP_H diff --git a/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_rcu_gpb.cpp b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_rcu_gpb.cpp index 642f2222..8843fb69 100644 --- a/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_rcu_gpb.cpp +++ b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_rcu_gpb.cpp @@ -30,14 +30,14 @@ namespace tree { void IntrusiveBinTreeHdrTest::EllenBinTree_rcu_gpb_base_less() { - typedef ci::EllenBinTree< rcu_type, key_type, base_value, - ci::ellen_bintree::make_traits< - ci::opt::hook< ci::ellen_bintree::base_hook< co::gc< rcu_type > > > - ,ci::ellen_bintree::key_extractor< key_extractor< base_value > > - ,co::less< less< base_value > > - ,ci::opt::disposer< disposer< base_value > > - >::type - > tree_type; + struct tree_traits : public ci::ellen_bintree::traits + { + typedef ci::ellen_bintree::base_hook< co::gc< rcu_type >> hook; + typedef IntrusiveBinTreeHdrTest::key_extractor< base_value > key_extractor; + typedef IntrusiveBinTreeHdrTest::less< base_value > less; + typedef IntrusiveBinTreeHdrTest::disposer< base_value > disposer; + }; + typedef ci::EllenBinTree< rcu_type, key_type, base_value, tree_traits > tree_type; test_rcu(); } diff --git a/tests/test-hdr/tree/hdr_tree_reg.cpp b/tests/test-hdr/tree/hdr_tree_reg.cpp index 9e554837..b9d57eab 100644 --- a/tests/test-hdr/tree/hdr_tree_reg.cpp +++ b/tests/test-hdr/tree/hdr_tree_reg.cpp @@ -3,7 +3,7 @@ #include "tree/hdr_intrusive_bintree.h" #include "tree/hdr_intrusive_ellen_bintree_pool_rcu.h" #include "tree/hdr_intrusive_ellen_bintree_pool_hp.h" -#include "tree/hdr_intrusive_ellen_bintree_pool_ptb.h" +#include "tree/hdr_intrusive_ellen_bintree_pool_dhp.h" #include "tree/hdr_ellenbintree_set.h" #include "tree/hdr_ellenbintree_map.h" @@ -17,7 +17,7 @@ namespace tree { internal_node_pool_type s_InternalNodePool( 1024 * 8 ); update_desc_pool_type s_UpdateDescPool; } - namespace ellen_bintree_ptb { + namespace ellen_bintree_dhp { internal_node_pool_type s_InternalNodePool( 1024 * 8 ); update_desc_pool_type s_UpdateDescPool; } -- 2.34.1