CMS 3D CMS Logo

Public Member Functions | Public Attributes | Private Types

TimingReport::Item Class Reference

#include <TimingReport.h>

List of all members.

Public Member Functions

bool active () const
double cpusec () const
 Item ()
double realsec () const
double realticks () const
void setObs (MyObserver *io)
void start ()
void stop ()
ItemswitchCPU (bool ion)
ItemswitchOn (bool ion)

Public Attributes

int counter
bool cpuon
LinuxCPUTimer cpuwatch
MyObservero
bool on
PentiumTimer stopwatch

Private Types

typedef BaseEvent< std::pair
< double, double > > 
MyObserver

Detailed Description

Definition at line 26 of file TimingReport.h.


Member Typedef Documentation

typedef BaseEvent< std::pair<double,double> > TimingReport::Item::MyObserver [private]

Definition at line 27 of file TimingReport.h.


Constructor & Destructor Documentation

TimingReport::Item::Item ( ) [inline]

Definition at line 29 of file TimingReport.h.

: on(true), cpuon(true), counter(0), o(0){}

Member Function Documentation

bool TimingReport::Item::active ( void  ) const [inline]

Definition at line 43 of file TimingReport.h.

References GenTimer< Time >::running(), and stopwatch.

Referenced by stop().

{ return stopwatch.running();}
double TimingReport::Item::cpusec ( ) const
double TimingReport::Item::realsec ( ) const
double TimingReport::Item::realticks ( ) const

Definition at line 12 of file TimingReport.cc.

References GenTimer< PentiumTime >::bias(), and max().

                                         {
  return std::max(0.,stopwatch.lap().ticks()-counter*PentiumTimer::bias(false));
}
void TimingReport::Item::setObs ( MyObserver io) [inline]

Definition at line 44 of file TimingReport.h.

References o.

Referenced by R2DTimerObserver::init().

{ o=io;}
void TimingReport::Item::start ( void  ) [inline]

Definition at line 32 of file TimingReport.h.

References counter, cpuon, cpuwatch, on, GenTimer< Time >::start(), and stopwatch.

Referenced by R2DTimerObserver::start(), and TimeMe::TimeMe().

{ if (on) {counter++; if (cpuon) cpuwatch.start(); stopwatch.start(); }}
void TimingReport::Item::stop ( ) [inline]

Definition at line 33 of file TimingReport.h.

References active(), cpuon, cpuwatch, GenTimer< Time >::lap(), o, on, GenTimeInterval< Time >::seconds(), GenTimer< Time >::stop(), and stopwatch.

Referenced by R2DTimerObserver::stop(), and TimeMe::~TimeMe().

               { 
      if (on) {
        stopwatch.stop(); 
        if (cpuon) cpuwatch.stop();
        if (active()) return; 
        if (o) (*o)(std::pair<double,double>(stopwatch.lap().seconds(),
                                        cpuwatch.lap().seconds()));
      }
    }
Item& TimingReport::Item::switchCPU ( bool  ion) [inline]

Definition at line 31 of file TimingReport.h.

References cpuon.

Referenced by R2DTimerObserver::init(), and TimeMe::TimeMe().

{cpuon=ion; return *this;} 
Item& TimingReport::Item::switchOn ( bool  ion) [inline]

Definition at line 30 of file TimingReport.h.

References on.

{on=ion; return *this;} 

Member Data Documentation

Definition at line 51 of file TimingReport.h.

Referenced by realsec(), and start().

Definition at line 50 of file TimingReport.h.

Referenced by start(), stop(), and switchCPU().

Definition at line 53 of file TimingReport.h.

Referenced by TimeMe::lap(), start(), and stop().

Definition at line 54 of file TimingReport.h.

Referenced by setObs(), and stop().

Definition at line 49 of file TimingReport.h.

Referenced by start(), stop(), and switchOn().

Definition at line 52 of file TimingReport.h.

Referenced by active(), TimeMe::lap(), realsec(), start(), and stop().