3 #include "tree/hdr_bronson_avltree_map.h"
4 #include <cds/urcu/general_threaded.h>
5 #include <cds/container/bronson_avltree_map_rcu.h>
7 #include "unit/print_bronsonavltree_stat.h"
10 namespace cc = cds::container;
11 namespace co = cds::opt;
13 typedef cds::urcu::gc< cds::urcu::general_threaded<> > rcu_type;
16 template <typename Tree>
17 void operator()( Tree const& t )
19 std::cout << t.statistics();
24 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_less()
27 cc::bronson_avltree::make_traits<
28 co::less< std::less<key_type> >
29 ,cc::bronson_avltree::relaxed_insert< false >
32 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
33 test<map_type, print_stat>();
36 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_less_stat()
39 cc::bronson_avltree::make_traits<
40 co::less< std::less<key_type> >
41 ,co::stat< cc::bronson_avltree::stat<> >
42 ,cc::bronson_avltree::relaxed_insert< false >
45 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
46 test<map_type, print_stat>();
49 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_cmp()
52 cc::bronson_avltree::make_traits<
53 co::compare< compare >
56 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
57 test<map_type, print_stat>();
60 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_cmp_stat()
63 cc::bronson_avltree::make_traits<
64 co::compare< compare >
65 ,co::stat< cc::bronson_avltree::stat<> >
68 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
69 test<map_type, print_stat>();
72 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_cmpless()
75 cc::bronson_avltree::make_traits<
76 co::compare< compare >
77 ,co::less< std::less<key_type> >
80 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
81 test<map_type, print_stat>();
84 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_less_ic()
87 cc::bronson_avltree::make_traits<
88 co::less< std::less<key_type> >
89 ,co::item_counter< cds::atomicity::item_counter >
92 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
93 test<map_type, print_stat>();
96 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_cmp_ic()
99 cc::bronson_avltree::make_traits<
100 co::compare< compare >
101 ,co::item_counter< cds::atomicity::item_counter >
104 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
105 test<map_type, print_stat>();
108 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_cmp_ic_stat()
110 struct traits: public
111 cc::bronson_avltree::make_traits<
112 co::compare< compare >
113 ,co::item_counter< cds::atomicity::item_counter >
114 ,co::stat< cc::bronson_avltree::stat<> >
117 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
118 test<map_type, print_stat>();
121 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_cmp_ic_stat_yield()
123 struct traits: public
124 cc::bronson_avltree::make_traits<
125 co::compare< compare >
126 ,co::item_counter< cds::atomicity::item_counter >
127 ,co::stat< cc::bronson_avltree::stat<> >
128 ,co::back_off< cds::backoff::yield >
131 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
132 test<map_type, print_stat>();
135 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_less_relaxed_insert()
137 struct traits: public
138 cc::bronson_avltree::make_traits<
139 co::less< std::less<key_type> >
140 ,cc::bronson_avltree::relaxed_insert< true >
143 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
144 test<map_type, print_stat>();
147 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_less_relaxed_insert_stat()
149 struct traits: public
150 cc::bronson_avltree::make_traits<
151 co::less< std::less<key_type> >
152 ,co::stat< cc::bronson_avltree::stat<> >
153 ,cc::bronson_avltree::relaxed_insert< true >
156 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
157 test<map_type, print_stat>();