clockWC Class Reference
[Global Utility Functions]

The class provides the wall clock timer in seconds. More...

#include <clockWC.h>

List of all members.

Public Member Functions

 clockWC ()
 Constructor.
double start ()
 Resets the internal counters and returns the wall clock time in seconds.
double secondsWC ()
 Returns the wall clock time in seconds since the last reset.

Private Attributes

clock_t last_num_ticks
 Counters the value of the number of ticks from the last call.
unsigned int clock_rollovers
 Number of clock rollovers since the last initialization.
clock_t start_ticks
 Counter countaining the value of the number of ticks from the first call (or the reset call).
const double inv_clocks_per_sec
 internal constant containing clock ticks per second
const double clock_width
 internal constant containing the total number of ticks per rollover.

Detailed Description

The class provides the wall clock timer in seconds.

This routine relies on the ANSI C routine, clock(), for its basic operation. Therefore, it should be fairly portable.

The clock will rollover if the calculation is long enough. The wraparound time is roughly 72 minutes for a 32 bit system. This object senses that by seeing if the raw tick counter is has decreased from the last time. If it senses a wraparound has occurred, it increments an internal counter to account for this. Therefore, for long calculations, this object must be called at regular intervals for the seconds timer to be accurate.

An example of how to use the timer is given below. timeToDoCalcs countains the wall clock time calculated for the operation.

   clockWC wc;
   do_hefty_calculations_atLeastgreaterThanAMillisecond();
   double timeToDoCalcs = wc.secondsWC();

In general, the process to be timed must take more than a millisecond for this clock to enough of a significant resolution to be accurate.

Definition at line 55 of file clockWC.h.


Constructor & Destructor Documentation

clockWC (  ) 

Constructor.

This also serves to initialize the ticks within the object

Definition at line 23 of file clockWC.cpp.

References clockWC::last_num_ticks, and clockWC::start_ticks.


Member Function Documentation

double secondsWC (  ) 

Returns the wall clock time in seconds since the last reset.

Definition at line 56 of file clockWC.cpp.

References clockWC::clock_rollovers, clockWC::clock_width, clockWC::inv_clocks_per_sec, clockWC::last_num_ticks, and clockWC::start_ticks.

Referenced by vcs_MultiPhaseEquil::equilibrate_TP().

double start (  ) 

Resets the internal counters and returns the wall clock time in seconds.

Definition at line 36 of file clockWC.cpp.

References clockWC::clock_rollovers, clockWC::last_num_ticks, and clockWC::start_ticks.


Member Data Documentation

unsigned int clock_rollovers [private]

Number of clock rollovers since the last initialization.

The clock will rollover if the calculation is long enough. This object senses that by seeing if the raw tick counter is has decreased from the last time.

Definition at line 80 of file clockWC.h.

Referenced by clockWC::secondsWC(), and clockWC::start().

const double clock_width [private]

internal constant containing the total number of ticks per rollover.

Definition at line 91 of file clockWC.h.

Referenced by clockWC::secondsWC().

const double inv_clocks_per_sec [private]

internal constant containing clock ticks per second

Definition at line 87 of file clockWC.h.

Referenced by clockWC::secondsWC().

clock_t last_num_ticks [private]

Counters the value of the number of ticks from the last call.

Definition at line 72 of file clockWC.h.

Referenced by clockWC::clockWC(), clockWC::secondsWC(), and clockWC::start().

clock_t start_ticks [private]

Counter countaining the value of the number of ticks from the first call (or the reset call).

Definition at line 84 of file clockWC.h.

Referenced by clockWC::clockWC(), clockWC::secondsWC(), and clockWC::start().


The documentation for this class was generated from the following files:
Generated by  doxygen 1.6.3