3 #include "tree/hdr_ellenbintree_map.h"
4 #include <cds/container/ellen_bintree_map_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::map_node<gc_type, EllenBinTreeMapHdrTest::key_type, EllenBinTreeMapHdrTest::value_type> tree_leaf_node;
16 typedef cc::ellen_bintree::internal_node< EllenBinTreeMapHdrTest::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 EllenBinTreeMapHdrTest::EllenBinTree_ptb_less()
31 typedef cc::EllenBinTreeMap< gc_type, key_type, value_type,
32 cc::ellen_bintree::make_map_traits<
37 test<set_type, print_stat>();
40 void EllenBinTreeMapHdrTest::EllenBinTree_ptb_cmp()
42 typedef cc::EllenBinTreeMap< gc_type, key_type, value_type,
43 cc::ellen_bintree::make_map_traits<
44 co::compare< compare >
48 test<set_type, print_stat>();
51 void EllenBinTreeMapHdrTest::EllenBinTree_ptb_cmpless()
53 typedef cc::EllenBinTreeMap< gc_type, key_type, value_type,
54 cc::ellen_bintree::make_map_traits<
55 co::compare< compare >
60 test<set_type, print_stat>();
63 void EllenBinTreeMapHdrTest::EllenBinTree_ptb_less_ic()
65 typedef cc::EllenBinTreeMap< gc_type, key_type, value_type,
66 cc::ellen_bintree::make_map_traits<
68 ,co::item_counter< cds::atomicity::item_counter >
72 test<set_type, print_stat>();
75 void EllenBinTreeMapHdrTest::EllenBinTree_ptb_cmp_ic()
77 typedef cc::EllenBinTreeMap< gc_type, key_type, value_type,
78 cc::ellen_bintree::make_map_traits<
79 co::item_counter< cds::atomicity::item_counter >
80 ,co::compare< compare >
84 test<set_type, print_stat>();
87 void EllenBinTreeMapHdrTest::EllenBinTree_ptb_less_stat()
89 typedef cc::EllenBinTreeMap< gc_type, key_type, value_type,
90 cc::ellen_bintree::make_map_traits<
92 ,co::stat< cc::ellen_bintree::stat<> >
96 test<set_type, print_stat>();
99 void EllenBinTreeMapHdrTest::EllenBinTree_ptb_cmp_ic_stat()
101 typedef cc::EllenBinTreeMap< gc_type, key_type, value_type,
102 cc::ellen_bintree::make_map_traits<
103 co::item_counter< cds::atomicity::item_counter >
104 ,co::stat< cc::ellen_bintree::stat<> >
105 ,co::compare< compare >
109 test<set_type, print_stat>();
112 void EllenBinTreeMapHdrTest::EllenBinTree_ptb_less_pool()
114 typedef cc::EllenBinTreeMap< gc_type, key_type, value_type,
115 cc::ellen_bintree::make_map_traits<
117 ,co::node_allocator< cds::memory::pool_allocator< tree_internal_node, ellen_bintree_dhp::internal_node_pool_accessor > >
118 ,cc::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< tree_update_desc, ellen_bintree_dhp::update_desc_pool_accessor > >
122 test<set_type, print_stat>();
125 void EllenBinTreeMapHdrTest::EllenBinTree_ptb_less_pool_ic_stat()
127 typedef cc::EllenBinTreeMap< gc_type, key_type, value_type,
128 cc::ellen_bintree::make_map_traits<
130 ,co::node_allocator< cds::memory::pool_allocator< tree_internal_node, ellen_bintree_dhp::internal_node_pool_accessor > >
131 ,cc::ellen_bintree::update_desc_allocator< cds::memory::pool_allocator< tree_update_desc, ellen_bintree_dhp::update_desc_pool_accessor > >
132 ,co::item_counter< cds::atomicity::item_counter >
133 ,co::stat< cc::ellen_bintree::stat<> >
137 test<set_type, print_stat>();