3 #include "set/hdr_intrusive_skiplist_set.h"
5 #include <cds/intrusive/skip_list_hp.h>
6 #include "map/print_skiplist_stat.h"
9 void IntrusiveSkipListSet::skiplist_hp_member_cmp()
11 typedef member_int_item< ci::skip_list::node< cds::gc::HP> > item;
13 typedef ci::SkipListSet< cds::gc::HP, item,
14 ci::skip_list::make_traits<
15 ci::opt::hook< ci::skip_list::member_hook< offsetof(item, hMember), co::gc<cds::gc::HP> > >
16 ,co::compare< cmp<item> >
17 ,ci::opt::disposer< faked_disposer >
18 ,co::item_counter< cds::atomicity::item_counter >
22 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
25 void IntrusiveSkipListSet::skiplist_hp_member_less()
27 typedef member_int_item< ci::skip_list::node< cds::gc::HP> > item;
29 typedef ci::SkipListSet< cds::gc::HP, item,
30 ci::skip_list::make_traits<
31 ci::opt::hook< ci::skip_list::member_hook< offsetof(item, hMember), co::gc<cds::gc::HP> > >
32 ,co::less< less<item> >
33 ,ci::opt::disposer< faked_disposer >
34 ,co::item_counter< cds::atomicity::item_counter >
38 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
41 void IntrusiveSkipListSet::skiplist_hp_member_cmpmix()
43 typedef member_int_item< ci::skip_list::node< cds::gc::HP> > item;
45 typedef ci::SkipListSet< cds::gc::HP, item,
46 ci::skip_list::make_traits<
47 ci::opt::hook< ci::skip_list::member_hook< offsetof(item, hMember), co::gc<cds::gc::HP> > >
48 ,co::less< less<item> >
49 ,ci::opt::disposer< faked_disposer >
50 ,co::compare< cmp<item> >
51 ,co::item_counter< cds::atomicity::item_counter >
55 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
58 void IntrusiveSkipListSet::skiplist_hp_member_cmp_stat()
60 typedef member_int_item< ci::skip_list::node< cds::gc::HP> > item;
62 typedef ci::SkipListSet< cds::gc::HP, item,
63 ci::skip_list::make_traits<
64 ci::opt::hook< ci::skip_list::member_hook< offsetof(item, hMember), co::gc<cds::gc::HP> > >
65 ,co::compare< cmp<item> >
66 ,ci::opt::disposer< faked_disposer >
67 ,co::stat< ci::skip_list::stat<> >
68 ,co::item_counter< cds::atomicity::item_counter >
72 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
75 void IntrusiveSkipListSet::skiplist_hp_member_less_stat()
77 typedef member_int_item< ci::skip_list::node< cds::gc::HP> > item;
79 typedef ci::SkipListSet< cds::gc::HP, item,
80 ci::skip_list::make_traits<
81 ci::opt::hook< ci::skip_list::member_hook< offsetof(item, hMember), co::gc<cds::gc::HP> > >
82 ,co::less< less<item> >
83 ,ci::opt::disposer< faked_disposer >
84 ,co::stat< ci::skip_list::stat<> >
85 ,co::item_counter< cds::atomicity::item_counter >
89 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
92 void IntrusiveSkipListSet::skiplist_hp_member_cmpmix_stat()
94 typedef member_int_item< ci::skip_list::node< cds::gc::HP> > item;
96 typedef ci::SkipListSet< cds::gc::HP, item,
97 ci::skip_list::make_traits<
98 ci::opt::hook< ci::skip_list::member_hook< offsetof(item, hMember), co::gc<cds::gc::HP> > >
99 ,co::less< less<item> >
100 ,ci::opt::disposer< faked_disposer >
101 ,co::compare< cmp<item> >
102 ,co::stat< ci::skip_list::stat<> >
103 ,co::item_counter< cds::atomicity::item_counter >
107 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
110 void IntrusiveSkipListSet::skiplist_hp_member_cmp_xorshift()
112 typedef member_int_item< ci::skip_list::node< cds::gc::HP> > item;
114 typedef ci::SkipListSet< cds::gc::HP, item,
115 ci::skip_list::make_traits<
116 ci::opt::hook< ci::skip_list::member_hook< offsetof(item, hMember), co::gc<cds::gc::HP> > >
117 ,co::compare< cmp<item> >
118 ,ci::opt::disposer< faked_disposer >
119 ,ci::skip_list::random_level_generator< ci::skip_list::xorshift >
120 ,co::item_counter< cds::atomicity::item_counter >
124 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
127 void IntrusiveSkipListSet::skiplist_hp_member_less_xorshift()
129 typedef member_int_item< ci::skip_list::node< cds::gc::HP> > item;
131 typedef ci::SkipListSet< cds::gc::HP, item,
132 ci::skip_list::make_traits<
133 ci::opt::hook< ci::skip_list::member_hook< offsetof(item, hMember), co::gc<cds::gc::HP> > >
134 ,co::less< less<item> >
135 ,co::item_counter< cds::atomicity::item_counter >
136 ,ci::opt::disposer< faked_disposer >
137 ,ci::skip_list::random_level_generator< ci::skip_list::xorshift >
141 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
144 void IntrusiveSkipListSet::skiplist_hp_member_cmpmix_xorshift()
146 typedef member_int_item< ci::skip_list::node< cds::gc::HP> > item;
148 typedef ci::SkipListSet< cds::gc::HP, item,
149 ci::skip_list::make_traits<
150 ci::opt::hook< ci::skip_list::member_hook< offsetof(item, hMember), co::gc<cds::gc::HP> > >
151 ,co::less< less<item> >
152 ,ci::opt::disposer< faked_disposer >
153 ,co::compare< cmp<item> >
154 ,co::item_counter< cds::atomicity::item_counter >
155 ,ci::skip_list::random_level_generator< ci::skip_list::xorshift >
159 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
162 void IntrusiveSkipListSet::skiplist_hp_member_cmp_xorshift_stat()
164 typedef member_int_item< ci::skip_list::node< cds::gc::HP> > item;
166 typedef ci::SkipListSet< cds::gc::HP, item,
167 ci::skip_list::make_traits<
168 ci::opt::hook< ci::skip_list::member_hook< offsetof(item, hMember), co::gc<cds::gc::HP> > >
169 ,co::compare< cmp<item> >
170 ,ci::opt::disposer< faked_disposer >
171 ,ci::skip_list::random_level_generator< ci::skip_list::xorshift >
172 ,co::stat< ci::skip_list::stat<> >
173 ,co::item_counter< cds::atomicity::item_counter >
177 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
180 void IntrusiveSkipListSet::skiplist_hp_member_less_xorshift_stat()
182 typedef member_int_item< ci::skip_list::node< cds::gc::HP> > item;
184 typedef ci::SkipListSet< cds::gc::HP, item,
185 ci::skip_list::make_traits<
186 ci::opt::hook< ci::skip_list::member_hook< offsetof(item, hMember), co::gc<cds::gc::HP> > >
187 ,co::less< less<item> >
188 ,ci::opt::disposer< faked_disposer >
189 ,ci::skip_list::random_level_generator< ci::skip_list::xorshift >
190 ,co::stat< ci::skip_list::stat<> >
191 ,co::item_counter< cds::atomicity::item_counter >
195 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
198 void IntrusiveSkipListSet::skiplist_hp_member_cmpmix_xorshift_stat()
200 typedef member_int_item< ci::skip_list::node< cds::gc::HP> > item;
202 typedef ci::SkipListSet< cds::gc::HP, item,
203 ci::skip_list::make_traits<
204 ci::opt::hook< ci::skip_list::member_hook< offsetof(item, hMember), co::gc<cds::gc::HP> > >
205 ,co::less< less<item> >
206 ,ci::opt::disposer< faked_disposer >
207 ,co::compare< cmp<item> >
208 ,co::item_counter< cds::atomicity::item_counter >
209 ,ci::skip_list::random_level_generator< ci::skip_list::xorshift >
210 ,co::stat< ci::skip_list::stat<> >
214 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
218 void IntrusiveSkipListSet::skiplist_hp_member_cmp_pascal()
220 typedef member_int_item< ci::skip_list::node< cds::gc::HP> > item;
222 typedef ci::SkipListSet< cds::gc::HP, item,
223 ci::skip_list::make_traits<
224 ci::opt::hook< ci::skip_list::member_hook< offsetof(item, hMember), co::gc<cds::gc::HP> > >
225 ,co::compare< cmp<item> >
226 ,co::item_counter< cds::atomicity::item_counter >
227 ,ci::opt::disposer< faked_disposer >
228 ,ci::skip_list::random_level_generator< ci::skip_list::turbo_pascal >
232 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
235 void IntrusiveSkipListSet::skiplist_hp_member_less_pascal()
237 typedef member_int_item< ci::skip_list::node< cds::gc::HP> > item;
239 typedef ci::SkipListSet< cds::gc::HP, item,
240 ci::skip_list::make_traits<
241 ci::opt::hook< ci::skip_list::member_hook< offsetof(item, hMember), co::gc<cds::gc::HP> > >
242 ,co::less< less<item> >
243 ,ci::opt::disposer< faked_disposer >
244 ,co::item_counter< cds::atomicity::item_counter >
245 ,ci::skip_list::random_level_generator< ci::skip_list::turbo_pascal >
249 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
252 void IntrusiveSkipListSet::skiplist_hp_member_cmpmix_pascal()
254 typedef member_int_item< ci::skip_list::node< cds::gc::HP> > item;
256 typedef ci::SkipListSet< cds::gc::HP, item,
257 ci::skip_list::make_traits<
258 ci::opt::hook< ci::skip_list::member_hook< offsetof(item, hMember), co::gc<cds::gc::HP> > >
259 ,co::less< less<item> >
260 ,ci::opt::disposer< faked_disposer >
261 ,co::item_counter< cds::atomicity::item_counter >
262 ,co::compare< cmp<item> >
263 ,ci::skip_list::random_level_generator< ci::skip_list::turbo_pascal >
267 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
270 void IntrusiveSkipListSet::skiplist_hp_member_cmp_pascal_stat()
272 typedef member_int_item< ci::skip_list::node< cds::gc::HP> > item;
274 typedef ci::SkipListSet< cds::gc::HP, item,
275 ci::skip_list::make_traits<
276 ci::opt::hook< ci::skip_list::member_hook< offsetof(item, hMember), co::gc<cds::gc::HP> > >
277 ,co::compare< cmp<item> >
278 ,co::item_counter< cds::atomicity::item_counter >
279 ,ci::opt::disposer< faked_disposer >
280 ,ci::skip_list::random_level_generator< ci::skip_list::turbo_pascal >
281 ,co::stat< ci::skip_list::stat<> >
285 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
288 void IntrusiveSkipListSet::skiplist_hp_member_less_pascal_stat()
290 typedef member_int_item< ci::skip_list::node< cds::gc::HP> > item;
292 typedef ci::SkipListSet< cds::gc::HP, item,
293 ci::skip_list::make_traits<
294 ci::opt::hook< ci::skip_list::member_hook< offsetof(item, hMember), co::gc<cds::gc::HP> > >
295 ,co::less< less<item> >
296 ,ci::opt::disposer< faked_disposer >
297 ,ci::skip_list::random_level_generator< ci::skip_list::turbo_pascal >
298 ,co::stat< ci::skip_list::stat<> >
299 ,co::item_counter< cds::atomicity::item_counter >
303 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
306 void IntrusiveSkipListSet::skiplist_hp_member_cmpmix_pascal_stat()
308 typedef member_int_item< ci::skip_list::node< cds::gc::HP> > item;
310 typedef ci::SkipListSet< cds::gc::HP, item,
311 ci::skip_list::make_traits<
312 ci::opt::hook< ci::skip_list::member_hook< offsetof(item, hMember), co::gc<cds::gc::HP> > >
313 ,co::less< less<item> >
314 ,ci::opt::disposer< faked_disposer >
315 ,co::compare< cmp<item> >
316 ,ci::skip_list::random_level_generator< ci::skip_list::turbo_pascal >
317 ,co::stat< ci::skip_list::stat<> >
318 ,co::item_counter< cds::atomicity::item_counter >
322 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();