1 //-----------------------------------------------------------------------------
2 // This file is a part of the Qanava and LTM software.
5 // \author Benoit Autheman (benoit@faktiss.net)
7 //-----------------------------------------------------------------------------
10 #ifndef qan_utlProgress_h
11 #define qan_utlProgress_h
15 #include "./utlConfig.h"
18 //-----------------------------------------------------------------------------
19 namespace QAN_UTL_ROOT_NAMESPACE
// ::QAN_UTL_ROOT_NAMESPACE
21 namespace utl
// ::QAN_UTL_ROOT_NAMESPACE::utl
23 //! Abstract class used to provide feedback about a task progression.
29 /*! \name Progress Constructor/Destructor *///------------------------
33 //! Progress constructor.
34 Progress( int maxProgress
= 100 ) :
36 _maxProgress( maxProgress
) { }
38 //! Progress destructor.
39 virtual ~Progress( ) { }
43 //! Progress empty private copy constructor.
44 Progress( const Progress
& progress
) { }
46 //-----------------------------------------------------------------
50 /*! \name Progress Management *///---------------------------------
55 void reset( int maxProgress
);
58 void setProgress( int progress
)
61 if ( _maxProgress
!= 0 )
62 updateProgress( progress
* 100 / _maxProgress
);
66 int getProgress( ) const { return _progress
; }
69 void incProgress( ) { setProgress( getProgress( ) + 1 ); }
72 virtual void setMaxProgress( int maxProgress
) { _maxProgress
= maxProgress
; }
75 virtual bool getCancel( ) = 0;
78 void finish( ) { setProgress( _maxProgress
); }
83 virtual void updateProgress( int percent
) = 0;
91 //-----------------------------------------------------------------
96 //! Progress default concrete implementation.
100 class ProgressVoid
: public Progress
102 /*! \name Progress Management *///---------------------------------
107 virtual bool getCancel( ) { return false; }
112 virtual void updateProgress( int /*percent*/ ) { }
114 //-----------------------------------------------------------------
116 } // ::QAN_UTL_ROOT_NAMESPACE::utl
117 } // ::QAN_UTL_ROOT_NAMESPACE
118 //-----------------------------------------------------------------------------
121 #endif // qan_utlProgress_h