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