3 #include "ordered_list/hdr_michael.h"
4 #include <cds/container/michael_list_hp.h>
8 struct HP_cmp_traits: public cc::michael_list::type_traits
10 typedef MichaelListTestHeader::cmp<MichaelListTestHeader::item> compare;
14 void MichaelListTestHeader::HP_cmp()
16 // traits-based version
17 typedef cc::MichaelList< cds::gc::HP, item, HP_cmp_traits > list;
20 // option-based version
22 typedef cc::MichaelList< cds::gc::HP, item,
23 cc::michael_list::make_traits<
24 cc::opt::compare< cmp<item> >
31 struct HP_less_traits: public cc::michael_list::type_traits
33 typedef MichaelListTestHeader::lt<MichaelListTestHeader::item> less;
36 void MichaelListTestHeader::HP_less()
38 // traits-based version
39 typedef cc::MichaelList< cds::gc::HP, item, HP_less_traits > list;
42 // option-based version
44 typedef cc::MichaelList< cds::gc::HP, item,
45 cc::michael_list::make_traits<
46 cc::opt::less< lt<item> >
53 struct HP_cmpmix_traits: public cc::michael_list::type_traits
55 typedef MichaelListTestHeader::cmp<MichaelListTestHeader::item> compare;
56 typedef MichaelListTestHeader::lt<MichaelListTestHeader::item> less;
59 void MichaelListTestHeader::HP_cmpmix()
61 // traits-based version
62 typedef cc::MichaelList< cds::gc::HP, item, HP_cmpmix_traits > list;
65 // option-based version
67 typedef cc::MichaelList< cds::gc::HP, item,
68 cc::michael_list::make_traits<
69 cc::opt::compare< cmp<item> >
70 ,cc::opt::less< lt<item> >
77 struct HP_ic_traits: public cc::michael_list::type_traits
79 typedef MichaelListTestHeader::lt<MichaelListTestHeader::item> less;
80 typedef cds::atomicity::item_counter item_counter;
83 void MichaelListTestHeader::HP_ic()
85 // traits-based version
86 typedef cc::MichaelList< cds::gc::HP, item, HP_ic_traits > list;
89 // option-based version
91 typedef cc::MichaelList< cds::gc::HP, item,
92 cc::michael_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::MichaelListTestHeader);