---
name: "ACE_Sig_Adapter"
section: "3"
platform: "linux"
package: "libace-doc"
version: "5.0.7-4"
release: "Debian 2.2 (Potato)"
platforms: ["linux"]
url: "https://new.carta.tech/ACE_Sig_Adapter"
---

# ACE\_Sig\_Adapter(3)

Provide an adapter that transforms various types of signal handlers into the scheme used by the ACE\_Reactor.

## 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);
    ~ACE_Sig_Adapter (void);
    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 *
            );
        static void dispatch (int signum, siginfo_t *, ucontext_t *);
        void dump (void) const;
        ACE_ALLOC_HOOK_DECLARE;
      private:
        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);
```

```
~ACE_Sig_Adapter (void);
```

```
int sigkey (void);
```

Returns this signal key that's used to remove this from the ACE\_Reactor's internal table.

```
virtual int handle_signal (int, siginfo_t *, ucontext_t *);
```

Called by the Reactor to dispatch the signal handler.

## PRIVATE MEMBERS

```
int sigkey_;
```

Key for this signal handler (used to remove it).

## AUTHOR

Doug Schmidt

## LIBRARY

ace
