Move libcds 1.6.0 from SVN
[libcds.git] / tests / test-hdr / priority_queue / hdr_intrusive_mspqueue_static.cpp
1 //$$CDS-header$$
2
3 #include "priority_queue/hdr_intrusive_pqueue.h"
4 #include <cds/intrusive/mspriority_queue.h>
5 #include <cds/details/std/mutex.h>
6
7 namespace priority_queue {
8     namespace intrusive_pqueue {
9         template <typename T, typename Traits>
10         struct constants<cds::intrusive::MSPriorityQueue<T, Traits> > {
11             static size_t const nCapacity = c_nCapacity - 1;
12         };
13     }
14
15     namespace {
16         typedef cds::opt::v::static_buffer< char, IntrusivePQueueHdrTest::c_nCapacity > buffer_type;
17     }
18
19     void IntrusivePQueueHdrTest::MSPQueue_st()
20     {
21         typedef cds::intrusive::MSPriorityQueue< IntrusivePQueueHdrTest::key_type,
22             cds::intrusive::mspriority_queue::make_traits<
23                 cds::opt::buffer< buffer_type >
24             >::type
25         > pqueue;
26
27         test_msq_stat<pqueue>();
28     }
29
30     void IntrusivePQueueHdrTest::MSPQueue_st_cmp()
31     {
32         typedef cds::intrusive::MSPriorityQueue< IntrusivePQueueHdrTest::key_type,
33             cds::intrusive::mspriority_queue::make_traits<
34                 cds::opt::buffer< buffer_type >
35                 ,cds::opt::compare< IntrusivePQueueHdrTest::compare >
36             >::type
37         > pqueue;
38
39         test_msq_stat<pqueue>();
40     }
41
42     void IntrusivePQueueHdrTest::MSPQueue_st_less()
43     {
44         typedef cds::intrusive::MSPriorityQueue< IntrusivePQueueHdrTest::key_type,
45             cds::intrusive::mspriority_queue::make_traits<
46                 cds::opt::buffer< buffer_type >
47                 ,cds::opt::less< std::less<IntrusivePQueueHdrTest::key_type> >
48             >::type
49         > pqueue;
50
51         test_msq_stat<pqueue>();
52     }
53
54     void IntrusivePQueueHdrTest::MSPQueue_st_cmpless()
55     {
56         typedef cds::intrusive::MSPriorityQueue< IntrusivePQueueHdrTest::key_type,
57             cds::intrusive::mspriority_queue::make_traits<
58                 cds::opt::buffer< buffer_type >
59                 ,cds::opt::less< std::less<IntrusivePQueueHdrTest::key_type> >
60                 ,cds::opt::compare< IntrusivePQueueHdrTest::compare >
61             >::type
62         > pqueue;
63
64         test_msq_stat<pqueue>();
65     }
66
67     void IntrusivePQueueHdrTest::MSPQueue_st_cmp_mtx()
68     {
69         typedef cds::intrusive::MSPriorityQueue< IntrusivePQueueHdrTest::key_type,
70             cds::intrusive::mspriority_queue::make_traits<
71                 cds::opt::buffer< buffer_type >
72                 ,cds::opt::compare< IntrusivePQueueHdrTest::compare >
73                 ,cds::opt::lock_type<cds_std::mutex>
74             >::type
75         > pqueue;
76
77         test_msq_stat<pqueue>();
78     }
79
80 } // namespace priority_queue