3 #include "ordered_list/hdr_intrusive_michael.h"
4 #include <cds/intrusive/michael_list_nogc.h>
7 void IntrusiveMichaelListHeaderTest::nogc_base_cmp()
9 typedef base_int_item< cds::gc::nogc > item;
10 struct traits : public ci::michael_list::traits
12 typedef ci::michael_list::base_hook< co::gc<cds::gc::nogc> > hook;
13 typedef cmp<item> compare;
14 typedef faked_disposer disposer;
16 typedef ci::MichaelList< cds::gc::nogc, item, traits > list;
17 test_nogc_int<list>();
19 void IntrusiveMichaelListHeaderTest::nogc_base_less()
21 typedef base_int_item< cds::gc::nogc > item;
22 struct traits : public ci::michael_list::traits
24 typedef ci::michael_list::base_hook< co::gc<cds::gc::nogc> > hook;
25 typedef IntrusiveMichaelListHeaderTest::less<item> less;
26 typedef faked_disposer disposer;
28 typedef ci::MichaelList< cds::gc::nogc, item, traits > list;
29 test_nogc_int<list>();
31 void IntrusiveMichaelListHeaderTest::nogc_base_cmpmix()
33 typedef base_int_item< cds::gc::nogc > item;
34 typedef ci::MichaelList< cds::gc::nogc
36 ,ci::michael_list::make_traits<
37 ci::opt::hook< ci::michael_list::base_hook< co::gc<cds::gc::nogc> > >
38 ,co::less< less<item> >
39 ,co::compare< cmp<item> >
40 ,ci::opt::disposer< faked_disposer >
43 test_nogc_int<list>();
45 void IntrusiveMichaelListHeaderTest::nogc_base_ic()
47 typedef base_int_item< cds::gc::nogc > item;
48 typedef ci::MichaelList< cds::gc::nogc
50 ,ci::michael_list::make_traits<
51 ci::opt::hook< ci::michael_list::base_hook< co::gc<cds::gc::nogc> > >
52 ,co::less< less<item> >
53 ,co::compare< cmp<item> >
54 ,ci::opt::disposer< faked_disposer >
55 ,co::item_counter< cds::atomicity::item_counter >
58 test_nogc_int<list>();
60 void IntrusiveMichaelListHeaderTest::nogc_member_cmp()
62 typedef member_int_item< cds::gc::nogc > item;
63 typedef ci::MichaelList< cds::gc::nogc
65 ,ci::michael_list::make_traits<
66 ci::opt::hook< ci::michael_list::member_hook<
67 offsetof( item, hMember ),
70 ,co::compare< cmp<item> >
71 ,ci::opt::disposer< faked_disposer >
74 test_nogc_int<list>();
76 void IntrusiveMichaelListHeaderTest::nogc_member_less()
78 typedef member_int_item< cds::gc::nogc > item;
79 typedef ci::MichaelList< cds::gc::nogc
81 ,ci::michael_list::make_traits<
82 ci::opt::hook< ci::michael_list::member_hook<
83 offsetof( item, hMember ),
86 ,co::less< less<item> >
87 ,ci::opt::disposer< faked_disposer >
90 test_nogc_int<list>();
92 void IntrusiveMichaelListHeaderTest::nogc_member_cmpmix()
94 typedef member_int_item< cds::gc::nogc > item;
95 typedef ci::MichaelList< cds::gc::nogc
97 ,ci::michael_list::make_traits<
98 ci::opt::hook< ci::michael_list::member_hook<
99 offsetof( item, hMember ),
100 co::gc<cds::gc::nogc>
102 ,co::less< less<item> >
103 ,co::compare< cmp<item> >
104 ,ci::opt::disposer< faked_disposer >
107 test_nogc_int<list>();
109 void IntrusiveMichaelListHeaderTest::nogc_member_ic()
111 typedef member_int_item< cds::gc::nogc > item;
112 typedef ci::MichaelList< cds::gc::nogc
114 ,ci::michael_list::make_traits<
115 ci::opt::hook< ci::michael_list::member_hook<
116 offsetof( item, hMember ),
117 co::gc<cds::gc::nogc>
119 ,co::compare< cmp<item> >
120 ,ci::opt::disposer< faked_disposer >
121 ,co::item_counter< cds::atomicity::item_counter >
124 test_nogc_int<list>();
127 } // namespace ordlist