3 #include "ordered_list/hdr_michael_kv.h"
4 #include <cds/container/michael_kvlist_hp.h>
8 struct HP_cmp_traits: public cc::michael_list::traits
10 typedef MichaelKVListTestHeader::cmp<MichaelKVListTestHeader::key_type> compare;
14 void MichaelKVListTestHeader::HP_cmp()
16 // traits-based version
17 typedef cc::MichaelKVList< cds::gc::HP, key_type, value_type, HP_cmp_traits > list;
20 // option-based version
22 typedef cc::MichaelKVList< cds::gc::HP,
25 cc::michael_list::make_traits<
26 cc::opt::compare< cmp<key_type> >
33 struct HP_less_traits : public cc::michael_list::traits
35 typedef MichaelKVListTestHeader::lt<MichaelKVListTestHeader::key_type> less;
38 void MichaelKVListTestHeader::HP_less()
40 // traits-based version
41 typedef cc::MichaelKVList< cds::gc::HP, key_type, value_type, HP_less_traits > list;
44 // option-based version
46 typedef cc::MichaelKVList< cds::gc::HP, key_type, value_type,
47 cc::michael_list::make_traits<
48 cc::opt::less< lt<key_type> >
55 struct HP_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::HP_cmpmix()
63 // traits-based version
64 typedef cc::MichaelKVList< cds::gc::HP, key_type, value_type, HP_cmpmix_traits > list;
67 // option-based version
69 typedef cc::MichaelKVList< cds::gc::HP, key_type, value_type,
70 cc::michael_list::make_traits<
71 cc::opt::compare< cmp<key_type> >
72 ,cc::opt::less< lt<key_type> >
79 struct HP_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::HP_ic()
87 // traits-based version
88 typedef cc::MichaelKVList< cds::gc::HP, key_type, value_type, HP_ic_traits > list;
91 // option-based version
93 typedef cc::MichaelKVList< cds::gc::HP, 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 >
102 } // namespace ordlist
104 CPPUNIT_TEST_SUITE_REGISTRATION(ordlist::MichaelKVListTestHeader);