Added intrusive::MultiLevelHashSet<RCU> implementation
[libcds.git] / tests / unit / print_multilevel_hashset_stat.h
1 //$$CDS-header$$
2
3 #ifndef CDSUNIT_PRINT_MULTILEVEL_HASHSET_STAT_H
4 #define CDSUNIT_PRINT_MULTILEVEL_HASHSET_STAT_H
5
6 #include <cds/intrusive/details/multilevel_hashset_base.h>
7 #include <ostream>
8
9 namespace std {
10
11     static inline ostream& operator <<( ostream& o, cds::intrusive::multilevel_hashset::stat<> const& s )
12     {
13         return
14         o << "Stat [cds::intrusive::multilevel_hashset::stat]\n"
15             << "\t\t          m_nInsertSuccess: " << s.m_nInsertSuccess.get()           << "\n"
16             << "\t\t           m_nInsertFailed: " << s.m_nInsertFailed.get()            << "\n"
17             << "\t\t            m_nInsertRetry: " << s.m_nInsertRetry.get()             << "\n"
18             << "\t\t              m_nUpdateNew: " << s.m_nUpdateNew.get()               << "\n"
19             << "\t\t         m_nUpdateExisting: " << s.m_nUpdateExisting.get()          << "\n"
20             << "\t\t           m_nUpdateFailed: " << s.m_nUpdateFailed.get()            << "\n"
21             << "\t\t            m_nUpdateRetry: " << s.m_nUpdateRetry.get()             << "\n"
22             << "\t\t           m_nEraseSuccess: " << s.m_nEraseSuccess.get()            << "\n"
23             << "\t\t            m_nEraseFailed: " << s.m_nEraseFailed.get()             << "\n"
24             << "\t\t             m_nEraseRetry: " << s.m_nEraseRetry.get()              << "\n"
25             << "\t\t            m_nFindSuccess: " << s.m_nFindSuccess.get()             << "\n"
26             << "\t\t             m_nFindFailed: " << s.m_nFindFailed.get()              << "\n"
27             << "\t\t      m_nExpandNodeSuccess: " << s.m_nExpandNodeSuccess.get()       << "\n"
28             << "\t\t       m_nExpandNodeFailed: " << s.m_nExpandNodeFailed.get()        << "\n"
29             << "\t\t            m_nSlotChanged: " << s.m_nSlotChanged.get()             << "\n"
30             << "\t\t         m_nSlotConverting: " << s.m_nSlotConverting.get()          << "\n"
31             << "\t\t         m_nArrayNodeCount: " << s.m_nArrayNodeCount.get()          << "\n"
32             << "\t\t                 m_nHeight: " << s.m_nHeight.get()                  << "\n";
33     }
34
35     static inline ostream& operator <<( ostream& o, cds::intrusive::multilevel_hashset::empty_stat const& /*s*/ )
36     {
37         return o;
38     }
39
40 } // namespace std
41
42 #endif // #ifndef CDSUNIT_PRINT_MULTILEVEL_HASHSET_STAT_H