/* Web Polygraph http://www.web-polygraph.org/ * (C) 2003-2006 The Measurement Factory * Licensed under the Apache License, Version 2.0 */ #ifndef POLYGRAPH__BASE_STATPHASEREC_H #define POLYGRAPH__BASE_STATPHASEREC_H #include "base/StatIntvlRec.h" #include "base/GoalRec.h" #include "base/ContTypeStat.h" #include "base/ConnCloseStat.h" #include "base/HRHistStat.h" #include "base/ErrorStat.h" #include "base/OidGenStat.h" #include "base/histograms.h" class StatPhaseMgr; // accumulates all phase stats that are not handled by StatIntvlRec class StatPhaseRec: public StatIntvlRec { public: StatPhaseRec(); const String &name() const { return theName; } void repAll(TmSzHistStat &all) const; virtual OLog &store(OLog &log) const; virtual ILog &load(ILog &); void concat(const StatPhaseRec &p); // sequential phases void merge(const StatPhaseRec &p); // concurrent phases ostream &print(ostream &os, const String &pfx) const; protected: void join(const StatPhaseRec &p); public: // read-only String theName; GoalRec theGoal; // maintained for us ContTypeStat theContType; // per-content-type stats ConnCloseStat theConnClose; // pre-conn-close-class stats SizeHist theSockRdSzH; // socket reads SizeHist theSockWrSzH; // socket writes /* HTTP */ HRHistStat theBasicXacts; TmSzHistStat theRediredReqXacts; TmSzHistStat theRepToRedirXacts; HRHistStat theImsXacts; TmSzHistStat theReloadXacts; TmSzHistStat theHeadXacts; TmSzHistStat thePutXacts; TmSzHistStat thePostXacts; LineHist theConnPipelineDepths; TmSzHistStat thePageHist; /* ICP */ HRHistStat theIcpXacts; OidGenStat theOidGen; ErrorStat theErrors; }; #endif