/* Web Polygraph http://www.web-polygraph.org/
* (C) 2003-2006 The Measurement Factory
* Licensed under the Apache License, Version 2.0 */
#ifndef POLYGRAPH__LOGANALYZERS_LOADSTEXES_H
#define POLYGRAPH__LOGANALYZERS_LOADSTEXES_H
#include "loganalyzers/LoadStex.h"
// total side load (all requests or all responses)
class SideLoadStex: public LoadStex {
public:
typedef double (StatIntvlRec::*StatPtr)() const;
public:
SideLoadStex(const String &aKey, const String &aName, StatPtr aRate, StatPtr aBwidth);
virtual double rate(const StatIntvlRec &rec) const;
virtual double bwidth(const StatIntvlRec &rec) const;
protected:
StatPtr theRateStats;
StatPtr theBwidthStats;
};
// load based on TmSzStex
class TmSzLoadStex: public LoadStex {
public:
TmSzLoadStex(const Stex *aStex);
virtual double rate(const StatIntvlRec &rec) const;
virtual double bwidth(const StatIntvlRec &rec) const;
protected:
const Stex *theStex;
};
#if FUTURE_CODE
// load based on TmSzStat data
class TmSzLoadStex: public LoadStex {
public:
typedef TmSzStat (StatIntvlRec::*StatPtr);
public:
TmSzLoadStex(const String &aKey, const String &aName, StatPtr aStats):
LoadStex(aKey, aName), theStats(aStats) {}
virtual double rate(const StatIntvlRec &rec) const;
virtual double bwidth(const StatIntvlRec &rec) const;
protected:
StatPtr theStats;
};
// load based on HRStat data
class HrLoadStex: public LoadStex {
public:
typedef HRStat (StatIntvlRec::*StatPtr);
public:
HrLoadStex(const String &aKey, const String &aName, StatPtr aStats):
LoadStex(aKey, aName), theStats(aStats) {}
virtual double rate(const StatIntvlRec &rec) const;
virtual double bwidth(const StatIntvlRec &rec) const;
protected:
StatPtr theStats;
};
#endif
#endif
syntax highlighted by Code2HTML, v. 0.9.1