Removed trailing whitespaces
[libcds.git] / tests / test-hdr / tree / hdr_bronson_avltree_map_rcu_gpt_pool_monitor.cpp
1 //$$CDS-header$$
2
3 #include "tree/hdr_bronson_avltree_map.h"
4 #include <cds/urcu/general_threaded.h>
5 #include <cds/container/bronson_avltree_map_rcu.h>
6 #include <cds/sync/pool_monitor.h>
7 #include <cds/memory/vyukov_queue_pool.h>
8
9 #include "unit/print_bronsonavltree_stat.h"
10 #include "unit/print_sync_monitor_stat.h"
11
12
13 namespace tree {
14     namespace cc = cds::container;
15     namespace co = cds::opt;
16     namespace {
17         typedef cds::urcu::gc< cds::urcu::general_threaded<> > rcu_type;
18
19         struct print_stat {
20             template <typename Tree>
21             void operator()( Tree const& t )
22             {
23                 std::cout << t.statistics();
24                 std::cout << t.monitor().statistics();
25             }
26         };
27
28         typedef cds::memory::vyukov_queue_pool< std::mutex > simple_pool;
29         typedef cds::memory::lazy_vyukov_queue_pool< std::mutex > lazy_pool;
30         typedef cds::memory::bounded_vyukov_queue_pool< std::mutex > bounded_pool;
31     } // namespace
32
33     void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_pool_monitor_less()
34     {
35         struct traits: public
36             cc::bronson_avltree::make_traits<
37                 co::less< std::less<key_type> >
38                 ,co::sync_monitor< cds::sync::pool_monitor<simple_pool> >
39             >::type
40         {};
41         typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
42         test<map_type, print_stat>();
43     }
44
45     void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_pool_monitor_less_stat()
46     {
47         struct traits: public
48             cc::bronson_avltree::make_traits<
49                 co::less< std::less<key_type> >
50                 ,co::stat< cc::bronson_avltree::stat<> >
51                 ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
52                 ,cc::bronson_avltree::relaxed_insert< false >
53             >::type
54         {};
55         typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
56         test<map_type, print_stat>();
57     }
58
59         void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_pool_monitor_cmp_ic_stat()
60     {
61         struct traits: public
62             cc::bronson_avltree::make_traits<
63                 co::compare< compare >
64                 ,co::item_counter< cds::atomicity::item_counter >
65                 ,co::stat< cc::bronson_avltree::stat<> >
66                 ,co::sync_monitor< cds::sync::pool_monitor<bounded_pool> >
67             >::type
68         {};
69         typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
70         test<map_type, print_stat>();
71     }
72
73     void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_pool_monitor_cmp_ic_stat_yield()
74     {
75         struct traits: public
76             cc::bronson_avltree::make_traits<
77                 co::compare< compare >
78                 ,co::item_counter< cds::atomicity::item_counter >
79                 ,co::stat< cc::bronson_avltree::stat<> >
80                 ,co::back_off< cds::backoff::yield >
81                 ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
82             >::type
83         {};
84         typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
85         test<map_type, print_stat>();
86     }
87
88     void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_pool_monitor_less_relaxed_insert()
89     {
90         struct traits: public
91             cc::bronson_avltree::make_traits<
92                 co::less< std::less<key_type> >
93                 ,cc::bronson_avltree::relaxed_insert< true >
94                 ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
95             >::type
96         {};
97         typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
98         test<map_type, print_stat>();
99     }
100
101     void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_pool_monitor_less_relaxed_insert_stat()
102     {
103         struct traits: public
104             cc::bronson_avltree::make_traits<
105                 co::less< std::less<key_type> >
106                 ,co::stat< cc::bronson_avltree::stat<> >
107                 ,cc::bronson_avltree::relaxed_insert< true >
108                 ,co::sync_monitor< cds::sync::pool_monitor<simple_pool> >
109             >::type
110         {};
111         typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
112         test<map_type, print_stat>();
113     }
114
115 } // namespace tree