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