Streamline wxSocket code: wxSocketBase now uses wxSocketImpl (previously known
[wxWidgets.git] / include / wx / unix / app.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/unix/app.h
3 // Purpose: wxAppConsole implementation for Unix
4 // Author: Lukasz Michalski
5 // Created: 28/01/2005
6 // RCS-ID: $Id$
7 // Copyright: (c) Lukasz Michalski
8 // Licence: wxWindows licence
9 /////////////////////////////////////////////////////////////////////////////
10
11 //Ensure that sigset_t is being defined
12 #include <signal.h>
13
14 // wxApp subclass implementing event processing for console applications
15 class WXDLLIMPEXP_BASE wxAppConsole : public wxAppConsoleBase
16 {
17 public:
18 // override base class initialization
19 virtual bool Initialize(int& argc, wxChar** argv);
20
21
22 // Unix-specific: Unix signal handling
23 // -----------------------------------
24
25 // type of the function which can be registered as signal handler: notice
26 // that it isn't really a signal handler, i.e. it's not subject to the
27 // usual signal handlers constraints, because it is called later from
28 // CheckSignal() and not when the signal really occurs
29 typedef void (*SignalHandler)(int);
30
31 // Set signal handler for the given signal, SIG_DFL or SIG_IGN can be used
32 // instead of a function pointer
33 //
34 // Return true if handler was installed, false on error
35 bool SetSignalHandler(int signal, SignalHandler handler);
36
37 // Check if any Unix signals arrived since the last call and execute
38 // handlers for them
39 void CheckSignal();
40
41 private:
42 // signal handler set up by SetSignalHandler() for all signals we handle,
43 // it just adds the signal to m_signalsCaught -- the real processing is
44 // done later, when CheckSignal() is called
45 static void HandleSignal(int signal);
46
47
48 // signals for which HandleSignal() had been called (reset from
49 // CheckSignal())
50 sigset_t m_signalsCaught;
51
52 // the signal handlers
53 WX_DECLARE_HASH_MAP(int, SignalHandler, wxIntegerHash, wxIntegerEqual, SignalHandlerHash);
54 SignalHandlerHash m_signalHandlerHash;
55 };