From 3a4838bed13b767132cbdf06364b2658da6cc356 Mon Sep 17 00:00:00 2001 From: chatty Date: Tue, 15 Dec 1992 10:55:33 +0000 Subject: Initial revision --- utils/Signal.h | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 utils/Signal.h (limited to 'utils/Signal.h') diff --git a/utils/Signal.h b/utils/Signal.h new file mode 100644 index 0000000..c51b070 --- /dev/null +++ b/utils/Signal.h @@ -0,0 +1,79 @@ +/* + * CENA C++ Utilities + * + * by Stephane Chatty + * + * Copyright 1992 + * Centre d'Etudes de la Navigation Aerienne (CENA) + * + * Signal handling + * + * $Id$ + * $CurLog$ + */ + +#ifndef Signal_H_ +#define Signal_H_ + +#include "cplus_bugs.h" +class CcuList; + +#ifdef CPLUS_BUG21 +#ifdef sun +#define NSIG 32 +#else +#include +#endif +#endif + +class CcuBaseSignalHandler { +private: +static CcuList* HandlerStacks; +static void ClassInit (); + void Install (); +static void InstallNone (int); +static void DoHandle (int); + +public: + CcuBaseSignalHandler (int); +virtual ~CcuBaseSignalHandler (); + +protected: + int Signal; +/*?public?*/ +virtual void Handle (); + +}; + +extern const int AllSigs, SigHup, SigInt, SigQuit, SigIll, SigTrap, SigAbrt, SigEmt, SigFpe, + SigKill, SigBus, SigSegv, SigSys, SigPipe, SigAlrm, SigTerm, SigUsr1, + SigUsr2, SigChld, SigVtalrm, SigIo, SigStop, + SigTstp, SigCont, SigTtin, SigTtou, SigUrg, SigLost; + +class CcuSignalHandler : public CcuBaseSignalHandler { +protected: + void (*Handler) (int); + void Handle (); + +public: + CcuSignalHandler (int, void (*) (int)); + ~CcuSignalHandler (); +}; + + +class CcuSignalBlocker { +private: +#ifndef CPLUS_BUG21 +static int BlockCounts []; +#else +static int BlockCounts [NSIG-1]; +#endif +protected: + int Signal:6; +public: + CcuSignalBlocker (int); + ~CcuSignalBlocker (); +}; + +#endif /* Signal_H_ */ + -- cgit v1.1