Removed trailing whitespaces
[libcds.git] / tests / test-hdr / tree / hdr_bronson_avltree_map_rcu_sht_pool_monitor.cpp
1 //$$CDS-header$$
2
3 #include "tree/hdr_bronson_avltree_map.h"
4 #include <cds/urcu/signal_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 namespace tree {
13 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
14     namespace cc = cds::container;
15     namespace co = cds::opt;
16     namespace {
17         typedef cds::urcu::gc< cds::urcu::signal_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 #endif
33
34     void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_pool_monitor_less()
35     {
36 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
37         struct traits: public
38             cc::bronson_avltree::make_traits<
39                 co::less< std::less<key_type> >
40                 ,co::sync_monitor< cds::sync::pool_monitor<simple_pool> >
41             >::type
42         {};
43         typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
44         test<map_type, print_stat>();
45 #endif
46     }
47
48     void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_pool_monitor_less_stat()
49     {
50 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
51         struct traits: public
52             cc::bronson_avltree::make_traits<
53                 co::less< std::less<key_type> >
54                 ,co::stat< cc::bronson_avltree::stat<> >
55                 ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
56                 ,cc::bronson_avltree::relaxed_insert< false >
57             >::type
58         {};
59         typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
60         test<map_type, print_stat>();
61 #endif
62     }
63
64     void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_pool_monitor_cmp_ic_stat()
65     {
66 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
67         struct traits: public
68             cc::bronson_avltree::make_traits<
69                 co::compare< compare >
70                 ,co::item_counter< cds::atomicity::item_counter >
71                 ,co::stat< cc::bronson_avltree::stat<> >
72                 ,co::sync_monitor< cds::sync::pool_monitor<bounded_pool> >
73             >::type
74         {};
75         typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
76         test<map_type, print_stat>();
77 #endif
78     }
79
80     void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_pool_monitor_cmp_ic_stat_yield()
81     {
82 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
83         struct traits: public
84             cc::bronson_avltree::make_traits<
85                 co::compare< compare >
86                 ,co::item_counter< cds::atomicity::item_counter >
87                 ,co::stat< cc::bronson_avltree::stat<> >
88                 ,co::back_off< cds::backoff::yield >
89                 ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
90             >::type
91         {};
92         typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
93         test<map_type, print_stat>();
94 #endif
95     }
96
97     void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_pool_monitor_less_relaxed_insert()
98     {
99 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
100         struct traits: public
101             cc::bronson_avltree::make_traits<
102                 co::less< std::less<key_type> >
103                 ,cc::bronson_avltree::relaxed_insert< true >
104                 ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
105             >::type
106         {};
107         typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
108         test<map_type, print_stat>();
109 #endif
110     }
111
112     void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_pool_monitor_less_relaxed_insert_stat()
113     {
114 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
115         struct traits: public
116             cc::bronson_avltree::make_traits<
117                 co::less< std::less<key_type> >
118                 ,co::stat< cc::bronson_avltree::stat<> >
119                 ,cc::bronson_avltree::relaxed_insert< true >
120                 ,co::sync_monitor< cds::sync::pool_monitor<simple_pool> >
121             >::type
122         {};
123         typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
124         test<map_type, print_stat>();
125 #endif
126     }
127 } // namespace tree