3 #include "set/hdr_intrusive_set.h"
4 #include <cds/urcu/general_buffered.h>
5 #include <cds/intrusive/michael_list_rcu.h>
6 #include <cds/intrusive/michael_set_rcu.h>
11 typedef cds::urcu::gc< cds::urcu::general_buffered<> > RCU;
14 void IntrusiveHashSetHdrTest::RCU_GPB_base_cmp()
16 typedef base_int_item< ci::michael_list::node<RCU> > item;
17 typedef ci::MichaelList< RCU
19 ,ci::michael_list::make_traits<
20 ci::opt::hook< ci::michael_list::base_hook< co::gc<RCU> > >
21 ,co::compare< cmp<item> >
22 ,ci::opt::disposer< faked_disposer >
26 typedef ci::MichaelHashSet< RCU, bucket_type,
27 ci::michael_set::make_traits<
35 void IntrusiveHashSetHdrTest::RCU_GPB_base_less()
37 typedef base_int_item< ci::michael_list::node<RCU> > item;
38 typedef ci::MichaelList< RCU
40 ,ci::michael_list::make_traits<
41 ci::opt::hook< ci::michael_list::base_hook< co::gc<RCU> > >
42 ,co::less< less<item> >
43 ,ci::opt::disposer< faked_disposer >
47 typedef ci::MichaelHashSet< RCU, bucket_type,
48 ci::michael_set::make_traits<
56 void IntrusiveHashSetHdrTest::RCU_GPB_base_cmpmix()
58 typedef base_int_item< ci::michael_list::node<RCU> > item;
59 typedef ci::MichaelList< RCU
61 ,ci::michael_list::make_traits<
62 ci::opt::hook< ci::michael_list::base_hook< co::gc<RCU> > >
63 ,co::less< less<item> >
64 ,co::compare< cmp<item> >
65 ,ci::opt::disposer< faked_disposer >
69 typedef ci::MichaelHashSet< RCU, bucket_type,
70 ci::michael_set::make_traits<
72 ,co::item_counter< simple_item_counter >
79 void IntrusiveHashSetHdrTest::RCU_GPB_member_cmp()
81 typedef member_int_item< ci::michael_list::node<RCU> > item;
82 typedef ci::MichaelList< RCU
84 ,ci::michael_list::make_traits<
85 ci::opt::hook< ci::michael_list::member_hook<
86 offsetof( item, hMember ),
89 ,co::compare< cmp<item> >
90 ,ci::opt::disposer< faked_disposer >
94 typedef ci::MichaelHashSet< RCU, bucket_type,
95 ci::michael_set::make_traits<
103 void IntrusiveHashSetHdrTest::RCU_GPB_member_less()
105 typedef member_int_item< ci::michael_list::node<RCU> > item;
106 typedef ci::MichaelList< RCU
108 ,ci::michael_list::make_traits<
109 ci::opt::hook< ci::michael_list::member_hook<
110 offsetof( item, hMember ),
113 ,co::less< less<item> >
114 ,ci::opt::disposer< faked_disposer >
118 typedef ci::MichaelHashSet< RCU, bucket_type,
119 ci::michael_set::make_traits<
127 void IntrusiveHashSetHdrTest::RCU_GPB_member_cmpmix()
129 typedef member_int_item< ci::michael_list::node<RCU> > item;
130 typedef ci::MichaelList< RCU
132 ,ci::michael_list::make_traits<
133 ci::opt::hook< ci::michael_list::member_hook<
134 offsetof( item, hMember ),
137 ,co::compare< cmp<item> >
138 ,co::less< less<item> >
139 ,ci::opt::disposer< faked_disposer >
143 typedef ci::MichaelHashSet< RCU, bucket_type,
144 ci::michael_set::make_traits<
146 ,co::item_counter< simple_item_counter >