3 #include "tree/hdr_ellenbintree_set.h"
4 #include <cds/container/ellen_bintree_set_ptb.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::PTB 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_ptb_less()
31 typedef cc::EllenBinTreeSet< gc_type, key_type, value_type,
32 cc::ellen_bintree::make_set_traits<
33 cc::ellen_bintree::key_extractor< key_extractor >
38 test<set_type, print_stat>();
41 void EllenBinTreeSetHdrTest::EllenBinTree_ptb_cmp()
43 typedef cc::EllenBinTreeSet< gc_type, key_type, value_type,
44 cc::ellen_bintree::make_set_traits<
45 cc::ellen_bintree::key_extractor< key_extractor >
46 ,co::compare< compare >
50 test<set_type, print_stat>();
53 void EllenBinTreeSetHdrTest::EllenBinTree_ptb_cmpless()
55 typedef cc::EllenBinTreeSet< gc_type, key_type, value_type,
56 cc::ellen_bintree::make_set_traits<
57 cc::ellen_bintree::key_extractor< key_extractor >
58 ,co::compare< compare >
63 test<set_type, print_stat>();
66 void EllenBinTreeSetHdrTest::EllenBinTree_ptb_less_ic()
68 typedef cc::EllenBinTreeSet< gc_type, key_type, value_type,
69 cc::ellen_bintree::make_set_traits<
70 cc::ellen_bintree::key_extractor< key_extractor >
72 ,co::item_counter< cds::atomicity::item_counter >
76 test<set_type, print_stat>();
79 void EllenBinTreeSetHdrTest::EllenBinTree_ptb_cmp_ic()
81 typedef cc::EllenBinTreeSet< gc_type, key_type, value_type,
82 cc::ellen_bintree::make_set_traits<
83 cc::ellen_bintree::key_extractor< key_extractor >
84 ,co::item_counter< cds::atomicity::item_counter >
85 ,co::compare< compare >
89 test<set_type, print_stat>();
92 void EllenBinTreeSetHdrTest::EllenBinTree_ptb_less_stat()
94 typedef cc::EllenBinTreeSet< gc_type, key_type, value_type,
95 cc::ellen_bintree::make_set_traits<
96 cc::ellen_bintree::key_extractor< key_extractor >
98 ,co::stat< cc::ellen_bintree::stat<> >
102 test<set_type, print_stat>();
105 void EllenBinTreeSetHdrTest::EllenBinTree_ptb_cmp_ic_stat()
107 typedef cc::EllenBinTreeSet< gc_type, key_type, value_type,
108 cc::ellen_bintree::make_set_traits<
109 cc::ellen_bintree::key_extractor< key_extractor >
110 ,co::item_counter< cds::atomicity::item_counter >
111 ,co::stat< cc::ellen_bintree::stat<> >
112 ,co::compare< compare >
116 test<set_type, print_stat>();
119 void EllenBinTreeSetHdrTest::EllenBinTree_ptb_less_pool()
121 typedef cc::EllenBinTreeSet< gc_type, key_type, value_type,
122 cc::ellen_bintree::make_set_traits<
123 cc::ellen_bintree::key_extractor< key_extractor >
125 ,co::node_allocator< cds::memory::pool_allocator< tree_internal_node, ellen_bintree_dhp::internal_node_pool_accessor > >
126 ,cc::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< tree_update_desc, ellen_bintree_dhp::update_desc_pool_accessor > >
130 test<set_type, print_stat>();
133 void EllenBinTreeSetHdrTest::EllenBinTree_ptb_less_pool_ic_stat()
135 typedef cc::EllenBinTreeSet< gc_type, key_type, value_type,
136 cc::ellen_bintree::make_set_traits<
137 cc::ellen_bintree::key_extractor< key_extractor >
139 ,co::node_allocator< cds::memory::pool_allocator< tree_internal_node, ellen_bintree_dhp::internal_node_pool_accessor > >
140 ,cc::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< tree_update_desc, ellen_bintree_dhp::update_desc_pool_accessor > >
141 ,co::item_counter< cds::atomicity::item_counter >
142 ,co::stat< cc::ellen_bintree::stat<> >
146 test<set_type, print_stat>();