3 #include "tree/hdr_ellenbintree_set.h"
4 #include <cds/container/ellen_bintree_set_dhp.h>
6 #include "tree/hdr_intrusive_ellen_bintree_pool_dhp.h"
7 #include "unit/print_ellenbintree_stat.h"
10 namespace cc = cds::container;
11 namespace co = cds::opt;
13 typedef cds::gc::DHP gc_type;
15 typedef cc::ellen_bintree::node<gc_type, EllenBinTreeSetHdrTest::value_type> tree_leaf_node;
16 typedef cc::ellen_bintree::internal_node< EllenBinTreeSetHdrTest::key_type, tree_leaf_node > tree_internal_node;
17 typedef cc::ellen_bintree::update_desc<tree_leaf_node, tree_internal_node> tree_update_desc;
20 template <typename Tree>
21 void operator()( Tree const& t)
23 std::cout << t.statistics();
29 void EllenBinTreeSetHdrTest::EllenBinTree_dhp_less()
31 struct set_traits: public cc::ellen_bintree::traits{
32 typedef EllenBinTreeSetHdrTest::key_extractor key_extractor;
33 typedef EllenBinTreeSetHdrTest::less less;
35 typedef cc::EllenBinTreeSet< gc_type, key_type, value_type, set_traits > set_type;
37 test<set_type, print_stat>();
40 void EllenBinTreeSetHdrTest::EllenBinTree_dhp_cmp()
42 typedef cc::EllenBinTreeSet< gc_type, key_type, value_type,
43 cc::ellen_bintree::make_set_traits<
44 cc::ellen_bintree::key_extractor< key_extractor >
45 ,co::compare< compare >
49 test<set_type, print_stat>();
52 void EllenBinTreeSetHdrTest::EllenBinTree_dhp_cmpless()
54 typedef cc::EllenBinTreeSet< gc_type, key_type, value_type,
55 cc::ellen_bintree::make_set_traits<
56 cc::ellen_bintree::key_extractor< key_extractor >
57 ,co::compare< compare >
62 test<set_type, print_stat>();
65 void EllenBinTreeSetHdrTest::EllenBinTree_dhp_less_ic()
67 typedef cc::EllenBinTreeSet< gc_type, key_type, value_type,
68 cc::ellen_bintree::make_set_traits<
69 cc::ellen_bintree::key_extractor< key_extractor >
71 ,co::item_counter< cds::atomicity::item_counter >
75 test<set_type, print_stat>();
78 void EllenBinTreeSetHdrTest::EllenBinTree_dhp_cmp_ic()
80 typedef cc::EllenBinTreeSet< gc_type, key_type, value_type,
81 cc::ellen_bintree::make_set_traits<
82 cc::ellen_bintree::key_extractor< key_extractor >
83 ,co::item_counter< cds::atomicity::item_counter >
84 ,co::compare< compare >
88 test<set_type, print_stat>();
91 void EllenBinTreeSetHdrTest::EllenBinTree_dhp_less_stat()
93 typedef cc::EllenBinTreeSet< gc_type, key_type, value_type,
94 cc::ellen_bintree::make_set_traits<
95 cc::ellen_bintree::key_extractor< key_extractor >
97 ,co::stat< cc::ellen_bintree::stat<> >
101 test<set_type, print_stat>();
104 void EllenBinTreeSetHdrTest::EllenBinTree_dhp_cmp_ic_stat()
106 typedef cc::EllenBinTreeSet< gc_type, key_type, value_type,
107 cc::ellen_bintree::make_set_traits<
108 cc::ellen_bintree::key_extractor< key_extractor >
109 ,co::item_counter< cds::atomicity::item_counter >
110 ,co::stat< cc::ellen_bintree::stat<> >
111 ,co::compare< compare >
115 test<set_type, print_stat>();
118 void EllenBinTreeSetHdrTest::EllenBinTree_dhp_less_pool()
120 typedef cc::EllenBinTreeSet< gc_type, key_type, value_type,
121 cc::ellen_bintree::make_set_traits<
122 cc::ellen_bintree::key_extractor< key_extractor >
124 ,co::node_allocator< cds::memory::pool_allocator< tree_internal_node, ellen_bintree_dhp::internal_node_pool_accessor > >
125 ,cc::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< tree_update_desc, ellen_bintree_dhp::update_desc_pool_accessor > >
129 test<set_type, print_stat>();
132 void EllenBinTreeSetHdrTest::EllenBinTree_dhp_less_pool_ic_stat()
134 typedef cc::EllenBinTreeSet< gc_type, key_type, value_type,
135 cc::ellen_bintree::make_set_traits<
136 cc::ellen_bintree::key_extractor< key_extractor >
138 ,co::node_allocator< cds::memory::pool_allocator< tree_internal_node, ellen_bintree_dhp::internal_node_pool_accessor > >
139 ,cc::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< tree_update_desc, ellen_bintree_dhp::update_desc_pool_accessor > >
140 ,co::item_counter< cds::atomicity::item_counter >
141 ,co::stat< cc::ellen_bintree::stat<> >
145 test<set_type, print_stat>();