//
#include "CASCatch_CatchSignals.hxx"
-#include "CASCatch_Failure.hxx"
-#include "CASCatch_ErrorHandler.hxx"
#include <TCollection_AsciiString.hxx>
#define MAX_HANDLER_NUMBER 6
* \brief creates a CASCatch_CatchSignals
*/
//================================================================================
-CASCatch_CatchSignals::CASCatch_CatchSignals()
- :myIsActivated(Standard_False)
+CASCatch_CatchSignals::CASCatch_CatchSignals(Standard_Boolean theIsActivate):
+ myIsActivated(Standard_False)
{
-
Standard_Integer i = 0;
for(; i<=MAX_HANDLER_NUMBER; i++)
mySigStates[i] = NULL;
+
+ if(theIsActivate)
+ Activate();
}
#ifndef WNT
TCollection_AsciiString aMessage(theSig);
aMessage+=" signal detected";
- CASCatch_Failure::Raise(aMessage.ToCString());
+ Standard_Failure::Raise(aMessage.ToCString());
}
sigaddset(&set, SIGSEGV);
sigprocmask (SIG_UNBLOCK, &set, NULL);
- CASCatch_Failure::Raise("SIGSEGV detected");
+ Standard_Failure::Raise("SIGSEGV detected");
}
#endif
TCollection_AsciiString aMessage((Standard_Integer)dwExceptionCode);
aMessage+=" Exception code - unexpected exception";
- CASCatch_Failure::Raise(aMessage.ToCString());
+ Standard_Failure::Raise(aMessage.ToCString());
return EXCEPTION_EXECUTE_HANDLER;
}
OLDSIGWNTHANDLER = signal( signum , SIGWNTHANDLER );
if(theCode == _FPE_UNDERFLOW || theCode == _FPE_INEXACT) return;
- CASCatch_Failure::Raise ("Floating point error");
+ Standard_Failure::Raise ("Floating point error");
break;
case SIGSEGV :
OLDSIGWNTHANDLER = signal( signum , SIGWNTHANDLER );
- CASCatch_Failure::Raise("Access violation");
+ Standard_Failure::Raise("Access violation");
break;
case SIGILL :
OLDSIGWNTHANDLER = signal( signum , SIGWNTHANDLER );
- CASCatch_Failure::Raise("Illegal instruction" );
+ Standard_Failure::Raise("Illegal instruction" );
break;
}
}
#define _CASCatch_CatchSignals_HeaderFile
#include <Standard.hxx>
+#include <Standard_Failure.hxx>
+#include <Standard_ErrorHandler.hxx>
/*!
* \class CASCatch_CatchSignals
// Methods PUBLIC
//
-Standard_EXPORT CASCatch_CatchSignals();
+Standard_EXPORT CASCatch_CatchSignals(Standard_Boolean theIsActivate = Standard_True);
Standard_EXPORT void Destroy() ;
~CASCatch_CatchSignals() { Destroy(); }
Standard_EXPORT void Activate() ;
};
+#ifdef try
+# undef try
+#endif
+
+#ifdef catch
+# undef catch
+#endif
+
+#ifdef NO_CXX_EXCEPTION
+# if defined(DO_ABORT)
+# define CASCatch_TRY \
+ Standard_ErrorHandler _Function; \
+ K_SETJMP = 1 ; \
+ if(DoesNotAbort(_Function))
+# else //If DO_ABORT is not defined
+# define CASCatch_TRY \
+ Standard_ErrorHandler _Function; \
+ if(DoesNotAbort(_Function))
+# endif //DO_ABORT
+# define CASCatch_CATCH(Error) \
+ else if(_Function.Catches(STANDARD_TYPE(Error)))
+#else
+# define CASCatch_TRY try
+# define CASCatch_CATCH catch
+#endif //NO_CXX_EXCEPTION
+
+
#endif
@COMMENCE@
# header files
-EXPORT_HEADERS= CASCatch_Failure.hxx \
- CASCatch_CatchSignals.hxx \
- CASCatch_ErrorHandler.hxx
+EXPORT_HEADERS= CASCatch_CatchSignals.hxx
+ # CASCatch_Failure.hxx \
+ # CASCatch_ErrorHandler.hxx
# Libraries targets
LIB = libCASCatch.la
-LIB_SRC = CASCatch_Failure.cxx \
- CASCatch_ErrorHandler.cxx \
- CASCatch_CatchSignals.cxx
+LIB_SRC = CASCatch_CatchSignals.cxx
+ # CASCatch_Failure.cxx \
+ # CASCatch_ErrorHandler.cxx
CPPFLAGS += $(OCC_INCLUDES)
CXXFLAGS += $(OCC_CXXFLAGS)
LDFLAGS+= $(CAS_KERNEL) $(CAS_MATH)
-@CONCLUDE@
-
-
+@CONCLUDE@
\ No newline at end of file