Line data Source code
1 : //# ImageMomentsProgress.h: Progress meter for ImageMoments class 2 : //# Copyright (C) 1996,1997,1999 3 : //# Associated Universities, Inc. Washington DC, USA. 4 : //# 5 : //# This library is free software; you can redistribute it and/or modify it 6 : //# under the terms of the GNU Library General Public License as published by 7 : //# the Free Software Foundation; either version 2 of the License, or (at your 8 : //# option) any later version. 9 : //# 10 : //# This library is distributed in the hope that it will be useful, but WITHOUT 11 : //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 12 : //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public 13 : //# License for more details. 14 : //# 15 : //# You should have received a copy of the GNU Library General Public License 16 : //# along with this library; if not, write to the Free Software Foundation, 17 : //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA. 18 : //# 19 : //# Correspondence concerning AIPS++ should be addressed as follows: 20 : //# Internet email: aips2-requesemat@nrao.edu. 21 : //# Postal address: AIPS++ Project Office 22 : //# National Radio Astronomy Observatory 23 : //# 520 Edgemont Road 24 : //# Charlottesville, VA 22903-2475 USA 25 : //# 26 : //# 27 : //# $Id: ImageMomentsProgress.h 20299 2008-04-03 05:56:44Z gervandiepen $ 28 : 29 : #ifndef IMAGES_IMAGEMOMENTSPROGRESS_H 30 : #define IMAGES_IMAGEMOMENTSPROGRESS_H 31 : 32 : 33 : #include <casacore/casa/aips.h> 34 : #include <casacore/lattices/LatticeMath/LatticeProgress.h> 35 : #include <casacore/casa/System/ProgressMeter.h> 36 : 37 : namespace casa { //# NAMESPACE CASA - BEGIN 38 : 39 : // <summary> Provides a progress meter for the ImageMoments class </summary> 40 : // <use visibility=export> 41 : // 42 : // <reviewed reviewer="" date="yyyy/mm/dd" tests="" demos=""> 43 : // </reviewed> 44 : // 45 : // <prerequisite> 46 : // <li> <linkto module=Lattices>casacore::LatticeProgress</linkto> 47 : // </prerequisite> 48 : // 49 : // <etymology> 50 : // Display a progress meter for the ImageMoments class 51 : // </etymology> 52 : // 53 : // <synopsis> 54 : // Progress meters can be displayed by the casacore::LatticeApply class 55 : // which is used by ImageMoments in order to optimally iterate 56 : // through the image by lines. To do this, one must derive a 57 : // class from LatticeProgress. casacore::LatticeApply calls methods declared 58 : // in casacore::LatticeProgress and implemented in the derived class. 59 : // </synopsis> 60 : // 61 : // <motivation> 62 : // I like progress meters ! 63 : // </motivation> 64 : // 65 : // <todo asof="1998/01/10"> 66 : // </todo> 67 : class ImageMomentsProgressMonitor; 68 : 69 : class ImageMomentsProgress : public casacore::LatticeProgress 70 : { 71 : public: 72 : 73 : // Constructor makes a null object 74 0 : ImageMomentsProgress() : itsMeter(0), progressMonitor(0) {}; 75 : 76 : // Destructor deletes the casacore::ProgressMeter pointer 77 : virtual ~ImageMomentsProgress(); 78 : 79 : // Initialize this object. Here we create the ProgressMeter 80 : // This function is called by the <src>init</src> in LatticeProgress 81 : virtual void initDerived(); 82 : 83 : // Tell the number of steps done so far. 84 : virtual void nstepsDone (casacore::uInt nsteps); 85 : 86 : // The process has ended so clean things up. 87 : virtual void done(); 88 : 89 : //Set an ImageMomentsProgressMonitor that wants to receive 90 : //progress updates 91 : void setProgressMonitor( ImageMomentsProgressMonitor* monitor ); 92 : 93 : private: 94 : casacore::ProgressMeter* itsMeter; 95 : ImageMomentsProgressMonitor* progressMonitor; 96 : bool maxReported; 97 : }; 98 : 99 : 100 : } //# NAMESPACE CASA - END 101 : 102 : #endif