tpism_python.hh - pism - [fork] customized build of PISM, the parallel ice sheet model (tillflux branch)
HTML git clone git://src.adamsgaard.dk/pism
DIR Log
DIR Files
DIR Refs
DIR LICENSE
---
tpism_python.hh (1480B)
---
1 // Copyright (C) 2011, 2014, 2015 David Maxwell and Constantine Khroulev
2 //
3 // This file is part of PISM.
4 //
5 // PISM is free software; you can redistribute it and/or modify it under the
6 // terms of the GNU General Public License as published by the Free Software
7 // Foundation; either version 3 of the License, or (at your option) any later
8 // version.
9 //
10 // PISM is distributed in the hope that it will be useful, but WITHOUT ANY
11 // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
13 // details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with PISM; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18
19
20 #ifndef _PISM_PYTHON_
21 #define _PISM_PYTHON_
22
23 namespace pism {
24
25 //! @brief Code added for use in Python wrappers.
26 namespace python {
27
28 void set_abort_on_sigint(bool abort);
29
30 int check_signal();
31 void sigint_handler(int sig);
32
33 extern bool gSIGINT_is_fatal;
34
35 //! Installs a signal handler on construction; deinstalls on destruction.
36 class SigInstaller
37 {
38 public:
39 //! Installs handle \a new_handler for signal \a sig.
40 SigInstaller(int sig, void (*new_handler)(int));
41 //! Restores the signal handler to its previous value.
42 void release();
43
44 ~SigInstaller();
45 private:
46 void (*m_old_handler)(int);
47 int m_sig;
48 };
49
50 } // end of namespace python
51 } // end of namespace pism
52
53 #endif