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 RESOURCEPOOL_RESOURCEPOOLSTATS_HH
00025 #define RESOURCEPOOL_RESOURCEPOOLSTATS_HH
00026
00027 #include <ostream>
00028
00029 namespace fatalmind {
00030
00031 class ResourcePoolStats {
00032 public:
00033 ResourcePoolStats();
00034 ResourcePoolStats(const ResourcePoolStats& rho, int usedSize, int freeSize);
00035 ~ResourcePoolStats();
00036
00037 unsigned long int getCalls() const;
00038 unsigned long int waitEvents() const;
00039 unsigned long int failCalls() const;
00040 int usedSize() const;
00041 int freeSize() const;
00042 float waitRatio() const;
00043 float failRatio() const;
00044
00064 ResourcePoolStats& operator-=(const ResourcePoolStats&);
00069 ResourcePoolStats& operator+=(const ResourcePoolStats&);
00070
00071
00072
00073 void getCall_();
00074 void waitEvent_();
00075 void failCall_();
00076
00077 private:
00078 unsigned long int getCalls_;
00079 unsigned long int waitEvents_;
00080 unsigned long int failCalls_;
00081 int usedSize_;
00082 int freeSize_;
00083 };
00084
00085
00086 }
00087
00088 std::ostream& operator<<(std::ostream& os, const fatalmind::ResourcePoolStats& stats);
00089
00090 #endif