Home

Spatial_abs_hurler Class Reference
[Deformable Modeling Direct Interface]

This abstract base class class provides a protocol for handling exceptions across interfaces. More...

#include <spatial_abs_hurler.hxx>

Inheritance diagram for Spatial_abs_hurler:

Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual void rethrow_error (int error_no)=0
 A pure virtual method for resignaling an exception.
 Spatial_abs_hurler ()
 Default constructor.
virtual ~Spatial_abs_hurler ()
 Default destructor.


Detailed Description

This abstract base class class provides a protocol for handling exceptions across interfaces.



Role: Exception handling across interfaces is problematic, because different libraries may have different exception handling methods, e.g., C++ try-catch or C setjmp-longjmp. Interface routines taking a Spatial_abs_hurler agree to trap all exceptions, translate them to an integer code, and then call the Spatial_abs_hurlerrethrow_error method with the integer code. To use such an interface routine, clients must pass in a concrete hurler object, such as a DM_rtnerr_hurler, that will resignal the error using the client code's error signalling mechanism.

IMPORTANT: An error code of 0 (zero) is reserved as a no-error condition, and may be passed to the rethrow_error method by the Deformable modeling kernel. Therefore the rethrow_error method of subclasses overriding the Spatial_abs_hurler must not signal an error when passed a 0 argument.

See also:
DM_rtnerr_hurler, DM_syserr_hurler

Constructor & Destructor Documentation

virtual Spatial_abs_hurler::~Spatial_abs_hurler (  )  [inline, virtual]

Default destructor.

Spatial_abs_hurler::Spatial_abs_hurler (  )  [inline]

Default constructor.


Member Function Documentation

virtual void Spatial_abs_hurler::rethrow_error ( int  error_no  )  [pure virtual]

A pure virtual method for resignaling an exception.



Role: This pure virtual method is overriden by a concrete hurler subclass to implement a specific error resignalling strategy (such as C++ exception or integer error code). It must treat a 0 argument as a no-error condition.

Parameters:
error_no error code that will be resignaled by the hurler.

Implemented in DM_rtnerr_hurler, DM_syserr_hurler, and Spatial_syserr_hurler.