3 #include "ordered_list/hdr_michael.h"
4 #include <cds/container/michael_list_nogc.h>
8 struct NOGC_cmp_traits: public cc::michael_list::traits
10 typedef MichaelListTestHeader::cmp<MichaelListTestHeader::item> compare;
13 void MichaelListTestHeader::NOGC_cmp()
15 // traits-based version
16 typedef cc::MichaelList< cds::gc::nogc, item, NOGC_cmp_traits > list;
19 // option-based version
21 typedef cc::MichaelList< cds::gc::nogc, item,
22 cc::michael_list::make_traits<
23 cc::opt::compare< cmp<item> >
26 nogc_test< opt_list >();
30 struct NOGC_less_traits: public cc::michael_list::traits
32 typedef MichaelListTestHeader::lt<MichaelListTestHeader::item> less;
35 void MichaelListTestHeader::NOGC_less()
37 // traits-based version
38 typedef cc::MichaelList< cds::gc::nogc, item, NOGC_less_traits > list;
41 // option-based version
43 typedef cc::MichaelList< cds::gc::nogc, item,
44 cc::michael_list::make_traits<
45 cc::opt::less< lt<item> >
48 nogc_test< opt_list >();
52 struct NOGC_cmpmix_traits: public cc::michael_list::traits
54 typedef MichaelListTestHeader::cmp<MichaelListTestHeader::item> compare;
55 typedef MichaelListTestHeader::lt<MichaelListTestHeader::item> less;
58 void MichaelListTestHeader::NOGC_cmpmix()
60 // traits-based version
61 typedef cc::MichaelList< cds::gc::nogc, item, NOGC_cmpmix_traits > list;
64 // option-based version
66 typedef cc::MichaelList< cds::gc::nogc, item,
67 cc::michael_list::make_traits<
68 cc::opt::compare< cmp<item> >
69 ,cc::opt::less< lt<item> >
72 nogc_test< opt_list >();
76 struct NOGC_ic_traits: public cc::michael_list::traits
78 typedef MichaelListTestHeader::lt<MichaelListTestHeader::item> less;
79 typedef cds::atomicity::item_counter item_counter;
82 void MichaelListTestHeader::NOGC_ic()
84 // traits-based version
85 typedef cc::MichaelList< cds::gc::nogc, item, NOGC_ic_traits > list;
88 // option-based version
90 typedef cc::MichaelList< cds::gc::nogc, item,
91 cc::michael_list::make_traits<
92 cc::opt::less< lt<item> >
93 ,cc::opt::item_counter< cds::atomicity::item_counter >
96 nogc_test< opt_list >();
99 } // namespace ordlist