3 #include "list/hdr_michael_kv.h"
4 #include <cds/container/michael_kvlist_nogc.h>
8 struct NOGC_cmp_traits : public cc::michael_list::traits
10 typedef MichaelKVListTestHeader::cmp<MichaelKVListTestHeader::key_type> compare;
14 void MichaelKVListTestHeader::NOGC_cmp()
16 // traits-based version
17 typedef cc::MichaelKVList< cds::gc::nogc, key_type, value_type, NOGC_cmp_traits > list;
20 // option-based version
22 typedef cc::MichaelKVList< cds::gc::nogc,
25 cc::michael_list::make_traits<
26 cc::opt::compare< cmp<key_type> >
29 nogc_test< opt_list >();
33 struct NOGC_less_traits : public cc::michael_list::traits
35 typedef MichaelKVListTestHeader::lt<MichaelKVListTestHeader::key_type> less;
38 void MichaelKVListTestHeader::NOGC_less()
40 // traits-based version
41 typedef cc::MichaelKVList< cds::gc::nogc, key_type, value_type, NOGC_less_traits > list;
44 // option-based version
46 typedef cc::MichaelKVList< cds::gc::nogc, key_type, value_type,
47 cc::michael_list::make_traits<
48 cc::opt::less< lt<key_type> >
51 nogc_test< opt_list >();
55 struct NOGC_cmpmix_traits : public cc::michael_list::traits
57 typedef MichaelKVListTestHeader::cmp<MichaelKVListTestHeader::key_type> compare;
58 typedef MichaelKVListTestHeader::lt<MichaelKVListTestHeader::key_type> less;
61 void MichaelKVListTestHeader::NOGC_cmpmix()
63 // traits-based version
64 typedef cc::MichaelKVList< cds::gc::nogc, key_type, value_type, NOGC_cmpmix_traits > list;
67 // option-based version
69 typedef cc::MichaelKVList< cds::gc::nogc, key_type, value_type,
70 cc::michael_list::make_traits<
71 cc::opt::compare< cmp<key_type> >
72 ,cc::opt::less< lt<key_type> >
75 nogc_test< opt_list >();
79 struct NOGC_ic_traits : public cc::michael_list::traits
81 typedef MichaelKVListTestHeader::lt<MichaelKVListTestHeader::key_type> less;
82 typedef cds::atomicity::item_counter item_counter;
85 void MichaelKVListTestHeader::NOGC_ic()
87 // traits-based version
88 typedef cc::MichaelKVList< cds::gc::nogc, key_type, value_type, NOGC_ic_traits > list;
91 // option-based version
93 typedef cc::MichaelKVList< cds::gc::nogc, key_type, value_type,
94 cc::michael_list::make_traits<
95 cc::opt::less< lt<key_type> >
96 ,cc::opt::item_counter< cds::atomicity::item_counter >
99 nogc_test< opt_list >();
102 } // namespace ordlist