1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-04 13:13:25 +03:00
occt/src/Standard/Standard_ErrorHandlerCallback.cdl
bugmaster b311480ed5 0023024: Update headers of OCCT files
Added appropriate copyright and license information in source files
2012-03-21 19:43:04 +04:00

71 lines
3.1 KiB
Plaintext
Executable File

-- Created on: 2006-04-13
-- Created by: Andrey BETENEV
-- Copyright (c) 2006-2012 OPEN CASCADE SAS
--
-- The content of this file is subject to the Open CASCADE Technology Public
-- License Version 6.5 (the "License"). You may not use the content of this file
-- except in compliance with the License. Please obtain a copy of the License
-- at http://www.opencascade.org and read it completely before using this file.
--
-- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
--
-- The Original Code and all software distributed under the License is
-- distributed on an "AS IS" basis, without warranty of any kind, and the
-- Initial Developer hereby disclaims all such warranties, including without
-- limitation, any warranties of merchantability, fitness for a particular
-- purpose or non-infringement. Please see the License for the specific terms
-- and conditions governing the rights and limitations under the License.
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;