3 #include "ordered_list/hdr_intrusive_lazy.h"
4 #include <cds/urcu/general_buffered.h>
5 #include <cds/intrusive/lazy_list_rcu.h>
9 typedef cds::urcu::gc< cds::urcu::general_buffered<> > RCU;
12 void IntrusiveLazyListHeaderTest::RCU_GPB_base_cmp()
14 typedef base_int_item< RCU > item;
15 typedef ci::lazy_list::make_traits<
16 ci::opt::hook< ci::lazy_list::base_hook< co::gc<RCU> > >
17 ,co::compare< cmp<item> >
18 ,ci::opt::disposer< faked_disposer >
20 typedef ci::LazyList< RCU, item, list_traits > list;
24 void IntrusiveLazyListHeaderTest::RCU_GPB_base_less()
26 typedef base_int_item< RCU > item;
27 typedef ci::LazyList< RCU
29 ,ci::lazy_list::make_traits<
30 ci::opt::hook< ci::lazy_list::base_hook< co::gc<RCU> > >
31 ,co::less< less<item> >
32 ,ci::opt::disposer< faked_disposer >
37 void IntrusiveLazyListHeaderTest::RCU_GPB_base_cmpmix()
39 typedef base_int_item< RCU > item;
40 typedef ci::LazyList< RCU
42 ,ci::lazy_list::make_traits<
43 ci::opt::hook< ci::lazy_list::base_hook< co::gc<RCU> > >
44 ,co::less< less<item> >
45 ,co::compare< cmp<item> >
46 ,ci::opt::disposer< faked_disposer >
51 void IntrusiveLazyListHeaderTest::RCU_GPB_base_ic()
53 typedef base_int_item< RCU > item;
54 typedef ci::LazyList< RCU
56 ,ci::lazy_list::make_traits<
57 ci::opt::hook< ci::lazy_list::base_hook< co::gc<RCU> > >
58 ,co::less< less<item> >
59 ,co::compare< cmp<item> >
60 ,ci::opt::disposer< faked_disposer >
61 ,co::item_counter< cds::atomicity::item_counter >
66 void IntrusiveLazyListHeaderTest::RCU_GPB_member_cmp()
68 typedef member_int_item< RCU > item;
69 typedef ci::LazyList< RCU
71 ,ci::lazy_list::make_traits<
72 ci::opt::hook< ci::lazy_list::member_hook<
73 offsetof( item, hMember ),
76 ,co::compare< cmp<item> >
77 ,ci::opt::disposer< faked_disposer >
82 void IntrusiveLazyListHeaderTest::RCU_GPB_member_less()
84 typedef member_int_item< RCU > item;
85 typedef ci::LazyList< RCU
87 ,ci::lazy_list::make_traits<
88 ci::opt::hook< ci::lazy_list::member_hook<
89 offsetof( item, hMember ),
92 ,co::less< less<item> >
93 ,ci::opt::disposer< faked_disposer >
98 void IntrusiveLazyListHeaderTest::RCU_GPB_member_cmpmix()
100 typedef member_int_item< RCU > item;
101 typedef ci::LazyList< RCU
103 ,ci::lazy_list::make_traits<
104 ci::opt::hook< ci::lazy_list::member_hook<
105 offsetof( item, hMember ),
108 ,co::less< less<item> >
109 ,co::compare< cmp<item> >
110 ,ci::opt::disposer< faked_disposer >
113 test_rcu_int<list>();
115 void IntrusiveLazyListHeaderTest::RCU_GPB_member_ic()
117 typedef member_int_item< RCU > item;
118 typedef ci::LazyList< RCU
120 ,ci::lazy_list::make_traits<
121 ci::opt::hook< ci::lazy_list::member_hook<
122 offsetof( item, hMember ),
125 ,co::compare< cmp<item> >
126 ,ci::opt::disposer< faked_disposer >
127 ,co::item_counter< cds::atomicity::item_counter >
130 test_rcu_int<list>();
132 } // namespace ordlist