Generalize "Cancel Compute" mechanism to be able to report

"Computation canceled" instead of "Algorithm failed" as failure reason

+  volatile bool _computeCanceled; //!< is set to True while computing to stop it
This commit is contained in:
eap 2012-07-20 16:11:12 +00:00
parent 0a45cd504a
commit 7c5dc4f006
2 changed files with 16 additions and 4 deletions

View File

@ -682,11 +682,17 @@ bool SMESH_Algo::Compute(SMESH_Mesh & /*aMesh*/, SMESH_MesherHelper* /*aHelper*/
return error( COMPERR_BAD_INPUT_MESH, "Mesh built on shape expected");
}
#ifdef WITH_SMESH_CANCEL_COMPUTE
//=======================================================================
//function : CancelCompute
//purpose : Sets _computeCanceled to true. It's usage depends on
// * implementation of a particular mesher.
//=======================================================================
void SMESH_Algo::CancelCompute()
{
_computeCanceled = true;
_error = COMPERR_CANCELED;
}
#endif
//================================================================================
/*!
@ -748,6 +754,8 @@ void SMESH_Algo::InitComputeError()
if ( (*elem)->GetID() < 1 )
delete *elem;
_badInputElements.clear();
_computeCanceled = false;
}
//================================================================================

View File

@ -134,9 +134,11 @@ public:
*/
virtual bool Compute(SMESH_Mesh & aMesh, SMESH_MesherHelper* aHelper);
#ifdef WITH_SMESH_CANCEL_COMPUTE
/*!
* \brief Sets _computeCanceled to true. It's usage depends on
* implementation of a particular mesher.
*/
virtual void CancelCompute();
#endif
/*!
* \brief evaluates size of prospective mesh on a shape
@ -378,6 +380,8 @@ protected:
int _error; //!< SMESH_ComputeErrorName or anything algo specific
std::string _comment; //!< any text explaining what is wrong in Compute()
std::list<const SMDS_MeshElement*> _badInputElements; //!< to explain COMPERR_BAD_INPUT_MESH
volatile bool _computeCanceled; //!< is set to True while computing to stop it
};
#endif