intrusive::LazyList refactoring
[libcds.git] / tests / test-hdr / ordered_list / hdr_intrusive_lazy_dhp.cpp
1 //$$CDS-header$$
2
3 #include "ordered_list/hdr_intrusive_lazy.h"
4 #include <cds/intrusive/lazy_list_dhp.h>
5
6 namespace ordlist {
7     void IntrusiveLazyListHeaderTest::DHP_base_cmp()
8     {
9         typedef base_int_item< cds::gc::DHP > item;
10         struct traits : public ci::lazy_list::traits
11         {
12             typedef ci::lazy_list::base_hook< co::gc<cds::gc::DHP> > hook;
13             typedef cmp<item> compare;
14             typedef faked_disposer disposer;
15         };
16         typedef ci::LazyList< cds::gc::DHP, item, traits > list;
17         test_int<list>();
18     }
19     void IntrusiveLazyListHeaderTest::DHP_base_less()
20     {
21         typedef base_int_item< cds::gc::DHP > item;
22         typedef ci::LazyList< cds::gc::DHP
23             ,item
24             ,ci::lazy_list::make_traits<
25                 ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::DHP> > >
26                 ,co::less< less<item> >
27                 ,ci::opt::disposer< faked_disposer >
28             >::type
29         >    list;
30         test_int<list>();
31     }
32     void IntrusiveLazyListHeaderTest::DHP_base_cmpmix()
33     {
34         typedef base_int_item< cds::gc::DHP > item;
35         typedef ci::LazyList< cds::gc::DHP
36             ,item
37             ,ci::lazy_list::make_traits<
38                 ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::DHP> > >
39                 ,co::less< less<item> >
40                 ,co::compare< cmp<item> >
41                 ,ci::opt::disposer< faked_disposer >
42             >::type
43         >    list;
44         test_int<list>();
45     }
46     void IntrusiveLazyListHeaderTest::DHP_base_ic()
47     {
48         typedef base_int_item< cds::gc::DHP > item;
49         typedef ci::LazyList< cds::gc::DHP
50             ,item
51             ,ci::lazy_list::make_traits<
52                 ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::DHP> > >
53                 ,co::less< less<item> >
54                 ,co::compare< cmp<item> >
55                 ,ci::opt::disposer< faked_disposer >
56                 ,co::item_counter< cds::atomicity::item_counter >
57             >::type
58         >    list;
59         test_int<list>();
60     }
61     void IntrusiveLazyListHeaderTest::DHP_member_cmp()
62     {
63         typedef member_int_item< cds::gc::DHP > item;
64         typedef ci::LazyList< cds::gc::DHP
65             ,item
66             ,ci::lazy_list::make_traits<
67                 ci::opt::hook< ci::lazy_list::member_hook<
68                     offsetof( item, hMember ),
69                     co::gc<cds::gc::DHP>
70                 > >
71                 ,co::compare< cmp<item> >
72                 ,ci::opt::disposer< faked_disposer >
73             >::type
74         >    list;
75         test_int<list>();
76     }
77     void IntrusiveLazyListHeaderTest::DHP_member_less()
78     {
79         typedef member_int_item< cds::gc::DHP > item;
80         typedef ci::LazyList< cds::gc::DHP
81             ,item
82             ,ci::lazy_list::make_traits<
83                 ci::opt::hook< ci::lazy_list::member_hook<
84                     offsetof( item, hMember ),
85                     co::gc<cds::gc::DHP>
86                 > >
87                 ,co::less< less<item> >
88                 ,ci::opt::disposer< faked_disposer >
89             >::type
90         >    list;
91         test_int<list>();
92     }
93     void IntrusiveLazyListHeaderTest::DHP_member_cmpmix()
94     {
95         typedef member_int_item< cds::gc::DHP > item;
96         typedef ci::LazyList< cds::gc::DHP
97             ,item
98             ,ci::lazy_list::make_traits<
99                 ci::opt::hook< ci::lazy_list::member_hook<
100                     offsetof( item, hMember ),
101                     co::gc<cds::gc::DHP>
102                 > >
103                 ,co::less< less<item> >
104                 ,co::compare< cmp<item> >
105                 ,ci::opt::disposer< faked_disposer >
106             >::type
107         >    list;
108         test_int<list>();
109     }
110     void IntrusiveLazyListHeaderTest::DHP_member_ic()
111     {
112         typedef member_int_item< cds::gc::DHP > item;
113         typedef ci::LazyList< cds::gc::DHP
114             ,item
115             ,ci::lazy_list::make_traits<
116                 ci::opt::hook< ci::lazy_list::member_hook<
117                     offsetof( item, hMember ),
118                     co::gc<cds::gc::DHP>
119                 > >
120                 ,co::compare< cmp<item> >
121                 ,ci::opt::disposer< faked_disposer >
122                 ,co::item_counter< cds::atomicity::item_counter >
123             >::type
124         >    list;
125         test_int<list>();
126     }
127
128 } // namespace ordlist