LatticeProgress.h
Classes
- LatticeProgress -- Abstract base class to monitor progress in lattice operations (full description)
Interface
- Public Members
- LatticeProgress() : itsExpectedNsteps(0)
- virtual ~LatticeProgress()
- void init (uInt expectedNsteps)
- virtual void nstepsDone (uInt nsteps)
- virtual void done()
- uInt expectedNsteps() const
- Protected Members
- virtual void initDerived()
Review Status
- Date Reviewed:
- yyyy/mm/dd
Synopsis
This is an abstract base class for classes to monitor the
progress of an operation on a Lattice. The default implementation
offered by this class does nothing.
However, a derived class could show the progress using for example
a ProgressMeter. A derived
class should override the virtual functions from this class.
The user of the LatticeProgress object should first call
function init with the total number of steps
that are to be done. Thereafter, after each step has been
executed, function nstepsDone should be called
after each step. Finally, function done should
be called.
Example
Motivation
Since operations on Lattices can take a while, it can be useful
to show the progress. However, making module Lattices dependent on
the class ProgressMeter sounded bad. This abstract class serves
as a bridge between the Lattice module and the ProgressMeter class
(or any other class showing the progress).
Member Description
void init (uInt expectedNsteps)
Initialize the process.
It sets the expected number of steps and
calls initDerived, so a derived class can initialize itself.
virtual void nstepsDone (uInt nsteps)
Tell the number of steps done so far.
The default implementation does nothing. A derived class
should call the ProgressMeter function update
virtual void done()
The process has ended.
Recovers the expected number of total steps.
Let a derived class initialize itself.
This function is called by init.
The derived class should create the ProgressMeter
in here.