3 #include "map/hdr_map.h"
4 #include <cds/container/lazy_kvlist_nogc.h>
5 #include <cds/container/michael_map_nogc.h>
9 struct map_traits: public cc::michael_map::traits
11 typedef HashMapHdrTest::hash_int hash;
12 typedef HashMapHdrTest::simple_item_counter item_counter;
14 struct nogc_cmp_traits: public cc::lazy_list::traits
16 typedef HashMapHdrTest::cmp compare;
19 struct nogc_less_traits: public cc::lazy_list::traits
21 typedef HashMapHdrTest::less less;
24 struct nogc_cmpmix_traits: public cc::lazy_list::traits
26 typedef HashMapHdrTest::cmp compare;
27 typedef HashMapHdrTest::less less;
30 struct nogc_equal_traits: public cc::lazy_list::traits
32 typedef HashMapHdrTest::equal equal_to;
33 static const bool sort = false;
37 void HashMapHdrTest::Lazy_nogc_cmp()
39 typedef cc::LazyKVList< cds::gc::nogc, int, HashMapHdrTest::value_type, nogc_cmp_traits > list;
41 // traits-based version
42 typedef cc::MichaelHashMap< cds::gc::nogc, list, map_traits > map;
43 test_int_nogc< map >();
45 // option-based version
46 typedef cc::MichaelHashMap< cds::gc::nogc, list,
47 cc::michael_map::make_traits<
48 cc::opt::hash< hash_int >
49 ,cc::opt::item_counter< simple_item_counter >
52 test_int_nogc< opt_map >();
55 void HashMapHdrTest::Lazy_nogc_less()
57 typedef cc::LazyKVList< cds::gc::nogc, int, HashMapHdrTest::value_type, nogc_less_traits > list;
59 // traits-based version
60 typedef cc::MichaelHashMap< cds::gc::nogc, list, map_traits > map;
61 test_int_nogc< map >();
63 // option-based version
64 typedef cc::MichaelHashMap< cds::gc::nogc, list,
65 cc::michael_map::make_traits<
66 cc::opt::hash< hash_int >
67 ,cc::opt::item_counter< simple_item_counter >
70 test_int_nogc< opt_map >();
73 void HashMapHdrTest::Lazy_nogc_equal()
75 typedef cc::LazyKVList< cds::gc::nogc, int, HashMapHdrTest::value_type, nogc_equal_traits > list;
77 // traits-based version
78 typedef cc::MichaelHashMap< cds::gc::nogc, list, map_traits > map;
79 test_int_nogc_unordered< map >();
81 // option-based version
82 typedef cc::MichaelHashMap< cds::gc::nogc, list,
83 cc::michael_map::make_traits<
84 cc::opt::hash< hash_int >
85 ,cc::opt::item_counter< simple_item_counter >
88 test_int_nogc_unordered< opt_map >();
91 void HashMapHdrTest::Lazy_nogc_cmpmix()
93 typedef cc::LazyKVList< cds::gc::nogc, int, HashMapHdrTest::value_type, nogc_cmpmix_traits > list;
95 // traits-based version
96 typedef cc::MichaelHashMap< cds::gc::nogc, list, map_traits > map;
97 test_int_nogc< map >();
99 // option-based version
100 typedef cc::MichaelHashMap< cds::gc::nogc, list,
101 cc::michael_map::make_traits<
102 cc::opt::hash< hash_int >
103 ,cc::opt::item_counter< simple_item_counter >
106 test_int_nogc< opt_map >();