00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef INCLUDED_THREAD_LOCKSTATISTICSFWD_HH
00025 #define INCLUDED_THREAD_LOCKSTATISTICSFWD_HH
00026 #endif
00027
00028 #include <iosfwd>
00029
00030 namespace fatalmind {
00031 template<class UsagePattern, class TimingPattern>
00032 class LockStatistics;
00033
00034 template<class UsagePattern, class TimingPattern>
00035 std::ostream& operator<<(std::ostream& o
00036 , const LockStatistics<UsagePattern, TimingPattern> & ls);
00037
00038
00039 class NopLockUsageStatistics;
00040 std::ostream& operator<<(std::ostream& o, const NopLockUsageStatistics&);
00041 class LockUsageStatistics;
00042 std::ostream& operator<<(std::ostream& o, const LockUsageStatistics&);
00043
00044 class NopLockTimingStatistics;
00045 std::ostream& operator<<(std::ostream& o, const NopLockTimingStatistics&);
00046 class LockTimingStatistics;
00047 std::ostream& operator<<(std::ostream& o, const LockTimingStatistics&);
00048
00049 typedef LockStatistics<NopLockUsageStatistics, NopLockTimingStatistics>
00050 DefaultLockStatistics;
00051
00052 typedef DefaultLockStatistics NopLockStatistics;
00053
00054 typedef LockStatistics<LockUsageStatistics, NopLockTimingStatistics>
00055 UsageOnlyLockStatistics;
00056
00057 typedef LockStatistics<NopLockUsageStatistics, LockTimingStatistics>
00058 TimingOnlyLockStatistics;
00059
00060 typedef LockStatistics<LockUsageStatistics, LockTimingStatistics>
00061 FullLockStatistics;
00062
00063
00064 }