23f4cfef1a5beea5971e92f28221ab7bd2c6c199
[libcds.git] / tests / test-hdr / queue / hdr_intrusive_segmented_queue_dhp.cpp
1 //$$CDS-header$$
2
3 #include "hdr_intrusive_segmented_queue.h"
4 #include <cds/intrusive/segmented_queue.h>
5 #include <cds/gc/dhp.h>
6
7 namespace queue {
8
9     void HdrIntrusiveSegmentedQueue::SegmQueue_DHP()
10     {
11         struct queue_traits : public cds::intrusive::segmented_queue::traits
12         {
13             typedef Disposer disposer;
14         };
15         typedef cds::intrusive::SegmentedQueue< cds::gc::DHP, item, queue_traits > queue_type;
16
17         test<queue_type>();
18     }
19
20     void HdrIntrusiveSegmentedQueue::SegmQueue_DHP_mutex()
21     {
22         struct queue_traits : public
23             cds::intrusive::segmented_queue::make_traits <
24                 cds::intrusive::opt::disposer< Disposer >
25                 ,cds::opt::lock_type < std::mutex >
26             > ::type
27         {};
28         typedef cds::intrusive::SegmentedQueue< cds::gc::DHP, item, queue_traits > queue_type;
29
30         test<queue_type>();
31     }
32
33     void HdrIntrusiveSegmentedQueue::SegmQueue_DHP_shuffle()
34     {
35         typedef cds::intrusive::SegmentedQueue< cds::gc::DHP, item,
36             cds::intrusive::segmented_queue::make_traits<
37                 cds::intrusive::opt::disposer< Disposer >
38                 ,cds::opt::item_counter< cds::atomicity::item_counter >
39                 ,cds::opt::permutation_generator< cds::opt::v::random_shuffle_permutation<> >
40             >::type
41         > queue_type;
42
43         test<queue_type>();
44     }
45
46     void HdrIntrusiveSegmentedQueue::SegmQueue_DHP_stat()
47     {
48         typedef cds::intrusive::SegmentedQueue< cds::gc::DHP, item,
49             cds::intrusive::segmented_queue::make_traits<
50                 cds::intrusive::opt::disposer< Disposer >
51                 ,cds::opt::item_counter< cds::atomicity::item_counter >
52                 ,cds::opt::permutation_generator< cds::opt::v::random_permutation<> >
53                 ,cds::opt::stat< cds::intrusive::segmented_queue::stat<> >
54             >::type
55         > queue_type;
56
57         test<queue_type>();
58     }
59
60 } // namespace queue