// This file is generated by WOK (CPPExt). // Please do not edit this file; modify original file instead. // The copyright and license terms as defined for the original file apply to // this header file considered to be the "object code" form of the original source. #ifndef _OSD_HeaderFile #define _OSD_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _OSD_Signals_HeaderFile #include #endif #ifndef _Standard_Address_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif #ifndef _Standard_PCharacter_HeaderFile #include #endif #ifndef _Standard_CString_HeaderFile #include #endif class OSD_Error; class OSD_Protection; class OSD_Path; class OSD_FileNode; class OSD_Disk; class OSD_File; class OSD_FileIterator; class OSD_Directory; class OSD_DirectoryIterator; class OSD_Chronometer; class OSD_Timer; class OSD_Printer; class OSD_Host; class OSD_Environment; class OSD_EnvironmentIterator; class OSD_Process; class OSD_SharedMemory; class OSD_Semaphore; class OSD_MailBox; class OSD_SharedLibrary; class OSD_Thread; class OSD_SystemFont; class OSD_FontMgr; class OSD_Real2String; class OSD_Localizer; //! Set of Operating Sytem Dependent Tools
//! (O)perating (S)ystem (D)ependent
class OSD { public: void* operator new(size_t,void* anAddress) { return anAddress; } void* operator new(size_t size) { return Standard::Allocate(size); } void operator delete(void *anAddress) { if (anAddress) Standard::Free((Standard_Address&)anAddress); } //! 1) Arms some floating point signals, and sets a "Handler" for them.
//! 2) Sets a "Handler" for the "Hardware" signals.
//! For Win32 users: under VC++ you can control which method of handling
//! exceptions is used by means of UseSETranslator method before calling
//! SetSignal
Standard_EXPORT static void SetSignal(const Standard_Boolean aFloatingSignal = Standard_True) ; //! Returns available memory in Kilobytes.
Standard_EXPORT static Standard_Integer AvailableMemory() ; //! Commands the process to sleep for a number of seconds.
Standard_EXPORT static void SecSleep(const Standard_Integer aDelay) ; //! Commands the process to sleep for a number of milliseconds
Standard_EXPORT static void MilliSecSleep(const Standard_Integer aDelay) ; //! Converts aReal into aCstring in exponential format with a period as
//! decimal point, no thousand separator and no grouping of digits.
//! The conversion is independant from the current locale
Standard_EXPORT static Standard_Boolean RealToCString(const Standard_Real aReal,Standard_PCharacter& aString) ; //! Converts aCstring representing a real with a period as
//! decimal point, no thousand separator and no grouping of digits
//! into aReal .
//! The conversion is independant from the current locale.
Standard_EXPORT static Standard_Boolean CStringToReal(const Standard_CString aString,Standard_Real& aReal) ; //! Tests if the quotient theDividend/theDivisor
//! does not overflow
Standard_EXPORT static Standard_Boolean IsDivisible(const Standard_Real aDividend,const Standard_Real aDivisor) ; //! Returns the exponent in base 2 of a floating-point number.
Standard_EXPORT static Standard_Integer GetExponent(const Standard_Real aReal) ; //! Returns the mantissa of a floating-point number.
Standard_EXPORT static Standard_Real GetMantissa(const Standard_Real aReal) ; //! since Windows NT does not support 'SIGINT' signal like UNIX,
//! then this method checks whether Ctrl-Break keystroke was or
//! not. If yes then raises Exception_CTRL_BREAK.
Standard_EXPORT static void ControlBreak() ; //! Defines whether SetSignal must use _se_translator_function or
//! SetUnhandledExceptionFilter and signal to catch system
//! exceptions. The default behaviour is to use SE translator.
//! Warning: Using SE translator method SetSignal should be called for each
//! new created thread, while using the alternative method
//! the exception handler is established once for the whole
//! process and all its threads.
//! This function takes effect only under VC++ compiler.
Standard_EXPORT static void UseSETranslator(const Standard_Boolean useSE) ; //! Returns the current value of the flag set by above method.
Standard_EXPORT static Standard_Boolean UseSETranslator() ; protected: private: Standard_EXPORT static void Handler(const OSD_Signals aSignal,const Standard_Address aSigInfo,const Standard_Address aContext) ; Standard_EXPORT static void SegvHandler(const OSD_Signals aSignal,const Standard_Address aSigInfo,const Standard_Address aContext) ; //! 1) Raises an exception if the exception due to floating point errors.
//! Flosting point errors:
//! EXCEPTION_FLT_DENORMAL_OPERAND
//! EXCEPTION_FLT_DIVIDE_BY_ZERO
//! EXCEPTION_FLT_INEXACT_RESULT
//! EXCEPTION_FLT_INVALID_OPERATION
//! EXCEPTOPN_FLT_OVERFLOW
//! EXCEPTION_FLT_STACK_CHECK
//! EXCEPTION_FLT_UNDERFLOW
//! 2) Displays a message box 'Continue' - 'Debugger' - 'Stop' if the environment
//! variable 'CSF_EXCEPTION_PROMPT' is set and takes appropriate action.
//! Raises an exception otherwise.
Standard_EXPORT static Standard_Integer WntHandler(const Standard_Address exceptionInfo) ; friend class OSD_Error; friend class OSD_Protection; friend class OSD_Path; friend class OSD_FileNode; friend class OSD_Disk; friend class OSD_File; friend class OSD_FileIterator; friend class OSD_Directory; friend class OSD_DirectoryIterator; friend class OSD_Chronometer; friend class OSD_Timer; friend class OSD_Printer; friend class OSD_Host; friend class OSD_Environment; friend class OSD_EnvironmentIterator; friend class OSD_Process; friend class OSD_SharedMemory; friend class OSD_Semaphore; friend class OSD_MailBox; friend class OSD_SharedLibrary; friend class OSD_Thread; friend class OSD_SystemFont; friend class OSD_FontMgr; friend class OSD_Real2String; friend class OSD_Localizer; }; // other Inline functions and methods (like "C++: function call" methods) #endif