Move libcds 1.6.0 from SVN
[libcds.git] / tests / test-hdr / map / print_skiplist_stat.h
1 //$$CDS-header$$
2
3 #ifndef __CDS_TESTHDR_MAP_PRINT_SKIPLIST_STAT_H
4 #define __CDS_TESTHDR_MAP_PRINT_SKIPLIST_STAT_H
5
6 #include "unit/print_skip_list_stat.h"
7
8 namespace misc {
9
10     template <typename Stat>
11     struct print_skiplist_stat;
12
13     template <>
14     struct print_skiplist_stat< cds::intrusive::skip_list::stat<> >
15     {
16         template <class Set>
17         std::string operator()( Set const& s, const char * pszHdr )
18         {
19             std::stringstream st;
20             if ( pszHdr ) {
21                 st << "\t\t" << pszHdr << "\n"
22                     << s.statistics()
23 ;
24             }
25             else {
26                 st << s.statistics();
27             }
28             return st.str();
29         }
30     };
31
32     template<>
33     struct print_skiplist_stat< cds::intrusive::skip_list::empty_stat >
34     {
35         template <class Set>
36         std::string operator()( Set const& /*s*/, const char * /*pszHdr*/ )
37         {
38             return std::string();
39         }
40     };
41
42 }   // namespace misc
43
44 #endif // #ifndef __CDS_TESTHDR_MAP_PRINT_SKIPLIST_STAT_H