ACE_Reactor
.
#include <ace/Signal.h> class ACE_Sig_Adapter : public ACE_Event_Handler {
public:
ACE_Sig_Adapter (ACE_Sig_Action &, int sigkey);
ACE_Sig_Adapter (ACE_Event_Handler *, int sigkey);
ACE_Sig_Adapter (ACE_Sig_Handler_Ex, int sigkey = 0);
int sigkey (void);
virtual int handle_signal (int, siginfo_t *, ucontext_t *);
private:
int sigkey_;
enum { ACE_HANDLER, SIG_ACTION, C_FUNCTION } type_; ACE_Sig_Action sa_; ACE_Event_Handler *eh_; ACE_Sig_Handler_Ex sig_func_; }; class ACE_Sig_Handlers : public ACE_Sig_Handler {public:
virtual int register_handler ( int signum, ACE_Event_Handler *new_sh, ACE_Sig_Action *new_disp = 0, ACE_Event_Handler **old_sh = 0, ACE_Sig_Action *old_disp = 0 );
virtual int remove_handler ( int signum, ACE_Sig_Action *new_disp = 0, ACE_Sig_Action *old_disp = 0, int sigkey = -1 );
virtual ACE_Event_Handler *handler (int signum);
virtual ACE_Event_Handler *handler ( int signum, ACE_Event_Handler * );
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
private:
static void dispatch (int signum, siginfo_t *, ucontext_t *);
static int sigkey_;
static int third_party_sig_handler_;
};
};
ACE_Sig_Adapter (ACE_Sig_Action &, int sigkey);
ACE_Sig_Adapter (ACE_Event_Handler *, int sigkey);
ACE_Sig_Adapter (ACE_Sig_Handler_Ex, int sigkey = 0);
int sigkey (void);
ACE_Reactor
's internal table.
virtual int handle_signal (int, siginfo_t *, ucontext_t *);
Reactor
to dispatch the signal handler.
int sigkey_;