3 #include "ordered_list/hdr_lazy.h"
4 #include <cds/container/lazy_list_hp.h>
8 struct HP_cmp_traits: public cc::lazy_list::traits
10 typedef LazyListTestHeader::cmp<LazyListTestHeader::item> compare;
14 void LazyListTestHeader::HP_cmp()
16 // traits-based version
17 typedef cc::LazyList< cds::gc::HP, item, HP_cmp_traits > list;
20 // option-based version
22 typedef cc::LazyList< cds::gc::HP, item,
23 cc::lazy_list::make_traits<
24 cc::opt::compare< cmp<item> >
31 struct HP_less_traits: public cc::lazy_list::traits
33 typedef LazyListTestHeader::lt<LazyListTestHeader::item> less;
36 void LazyListTestHeader::HP_less()
38 // traits-based version
39 typedef cc::LazyList< cds::gc::HP, item, HP_less_traits > list;
42 // option-based version
44 typedef cc::LazyList< cds::gc::HP, item,
45 cc::lazy_list::make_traits<
46 cc::opt::less< lt<item> >
53 struct HP_cmpmix_traits: public cc::lazy_list::traits
55 typedef LazyListTestHeader::cmp<LazyListTestHeader::item> compare;
56 typedef LazyListTestHeader::lt<LazyListTestHeader::item> less;
59 void LazyListTestHeader::HP_cmpmix()
61 // traits-based version
62 typedef cc::LazyList< cds::gc::HP, item, HP_cmpmix_traits > list;
65 // option-based version
67 typedef cc::LazyList< cds::gc::HP, item,
68 cc::lazy_list::make_traits<
69 cc::opt::compare< cmp<item> >
70 ,cc::opt::less< lt<item> >
77 struct HP_ic_traits: public cc::lazy_list::traits
79 typedef LazyListTestHeader::lt<LazyListTestHeader::item> less;
80 typedef cds::atomicity::item_counter item_counter;
83 void LazyListTestHeader::HP_ic()
85 // traits-based version
86 typedef cc::LazyList< cds::gc::HP, item, HP_ic_traits > list;
89 // option-based version
91 typedef cc::LazyList< cds::gc::HP, item,
92 cc::lazy_list::make_traits<
93 cc::opt::less< lt<item> >
94 ,cc::opt::item_counter< cds::atomicity::item_counter >
100 } // namespace ordlist
102 CPPUNIT_TEST_SUITE_REGISTRATION(ordlist::LazyListTestHeader);