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