From: khizmax Date: Fri, 7 Nov 2014 11:41:09 +0000 (+0300) Subject: intrusive::EllenBinTree test refactoring X-Git-Tag: v2.0.0~129 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=379ec1e9a23db4834c6d6c385c07e1d9b7518a77;p=libcds.git intrusive::EllenBinTree test refactoring --- 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_dhp.cpp b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_dhp.cpp new file mode 100644 index 00000000..209e933a --- /dev/null +++ b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_dhp.cpp @@ -0,0 +1,167 @@ +//$$CDS-header$$ + +#include "tree/hdr_intrusive_bintree.h" +#include + +#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 IntrusiveBinTreeHdrTest::base_hook_value< leaf_node > base_value; + + struct print_stat { + template + void operator()( Tree const& t) + { + std::cout << t.statistics(); + } + }; + + typedef ci::ellen_bintree::internal_node< IntrusiveBinTreeHdrTest::key_type, leaf_node > internal_node; + typedef ci::ellen_bintree::update_desc< leaf_node, internal_node > update_desc; + } + + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_base_less() + { + 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_dhp_base_less_stat() + { + 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::DHP > > > + ,ci::ellen_bintree::key_extractor< key_extractor< base_value > > + ,co::less< less< base_value > > + ,ci::opt::disposer< disposer< base_value > > + ,co::stat< ci::ellen_bintree::stat<> > + >::type + > tree_type; + + test(); + } + + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_base_cmp() + { + 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::DHP > > > + ,ci::ellen_bintree::key_extractor< key_extractor< base_value > > + ,co::compare< compare< base_value > > + ,ci::opt::disposer< disposer< base_value > > + >::type + > tree_type; + + test(); + } + + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_base_cmpless() + { + 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::DHP > > > + ,ci::ellen_bintree::key_extractor< key_extractor< base_value > > + ,co::compare< compare< base_value > > + ,co::less< less< base_value > > + ,ci::opt::disposer< disposer< base_value > > + >::type + > tree_type; + + test(); + } + + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_base_less_ic() + { + 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::DHP > > > + ,ci::ellen_bintree::key_extractor< key_extractor< base_value > > + ,co::less< less< base_value > > + ,ci::opt::disposer< disposer< base_value > > + ,co::item_counter< cds::atomicity::item_counter > + >::type + > tree_type; + + test(); + } + + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_base_cmp_ic() + { + 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::DHP > > > + ,ci::ellen_bintree::key_extractor< key_extractor< base_value > > + ,co::compare< compare< base_value > > + ,ci::opt::disposer< disposer< base_value > > + ,co::item_counter< cds::atomicity::item_counter > + >::type + > tree_type; + + test(); + } + + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_base_cmp_ic_stat() + { + 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::DHP > > > + ,ci::ellen_bintree::key_extractor< key_extractor< base_value > > + ,co::compare< compare< base_value > > + ,ci::opt::disposer< disposer< base_value > > + ,co::item_counter< cds::atomicity::item_counter > + ,co::stat< ci::ellen_bintree::stat<> > + >::type + > tree_type; + + test(); + } + + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_base_less_pool() + { + 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::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_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_dhp_base_less_pool_ic_stat() + { + 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::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_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 + > tree_type; + + test(); + } + + +} //namespace tree diff --git a/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_dhp_member.cpp b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_dhp_member.cpp new file mode 100644 index 00000000..2275c297 --- /dev/null +++ b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_dhp_member.cpp @@ -0,0 +1,169 @@ +//$$CDS-header$$ + +#include "tree/hdr_intrusive_bintree.h" +#include + +#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 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::DHP > > > member_hook; + + struct print_stat { + template + void operator()( Tree const& t) + { + std::cout << t.statistics(); + } + }; + + typedef ci::ellen_bintree::internal_node< IntrusiveBinTreeHdrTest::key_type, leaf_node > internal_node; + typedef ci::ellen_bintree::update_desc< leaf_node, internal_node > update_desc; + } + + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_member_less() + { + 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_dhp_member_less_stat() + { + 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::stat< ci::ellen_bintree::stat<> > + >::type + > tree_type; + + test(); + } + + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_member_cmp() + { + 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::compare< compare< member_value > > + ,ci::opt::disposer< disposer< member_value > > + >::type + > tree_type; + + test(); + } + + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_member_cmpless() + { + 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::compare< compare< member_value > > + ,co::less< less< member_value > > + ,ci::opt::disposer< disposer< member_value > > + >::type + > tree_type; + + test(); + } + + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_member_less_ic() + { + 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::item_counter< cds::atomicity::item_counter > + >::type + > tree_type; + + test(); + } + + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_member_cmp_ic() + { + 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::compare< compare< member_value > > + ,ci::opt::disposer< disposer< member_value > > + ,co::item_counter< cds::atomicity::item_counter > + >::type + > tree_type; + + test(); + } + + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_member_cmp_ic_stat() + { + 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::compare< compare< member_value > > + ,ci::opt::disposer< disposer< member_value > > + ,co::item_counter< cds::atomicity::item_counter > + ,co::stat< ci::ellen_bintree::stat<> > + >::type + > tree_type; + + test(); + } + + void IntrusiveBinTreeHdrTest::EllenBinTree_dhp_member_less_pool() + { + 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_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_dhp_member_less_pool_ic_stat() + { + 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_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 + > tree_type; + + test(); + } + + +} //namespace tree 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_dhp.h b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_pool_dhp.h new file mode 100644 index 00000000..8c67b652 --- /dev/null +++ b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_pool_dhp.h @@ -0,0 +1,60 @@ +//$$CDS-header$$ + +#ifndef CDSHDRTEST_INTRUSIVE_ELLEN_BINTREE_POOL_DHP_H +#define CDSHDRTEST_INTRUSIVE_ELLEN_BINTREE_POOL_DHP_H + +#include "tree/hdr_intrusive_bintree.h" +#include + +#include +#include + +namespace tree { + + 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; + typedef node_types::internal_node_type internal_node; + typedef node_types::update_desc_type update_desc; + + + // Internal node pool based on Vyukov's queue + struct internal_node_pool_traits : public cds::memory::vyukov_queue_pool_traits + { + typedef cds::opt::v::dynamic_buffer< cds::any_type > buffer; + }; + typedef cds::memory::lazy_vyukov_queue_pool< internal_node, internal_node_pool_traits > internal_node_pool_type; + extern internal_node_pool_type s_InternalNodePool; + + struct internal_node_pool_accessor { + typedef internal_node_pool_type::value_type value_type; + + internal_node_pool_type& operator()() const + { + return s_InternalNodePool; + } + }; + + // Update descriptor pool based on Vyukov's queue + struct update_desc_pool_traits : public cds::memory::vyukov_queue_pool_traits + { + typedef cds::opt::v::static_buffer< cds::any_type, 16 > buffer; + }; + typedef cds::memory::vyukov_queue_pool< update_desc, update_desc_pool_traits > update_desc_pool_type; + extern update_desc_pool_type s_UpdateDescPool; + + struct update_desc_pool_accessor { + typedef update_desc_pool_type::value_type value_type; + + update_desc_pool_type& operator()() const + { + return s_UpdateDescPool; + } + }; + + } // namespace ellen_bintree_dhp + +} // namespace tree + +#endif // #ifndef CDSHDRTEST_INTRUSIVE_ELLEN_BINTREE_POOL_DHP_H diff --git a/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_pool_ptb.h b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_pool_ptb.h deleted file mode 100644 index 17fb5c1c..00000000 --- a/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_pool_ptb.h +++ /dev/null @@ -1,60 +0,0 @@ -//$$CDS-header$$ - -#ifndef CDSHDRTEST_INTRUSIVE_ELLEN_BINTREE_POOL_PTB_H -#define CDSHDRTEST_INTRUSIVE_ELLEN_BINTREE_POOL_PTB_H - -#include "tree/hdr_intrusive_bintree.h" -#include - -#include -#include - -namespace tree { - - namespace ellen_bintree_ptb { - 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; - typedef node_types::internal_node_type internal_node; - typedef node_types::update_desc_type update_desc; - - - // Internal node pool based on Vyukov's queue - struct internal_node_pool_traits : public cds::memory::vyukov_queue_pool_traits - { - typedef cds::opt::v::dynamic_buffer< cds::any_type > buffer; - }; - typedef cds::memory::lazy_vyukov_queue_pool< internal_node, internal_node_pool_traits > internal_node_pool_type; - extern internal_node_pool_type s_InternalNodePool; - - struct internal_node_pool_accessor { - typedef internal_node_pool_type::value_type value_type; - - internal_node_pool_type& operator()() const - { - return s_InternalNodePool; - } - }; - - // Update descriptor pool based on Vyukov's queue - struct update_desc_pool_traits : public cds::memory::vyukov_queue_pool_traits - { - typedef cds::opt::v::static_buffer< cds::any_type, 16 > buffer; - }; - typedef cds::memory::vyukov_queue_pool< update_desc, update_desc_pool_traits > update_desc_pool_type; - extern update_desc_pool_type s_UpdateDescPool; - - struct update_desc_pool_accessor { - typedef update_desc_pool_type::value_type value_type; - - update_desc_pool_type& operator()() const - { - return s_UpdateDescPool; - } - }; - - } // namespace ellen_bintree_ptb - -} // namespace tree - -#endif // #ifndef CDSHDRTEST_INTRUSIVE_ELLEN_BINTREE_POOL_PTB_H diff --git a/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_ptb.cpp b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_ptb.cpp deleted file mode 100644 index 3f95b5cc..00000000 --- a/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_ptb.cpp +++ /dev/null @@ -1,167 +0,0 @@ -//$$CDS-header$$ - -#include "tree/hdr_intrusive_bintree.h" -#include - -#include "tree/hdr_intrusive_ellen_bintree_pool_ptb.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 IntrusiveBinTreeHdrTest::base_hook_value< leaf_node > base_value; - - struct print_stat { - template - void operator()( Tree const& t) - { - std::cout << t.statistics(); - } - }; - - typedef ci::ellen_bintree::internal_node< IntrusiveBinTreeHdrTest::key_type, leaf_node > internal_node; - typedef ci::ellen_bintree::update_desc< leaf_node, internal_node > update_desc; - } - - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_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; - - test(); - } - - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_base_less_stat() - { - 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 > > - ,co::stat< ci::ellen_bintree::stat<> > - >::type - > tree_type; - - test(); - } - - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_base_cmp() - { - 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::compare< compare< base_value > > - ,ci::opt::disposer< disposer< base_value > > - >::type - > tree_type; - - test(); - } - - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_base_cmpless() - { - 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::compare< compare< base_value > > - ,co::less< less< base_value > > - ,ci::opt::disposer< disposer< base_value > > - >::type - > tree_type; - - test(); - } - - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_base_less_ic() - { - 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 > > - ,co::item_counter< cds::atomicity::item_counter > - >::type - > tree_type; - - test(); - } - - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_base_cmp_ic() - { - 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::compare< compare< base_value > > - ,ci::opt::disposer< disposer< base_value > > - ,co::item_counter< cds::atomicity::item_counter > - >::type - > tree_type; - - test(); - } - - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_base_cmp_ic_stat() - { - 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::compare< compare< base_value > > - ,ci::opt::disposer< disposer< base_value > > - ,co::item_counter< cds::atomicity::item_counter > - ,co::stat< ci::ellen_bintree::stat<> > - >::type - > tree_type; - - test(); - } - - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_base_less_pool() - { - 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 > > - ,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 > > - >::type - > tree_type; - - test(); - } - - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_base_less_pool_ic_stat() - { - 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 > > - ,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::item_counter< cds::atomicity::item_counter > - ,co::stat< ci::ellen_bintree::stat<> > - >::type - > tree_type; - - test(); - } - - -} //namespace tree diff --git a/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_ptb_member.cpp b/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_ptb_member.cpp deleted file mode 100644 index e0ac4f7f..00000000 --- a/tests/test-hdr/tree/hdr_intrusive_ellen_bintree_ptb_member.cpp +++ /dev/null @@ -1,169 +0,0 @@ -//$$CDS-header$$ - -#include "tree/hdr_intrusive_bintree.h" -#include - -#include "tree/hdr_intrusive_ellen_bintree_pool_ptb.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 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; - - struct print_stat { - template - void operator()( Tree const& t) - { - std::cout << t.statistics(); - } - }; - - typedef ci::ellen_bintree::internal_node< IntrusiveBinTreeHdrTest::key_type, leaf_node > internal_node; - typedef ci::ellen_bintree::update_desc< leaf_node, internal_node > update_desc; - } - - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_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; - - test(); - } - - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_member_less_stat() - { - 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 > > - ,co::stat< ci::ellen_bintree::stat<> > - >::type - > tree_type; - - test(); - } - - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_member_cmp() - { - 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::compare< compare< member_value > > - ,ci::opt::disposer< disposer< member_value > > - >::type - > tree_type; - - test(); - } - - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_member_cmpless() - { - 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::compare< compare< member_value > > - ,co::less< less< member_value > > - ,ci::opt::disposer< disposer< member_value > > - >::type - > tree_type; - - test(); - } - - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_member_less_ic() - { - 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 > > - ,co::item_counter< cds::atomicity::item_counter > - >::type - > tree_type; - - test(); - } - - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_member_cmp_ic() - { - 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::compare< compare< member_value > > - ,ci::opt::disposer< disposer< member_value > > - ,co::item_counter< cds::atomicity::item_counter > - >::type - > tree_type; - - test(); - } - - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_member_cmp_ic_stat() - { - 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::compare< compare< member_value > > - ,ci::opt::disposer< disposer< member_value > > - ,co::item_counter< cds::atomicity::item_counter > - ,co::stat< ci::ellen_bintree::stat<> > - >::type - > tree_type; - - test(); - } - - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_member_less_pool() - { - 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 > > - ,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 > > - >::type - > tree_type; - - test(); - } - - void IntrusiveBinTreeHdrTest::EllenBinTree_ptb_member_less_pool_ic_stat() - { - 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 > > - ,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::item_counter< cds::atomicity::item_counter > - ,co::stat< ci::ellen_bintree::stat<> > - >::type - > tree_type; - - test(); - } - - -} //namespace tree 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; }