3 #include "list/hdr_lazy_kv.h"
4 #include <cds/container/lazy_kvlist_dhp.h>
8 struct DHP_cmp_traits : public cc::lazy_list::traits
10 typedef LazyKVListTestHeader::cmp<LazyKVListTestHeader::key_type> compare;
13 void LazyKVListTestHeader::DHP_cmp()
15 // traits-based version
16 typedef cc::LazyKVList< cds::gc::DHP, key_type, value_type, DHP_cmp_traits > list;
19 // option-based version
21 typedef cc::LazyKVList< cds::gc::DHP, key_type, value_type,
22 cc::lazy_list::make_traits<
23 cc::opt::compare< cmp<key_type> >
30 struct DHP_less_traits : public cc::lazy_list::traits
32 typedef LazyKVListTestHeader::lt<LazyKVListTestHeader::key_type> less;
35 void LazyKVListTestHeader::DHP_less()
37 // traits-based version
38 typedef cc::LazyKVList< cds::gc::DHP, key_type, value_type, DHP_less_traits > list;
41 // option-based version
43 typedef cc::LazyKVList< cds::gc::DHP, key_type, value_type,
44 cc::lazy_list::make_traits<
45 cc::opt::less< lt<key_type> >
52 struct DHP_cmpmix_traits : public cc::lazy_list::traits
54 typedef LazyKVListTestHeader::cmp<LazyKVListTestHeader::key_type> compare;
55 typedef LazyKVListTestHeader::lt<LazyKVListTestHeader::key_type> less;
58 void LazyKVListTestHeader::DHP_cmpmix()
60 // traits-based version
61 typedef cc::LazyKVList< cds::gc::DHP, key_type, value_type, DHP_cmpmix_traits > list;
64 // option-based version
66 typedef cc::LazyKVList< cds::gc::DHP, key_type, value_type,
67 cc::lazy_list::make_traits<
68 cc::opt::compare< cmp<key_type> >
69 ,cc::opt::less< lt<key_type> >
76 struct DHP_ic_traits : public cc::lazy_list::traits
78 typedef LazyKVListTestHeader::lt<LazyKVListTestHeader::key_type> less;
79 typedef cds::atomicity::item_counter item_counter;
82 void LazyKVListTestHeader::DHP_ic()
84 // traits-based version
85 typedef cc::LazyKVList< cds::gc::DHP, key_type, value_type, DHP_ic_traits > list;
88 // option-based version
90 typedef cc::LazyKVList< cds::gc::DHP, key_type, value_type,
91 cc::lazy_list::make_traits<
92 cc::opt::less< lt<key_type> >
93 ,cc::opt::item_counter< cds::atomicity::item_counter >
99 } // namespace ordlist