3 #ifndef __UNIT_PRINT_SPLIT_LIST_STAT_H
4 #define __UNIT_PRINT_SPLIT_LIST_STAT_H
6 #include <cds/intrusive/details/split_list_base.h>
11 static inline ostream& operator <<( ostream& o, cds::intrusive::split_list::stat<> const& s )
14 o << "Split-list stat [cds::intrusive::split_list::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_nEnsureExist: " << s.m_nEnsureExist.get() << "\n"
18 << "\t\t m_nEnsureNew: " << s.m_nEnsureNew.get() << "\n"
19 << "\t\t m_nEraseSuccess: " << s.m_nEraseSuccess.get() << "\n"
20 << "\t\t m_nEraseFailed: " << s.m_nEraseFailed.get() << "\n"
21 << "\t\t m_nExtractSuccess: " << s.m_nExtractSuccess.get() << "\n"
22 << "\t\t m_nExtractFailed: " << s.m_nExtractFailed.get() << "\n"
23 << "\t\t m_nFindSuccess: " << s.m_nFindSuccess.get() << "\n"
24 << "\t\t m_nHeadNodeAllocated: " << s.m_nHeadNodeAllocated.get() << "\n"
25 << "\t\t m_nHeadNodeFreed: " << s.m_nHeadNodeFreed.get() << "\n"
26 << "\t\t m_nBucketCount: " << s.m_nBucketCount.get() << "\n"
27 << "\t\t m_nInitBucketRecursive: " << s.m_nInitBucketRecursive.get() << "\n"
28 << "\t\t m_nInitBucketContention: " << s.m_nInitBucketContention.get() << "\n"
29 << "\t\t m_nBusyWaitBucketInit: " << s.m_nBusyWaitBucketInit.get() << "\n";
32 static inline ostream& operator <<( ostream& o, cds::intrusive::split_list::empty_stat const& /*s*/ )
39 #endif // #ifndef __UNIT_PRINT_SKIP_LIST_STAT_H