Open CASCADE Technology
6.9.0
|
Defines a base class for callback objects that can be registered in the OCC error handler (the class simulating C++ exceptions) so as to be correctly destroyed when error handler is activated. More...
#include <Standard_ErrorHandlerCallback.hxx>
Public Member Functions | |
void | RegisterCallback () |
Registers this callback object in the current error handler (if found). More... | |
void | UnregisterCallback () |
Unregisters this callback object from the error handler. More... | |
virtual | ~Standard_ErrorHandlerCallback () |
virtual void | DestroyCallback ()=0 |
The callback function to perform necessary callback action. Called by the exception handler when it is being destroyed but still has this callback registered. More... | |
Protected Member Functions | |
Standard_ErrorHandlerCallback () | |
Empty constructor. More... | |
Defines a base class for callback objects that can be registered in the OCC error handler (the class simulating C++ exceptions) so as to be correctly destroyed when error handler is activated.
Note that this is needed only when Open CASCADE is compiled with NO_CXX_EXCEPTION or OCC_CONVERT_SIGNALS options (i.e. on UNIX/Linux). In that case, raising OCC exception and/or signal will not cause C++ stack unwinding and destruction of objects created in the stack.
This class is intended to protect critical objects and operations in the try {} catch {} block from being bypassed by OCC signal or exception.
Inherit your object from that class, implement DestroyCallback() function, and call Register/Unregister in critical points.
Note that you must ensure that your object has life span longer than that of the try {} block in which it calls Register().
|
virtual |
|
protected |
Empty constructor.
|
pure virtual |
The callback function to perform necessary callback action. Called by the exception handler when it is being destroyed but still has this callback registered.
void Standard_ErrorHandlerCallback::RegisterCallback | ( | ) |
Registers this callback object in the current error handler (if found).
void Standard_ErrorHandlerCallback::UnregisterCallback | ( | ) |
Unregisters this callback object from the error handler.