/usr/include/oce/OSD.hxx is in liboce-foundation-dev 0.17.2-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | // 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
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Macro.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Real.hxx>
#include <Standard_PCharacter.hxx>
#include <Standard_CString.hxx>
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_SharedLibrary;
class OSD_Thread;
//! Set of Operating Sytem Dependent Tools
//! (O)perating (S)ystem (D)ependent
class OSD
{
public:
DEFINE_STANDARD_ALLOC
//! A tool to manage threads
//!
//! Sets signal and exception handlers.
//! <b>Windows-specific notes<\b>
//! Compiled with MS VC++ sets 3 main handlers:
//! @li Signal handlers (via ::signal() functions) that translate system signals
//! (SIGSEGV, SIGFPE, SIGILL) into C++ exceptions (classes inheriting
//! Standard_Failure). They only be called if user calls ::raise() function
//! with one of supported signal type set.
//! @li Exception handler OSD::WntHandler() (via ::SetUnhandledExceptionFilter())
//! that will be used when user's code is compiled with /EHs option.
//! @li Structured exception (SE) translator (via _set_se_translator()) that
//! translates SE exceptions (aka asynchronous exceptions) into the
//! C++ exceptions inheriting Standard_Failure. This translator will be
//! used when user's code is compiled with /EHa option.
//!
//! This approach ensures that regardless of the option the user chooses to
//! compile his code with (/EHs or /EHa), signals (or SE exceptions) will be
//! translated into Open CASCADE C++ exceptions.
//!
//! If @a theFloatingSignal is TRUE then floating point exceptions will be
//! generated in accordance with the mask
//! <tt>_EM_INVALID | _EM_DENORMAL | _EM_ZERODIVIDE | _EM_OVERFLOW<\tt> that is
//! used to call ::_controlfp() system function. If @a theFloatingSignal is FALSE
//! corresponding operations (e.g. division by zero) will gracefully complete
//! without an exception.
//!
//! <b>Unix-specific notes<\b>
//! OSD::SetSignal() sets handlers (via ::sigaction()) for multiple signals
//! (SIGFPE, SIGSEGV, etc). Currently the number of handled signals is much
//! greater than for Windows, in the future this may change to provide better
//! consistency with Windows.
//!
//! @a theFloatingSignal is recognized on Sun Solaris, Linux, and SGI Irix to
//! generate floating-point exception according to the mask
//! <tt>FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW</tt> (in Linux conventions).<br>
//! When compiled with OBJS macro defined, already set signal handlers (e.g.
//! by Data Base Managers) are not redefined.
//!
//! <b>Common notes<\b>
//! If OSD::SetSignal() method is used in at least one thread, it must also be
//! called in any other thread where Open CASCADE will be used, to ensure
//! consistency of behavior. Its @a aFloatingSignal argument must be consistent
//! across threads.
//!
//! Keep in mind that whether the C++ exception will really be thrown (i.e.
//! ::throw() will be called) is regulated by the NO_CXX_EXCEPTIONS and
//! OCC_CONVERT_SIGNALS macros used during compilation of Open CASCADE and
//! user's code. Refer to Foundation Classes User's Guide for further details.
Standard_EXPORT static void SetSignal (const Standard_Boolean theFloatingSignal = 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() ;
protected:
private:
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_SharedLibrary;
friend class OSD_Thread;
};
#endif // _OSD_HeaderFile
|