"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