NAME

ACE_Sig_Action - C++ wrapper facade for the sigaction struct.

SYNOPSIS

#include <ace/Signal.h>

class ACE_Sig_Action { public: ACE_Sig_Action (void); ACE_Sig_Action ( ACE_SignalHandler handler, sigset_t *sigmask = 0, int flags = 0 ); ACE_Sig_Action ( ACE_SignalHandler handler, const ACE_Sig_Set &sigmask, int flags = 0 ); ACE_Sig_Action ( ACE_SignalHandler handler, int signum, sigset_t *sigmask = 0, int flags = 0 ); ACE_Sig_Action ( ACE_SignalHandler handler, int signum, const ACE_Sig_Set &sigmask, int flags = 0 ); ACE_Sig_Action ( const ACE_Sig_Set &signalss, ACE_SignalHandler handler, const ACE_Sig_Set &sigmask, int flags = 0 ); ACE_Sig_Action ( const ACE_Sig_Set &signalss, ACE_SignalHandler handler, sigset_t *sigmask = 0, int flags = 0 ); ACE_Sig_Action (const ACE_Sig_Action &s); ~ACE_Sig_Action (void); int register_action (int signum, ACE_Sig_Action *oaction = 0); int restore_action (int signum, ACE_Sig_Action &oaction); int retrieve_action (int signum); void set (struct sigaction *); operator ACE_SIGACTION *(); void flags (int); int flags (void); void mask (sigset_t *); void mask (ACE_Sig_Set &); sigset_t *mask (void); void handler (ACE_SignalHandler); ACE_SignalHandler handler (void); void dump (void) const; ACE_ALLOC_HOOK_DECLARE; };

Initialization methods.

ACE_Sig_Action (void);

ACE_Sig_Action (
    ACE_SignalHandler handler,
    sigset_t *sigmask = 0,
    int flags = 0
    );

ACE_Sig_Action (
    ACE_SignalHandler handler,
    const ACE_Sig_Set &sigmask,
    int flags = 0
    );

ACE_Sig_Action (
    ACE_SignalHandler handler,
    int signum,
    sigset_t *sigmask = 0,
    int flags = 0
    );

ACE_Sig_Action (
    ACE_SignalHandler handler,
    int signum,
    const ACE_Sig_Set &sigmask,
    int flags = 0
    );

@@ The next two methods have a parameter as "signalss". Please do not change the argument name as "signals". This causes the following problem as reported by James.Briggs@dsto.defence.gov.au. In the file Signal.h two of the functions have and argument name of signals. signals is a Qt macro (to do with their meta object stuff. We could as well have it as "signal", but I am nost sure whether that would cause a problem with something else - Bala bala@cs

ACE_Sig_Action (
    const ACE_Sig_Set &signalss,
    ACE_SignalHandler handler,
    const ACE_Sig_Set &sigmask,
    int flags = 0
    );

ACE_Sig_Action (
    const ACE_Sig_Set &signalss,
    ACE_SignalHandler handler,
    sigset_t *sigmask = 0,
    int flags = 0
    );

ACE_Sig_Action (const ACE_Sig_Action &s);

~ACE_Sig_Action (void);

Signal action management.

int register_action (int signum, ACE_Sig_Action *oaction = 0);

int restore_action (int signum, ACE_Sig_Action &oaction);

int retrieve_action (int signum);

Set/get current signal action.

void set (struct sigaction *);

operator ACE_SIGACTION *();

Set/get current signal flags.

void flags (int);

int flags (void);

Set/get current signal mask.

void mask (sigset_t *);

void mask (ACE_Sig_Set &);

sigset_t *mask (void);

Set/get current signal handler (pointer to function).

void handler (ACE_SignalHandler);

ACE_SignalHandler handler (void);

void dump (void) const;

ACE_ALLOC_HOOK_DECLARE;

AUTHOR

Doug Schmidt

LIBRARY

ace