blob: fc09c67b3b40ec3f40f194de8ad3753aa25ff6d0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
-- File: Standard_ErrorHandlerCallback.cdl
-- Created: Thu Apr 13 11:17:05 2006
-- Author: Andrey BETENEV
---Copyright: Open CASCADE SAS 2006
deferred class ErrorHandlerCallback from Standard
---Purpose: 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().
is
Initialize returns ErrorHandlerCallback;
---Purpose: Empty constructor
---C++: inline
RegisterCallback (me: in out);
---Purpose: Registers this callback object in the current error handler
-- (if found).
---C++: inline
UnregisterCallback (me: in out);
---Purpose: Unregisters this callback object from the error handler.
---C++: inline
---C++: alias "virtual Standard_EXPORT ~Standard_ErrorHandlerCallback ();"
DestroyCallback (me: in out) is deferred;
---Purpose: The callback function to perform necessary callback action.
-- Called by the exception handler when it is being destroyed but
-- still has this callback registered.
fields
myHandler: Address from Standard; -- Pointer to the error handler
myPrev, myNext: Address from Standard; -- Pointers to the previous and next callback objects
friends
class ErrorHandler
end ErrorHandlerCallback;
|