Open CASCADE Technology 7.8.0
Public Member Functions | Protected Attributes
Message_LazyProgressScope Class Reference

Progress scope with lazy updates and abort fetches. More...

#include <Message_LazyProgressScope.hxx>

Inheritance diagram for Message_LazyProgressScope:
Inheritance graph
[legend]

Public Member Functions

 Message_LazyProgressScope (const Message_ProgressRange &theRange, const char *theName, const Standard_Real theMax, const Standard_Real thePatchStep, const Standard_Boolean theIsInf=Standard_False)
 Main constructor.
 
void Next ()
 Increment progress with 1.
 
Standard_Boolean More () const
 Return TRUE if progress has been aborted - return the cached state lazily updated.
 
Standard_Boolean IsAborted ()
 Return TRUE if progress has been aborted - fetches actual value from the Progress.
 

Protected Attributes

Standard_Real myPatchStep
 
Standard_Real myPatchProgress
 
Standard_Boolean myIsLazyAborted
 

Additional Inherited Members

- Protected Member Functions inherited from Message_ProgressScope
 Message_ProgressScope ()
 Creates dummy scope. It can be safely passed to algorithms; no progress indication will be done.
 
 Message_ProgressScope (const Message_ProgressRange &theRange, const TCollection_AsciiString &theName, Standard_Real theMax, Standard_Boolean isInfinite=false)
 Creates a new scope taking responsibility of the part of the progress scale described by theRange. The new scope has own range from 0 to theMax, which is mapped to the given range.
 
template<size_t N>
 Message_ProgressScope (const Message_ProgressRange &theRange, const char(&theName)[N], Standard_Real theMax, Standard_Boolean isInfinite=false)
 Creates a new scope taking responsibility of the part of the progress scale described by theRange. The new scope has own range from 0 to theMax, which is mapped to the given range.
 
 Message_ProgressScope (const Message_ProgressRange &theRange, const NullString *theName, Standard_Real theMax, Standard_Boolean isInfinite=false)
 Creates a new scope taking responsibility of the part of the progress scale described by theRange. The new scope has own range from 0 to theMax, which is mapped to the given range.
 
void SetName (const TCollection_AsciiString &theName)
 Sets the name of the scope.
 
template<size_t N>
void SetName (const char(&theName)[N])
 Sets the name of the scope; can be null. Note! Just pointer to the given string is copied, so do not pass string from a temporary variable whose lifetime is less than that of this object.
 
Standard_Boolean UserBreak () const
 Returns true if ProgressIndicator signals UserBreak.
 
Standard_Boolean More () const
 Returns false if ProgressIndicator signals UserBreak.
 
Message_ProgressRange Next (Standard_Real theStep=1.)
 Advances position by specified step and returns the range covering this step.
 
void Show ()
 Force update of presentation of the progress indicator. Should not be called concurrently.
 
Standard_Boolean IsActive () const
 Returns true if this progress scope is attached to some indicator.
 
Standard_CString Name () const
 Returns the name of the scope (may be null). Scopes with null name (e.g. root scope) should be bypassed when reporting progress to the user.
 
const Message_ProgressScopeParent () const
 Returns parent scope (null for top-level scope)
 
Standard_Real MaxValue () const
 Returns the maximal value of progress in this scope.
 
Standard_Real Value () const
 Returns the current value of progress in this scope.
 
Standard_Boolean IsInfinite () const
 Returns the infinite flag.
 
Standard_Real GetPortion () const
 Get the portion of the indicator covered by this scope (from 0 to 1)
 
 ~Message_ProgressScope ()
 Destructor - closes the scope and adds its scale to the total progress.
 
void Close ()
 Closes the scope and advances the progress to its end. Closed scope should not be used.
 

Detailed Description

Progress scope with lazy updates and abort fetches.

Although Message_ProgressIndicator implementation is encouraged to spare GUI updates, even optimized implementation might show a noticeable overhead on a very small update step (e.g. per triangle).

The class splits initial (displayed) number of overall steps into larger chunks specified in constructor, so that displayed progress is updated at larger steps.

Constructor & Destructor Documentation

◆ Message_LazyProgressScope()

Message_LazyProgressScope::Message_LazyProgressScope ( const Message_ProgressRange theRange,
const char theName,
const Standard_Real  theMax,
const Standard_Real  thePatchStep,
const Standard_Boolean  theIsInf = Standard_False 
)
inline

Main constructor.

Parameters
theRange[in] progress range to scope
theName[in] name of this scope
theMax[in] number of steps within this scope
thePatchStep[in] number of steps to update progress
theIsInf[in] infinite flag

Member Function Documentation

◆ IsAborted()

Standard_Boolean Message_LazyProgressScope::IsAborted ( )
inline

Return TRUE if progress has been aborted - fetches actual value from the Progress.

◆ More()

Standard_Boolean Message_LazyProgressScope::More ( ) const
inline

Return TRUE if progress has been aborted - return the cached state lazily updated.

◆ Next()

void Message_LazyProgressScope::Next ( )
inline

Increment progress with 1.

Field Documentation

◆ myIsLazyAborted

Standard_Boolean Message_LazyProgressScope::myIsLazyAborted
protected

◆ myPatchProgress

Standard_Real Message_LazyProgressScope::myPatchProgress
protected

◆ myPatchStep

Standard_Real Message_LazyProgressScope::myPatchStep
protected

The documentation for this class was generated from the following file: