Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / src / OSspecific / POSIX / signals / sigQuit.H
blob57afd98df424fbad2b55c45d471f197be5ac4323
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2004-2011 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by
13     the Free Software Foundation, either version 3 of the License, or
14     (at your option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::sigQuit
27 Description
28     Signal handler for QUIT interupt.
30     The standard interupt handler is overridden to ensure that the
31     runningJob file is removed.
33 See Also
34     Foam::JobInfo
36 SourceFiles
37     sigQuit.C
39 \*---------------------------------------------------------------------------*/
41 #ifndef sigQuit_H
42 #define sigQuit_H
44 #include <signal.h>
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 namespace Foam
51 /*---------------------------------------------------------------------------*\
52                            Class sigQuit Declaration
53 \*---------------------------------------------------------------------------*/
55 class sigQuit
57     // Private data
59         //- Saved old signal trapping setting
60         static struct sigaction oldAction_;
63     // Private Member Functions
65         //- Handler for caught signals
66         static void sigHandler(int);
69 public:
71     // Constructors
73         //- Construct null
74         sigQuit();
77     //- Destructor
78     ~sigQuit();
81     // Member functions
83         //- Activate SIGQUIT signal handler
84         void set(const bool verbose);
88 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
90 } // End namespace Foam
92 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
94 #endif
96 // ************************************************************************* //