LatticeProgress.h

Classes

LatticeProgress -- Abstract base class to monitor progress in lattice operations (full description)

class LatticeProgress

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()

Description

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

LatticeProgress() : itsExpectedNsteps(0)

virtual ~LatticeProgress()

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.

uInt expectedNsteps() const

Recovers the expected number of total steps.

virtual void initDerived()

Let a derived class initialize itself. This function is called by init. The derived class should create the ProgressMeter in here.