1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
/*
SRG - Squid Report Generator
Template class for an srg report, this class should be used
as a base. IE. you should create a class that inherits from
this one.
Copyright 2005 University of Waikato
This file is part of SRG.
SRG is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
SRG is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with SRG; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef REPORT_H
#define REPORT_H
#include "srg.h"
#include <functional>
template <typename T>
struct LessByBytesTransferred: binary_function<T const *, T const *, bool>
{
bool operator()(T *x, T *y) const
{
summary_info xstats = x->getStats();
summary_info ystats = y->getStats();
return less<unsigned long long>()(ystats.bytesTransferred,
xstats.bytesTransferred);
}
};
template <typename T>
struct LessByBytesMissed: binary_function<T const *, T const *, bool>
{
bool operator()(T *x, T *y) const
{
summary_info xstats = x->getStats();
summary_info ystats = y->getStats();
return less<unsigned long long>()(ystats.bytesMissed,
xstats.bytesMissed);
}
};
class Report {
public:
Report(char * name);
~Report();
void process_line(const log_line *line);
summary_info getStats();
void updateStats();
char * getName();
void generate_report(char *);
bool create_files(const log_line *line);
protected:
void zeroStats();
char * mName;
summary_info stats;
};
#endif // REPORT_H
|