3 #include "set/hdr_intrusive_striped_set.h"
4 #include <cds/intrusive/striped_set/boost_treap_set.h>
5 #include <cds/intrusive/striped_set.h>
8 namespace bi = boost::intrusive;
11 typedef IntrusiveStripedSetHdrTest::base_item< bi::bs_set_base_hook<> > base_item_type;
12 typedef IntrusiveStripedSetHdrTest::member_item< bi::bs_set_member_hook<> > member_item_type;
15 struct priority_cmp: private IntrusiveStripedSetHdrTest::less<T>
17 typedef IntrusiveStripedSetHdrTest::less<T> base_class;
19 template <typename A, typename B>
20 bool operator()( A const& a, B const& b ) const
22 return base_class::operator()( b, a );
27 void IntrusiveStripedSetHdrTest::Refinable_treap_set_basehook()
29 typedef ci::StripedSet<
30 bi::treap_set<base_item_type, bi::compare<IntrusiveStripedSetHdrTest::less<base_item_type> >, bi::priority<priority_cmp<base_item_type> > >
31 ,co::mutex_policy< ci::striped_set::refinable<> >
32 ,co::hash< IntrusiveStripedSetHdrTest::hash_int >
38 void IntrusiveStripedSetHdrTest::Refinable_treap_set_basehook_bucket_threshold()
40 typedef ci::StripedSet<
41 bi::treap_set<base_item_type, bi::compare<IntrusiveStripedSetHdrTest::less<base_item_type> >, bi::priority<priority_cmp<base_item_type> > >
42 ,co::mutex_policy< ci::striped_set::refinable<> >
43 ,co::hash< IntrusiveStripedSetHdrTest::hash_int >
44 ,co::resizing_policy< ci::striped_set::single_bucket_size_threshold<64> >
50 void IntrusiveStripedSetHdrTest::Refinable_treap_set_basehook_bucket_threshold_rt()
52 typedef ci::StripedSet<
53 bi::treap_set<base_item_type, bi::compare<IntrusiveStripedSetHdrTest::less<base_item_type> >, bi::priority<priority_cmp<base_item_type> > >
54 ,co::mutex_policy< ci::striped_set::refinable<> >
55 ,co::hash< IntrusiveStripedSetHdrTest::hash_int >
56 ,co::resizing_policy< ci::striped_set::single_bucket_size_threshold<0> >
59 set_type s( 64, ci::striped_set::single_bucket_size_threshold<0>(256) );
63 void IntrusiveStripedSetHdrTest::Refinable_treap_set_memberhook()
65 typedef ci::StripedSet<
68 , bi::member_hook< member_item_type, bi::bs_set_member_hook<>, &member_item_type::hMember>
69 , bi::compare<IntrusiveStripedSetHdrTest::less<member_item_type> >
70 , bi::priority<priority_cmp<member_item_type> >
72 ,co::mutex_policy< ci::striped_set::refinable<> >
73 ,co::hash< IntrusiveStripedSetHdrTest::hash_int >
79 void IntrusiveStripedSetHdrTest::Refinable_treap_set_memberhook_bucket_threshold()
81 typedef ci::StripedSet<
84 , bi::member_hook< member_item_type, bi::bs_set_member_hook<>, &member_item_type::hMember>
85 , bi::compare<IntrusiveStripedSetHdrTest::less<member_item_type> >
86 , bi::priority<priority_cmp<member_item_type> >
88 ,co::mutex_policy< ci::striped_set::refinable<> >
89 ,co::hash< IntrusiveStripedSetHdrTest::hash_int >
90 ,co::resizing_policy< ci::striped_set::single_bucket_size_threshold<256> >
96 void IntrusiveStripedSetHdrTest::Refinable_treap_set_memberhook_bucket_threshold_rt()
98 typedef ci::StripedSet<
101 , bi::member_hook< member_item_type, bi::bs_set_member_hook<>, &member_item_type::hMember>
102 , bi::compare<IntrusiveStripedSetHdrTest::less<member_item_type> >
103 , bi::priority<priority_cmp<member_item_type> >
105 ,co::hash< IntrusiveStripedSetHdrTest::hash_int >
106 ,co::resizing_policy< ci::striped_set::single_bucket_size_threshold<0> >
107 ,co::mutex_policy< ci::striped_set::refinable<> >
110 set_type s( 64, ci::striped_set::single_bucket_size_threshold<0>(256) );