NAME

ACE_Sig_Adapter - Provide an adapter that transforms various types of signal handlers into the scheme used by the ACE_Reactor.

SYNOPSIS


#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_;
    };

};

PUBLIC MEMBERS

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 MEMBERS

int sigkey_;

AUTHOR

Doug Schmidt

LIBRARY

ace