diff options
Diffstat (limited to 'dep/ACE_wrappers/ace/Signal.h')
-rw-r--r-- | dep/ACE_wrappers/ace/Signal.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/dep/ACE_wrappers/ace/Signal.h b/dep/ACE_wrappers/ace/Signal.h index 080d13ad3f8..7af918cc6e4 100644 --- a/dep/ACE_wrappers/ace/Signal.h +++ b/dep/ACE_wrappers/ace/Signal.h @@ -1,4 +1,5 @@ // -*- C++ -*- + //============================================================================= /** * @file Signal.h @@ -8,21 +9,30 @@ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu> */ //============================================================================= + #ifndef ACE_SIGNAL_H #define ACE_SIGNAL_H #include /**/ "ace/pre.h" + #include "ace/config-lite.h" + #if defined (ACE_DONT_INCLUDE_ACE_SIGNAL_H) # error ace/Signal.h was #included instead of signal.h by ace/OS_NS_signal.h: fix!!!! #endif /* ACE_DONT_INCLUDE_ACE_SIGNAL_H */ + #include /**/ "ace/ACE_export.h" + #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ + #include "ace/OS_NS_signal.h" + // Type of the extended signal handler. typedef void (*ACE_Sig_Handler_Ex) (int, siginfo_t *siginfo, ucontext_t *ucontext); + ACE_BEGIN_VERSIONED_NAMESPACE_DECL + /** * @class ACE_Sig_Set * @@ -39,35 +49,49 @@ public: /// Initialize <sigset_> with @a sigset. If @a sigset == 0 then fill /// the set. ACE_Sig_Set (sigset_t *sigset); + /// Initialize <sigset_> with @a sigset. If @a sigset == 0 then fill /// the set. ACE_Sig_Set (ACE_Sig_Set *sigset); + /// If @a fill == 0 then initialize the <sigset_> to be empty, else /// full. ACE_Sig_Set (int fill = 0); + ~ACE_Sig_Set (void); + /// Create a set that excludes all signals defined by the system. int empty_set (void); + /// Create a set that includes all signals defined by the system. int fill_set (void); + /// Adds the individual signal specified by @a signo to the set. int sig_add (int signo); + /// Deletes the individual signal specified by @a signo from the set. int sig_del (int signo); + /// Checks whether the signal specified by @a signo is in the set. int is_member (int signo) const; + /// Returns a pointer to the underlying @c sigset_t. operator sigset_t *(); + /// Returns a copy of the underlying @c sigset_t. sigset_t sigset (void) const; + /// Dump the state of an object. void dump (void) const; + /// Declare the dynamic allocation hooks. ACE_ALLOC_HOOK_DECLARE; + private: /// Set of signals. sigset_t sigset_; }; + /** * @class ACE_Sig_Action * @@ -79,16 +103,19 @@ public: // = Initialization methods. /// Default constructor. Initializes everything to 0. ACE_Sig_Action (void); + /// Assigns the various fields of a @c sigaction struct but doesn't /// register for signal handling via the @c sigaction function. ACE_Sig_Action (ACE_SignalHandler handler, sigset_t *sigmask = 0, int flags = 0); + /// Assigns the various fields of a @c sigaction struct but doesn't /// register for signal handling via the @c sigaction function. ACE_Sig_Action (ACE_SignalHandler handler, const ACE_Sig_Set &sigmask, int flags = 0); + /** * Assigns the various fields of a @c sigaction struct and registers * the @a handler to process signal @a signum via the @c sigaction @@ -98,6 +125,7 @@ public: int signum, sigset_t *sigmask = 0, int flags = 0); + /** * Assigns the various fields of a @c sigaction struct and registers * the @a handler to process signal @a signum via the @c sigaction @@ -108,15 +136,18 @@ public: 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> + /** * Assigns the various fields of a @c sigaction struct and registers * the @a handler to process all @a signalss via the @c sigaction @@ -126,6 +157,7 @@ public: ACE_SignalHandler handler, const ACE_Sig_Set &sigmask, int flags = 0); + /** * Assigns the various fields of a @c sigaction struct and registers * the @a handler to process all @a signalss via the @c sigaction @@ -135,47 +167,64 @@ public: ACE_SignalHandler handler, sigset_t *sigmask = 0, int flags = 0); + /// Copy constructor. ACE_Sig_Action (const ACE_Sig_Action &s); + /// Default dtor. ~ACE_Sig_Action (void); + // = Signal action management. /// Register @c this as the current disposition and store old /// disposition into @a oaction if it is non-NULL. int register_action (int signum, ACE_Sig_Action *oaction = 0); + /// Assign the value of @a oaction to @c this and make it become the /// new signal disposition. int restore_action (int signum, ACE_Sig_Action &oaction); + /// Retrieve the current disposition into @c this. int retrieve_action (int signum); + /// Set current signal action. void set (struct sigaction *); + /// Get current signal action. struct sigaction *get (void); operator struct sigaction *(); + /// Set current signal flags. void flags (int); + /// Get current signal flags. int flags (void); + /// Set current signal mask. void mask (sigset_t *); void mask (ACE_Sig_Set &); + /// Get current signal mask. sigset_t *mask (void); + /// Set current signal handler (pointer to function). void handler (ACE_SignalHandler); + /// Get current signal handler (pointer to function). ACE_SignalHandler handler (void); + /// Dump the state of an object. void dump (void) const; + /// Declare the dynamic allocation hooks. ACE_ALLOC_HOOK_DECLARE; + private: /// Controls signal behavior. struct sigaction sa_; }; + /** * @class ACE_Sig_Guard * @@ -190,22 +239,30 @@ public: /// activated only when a spcific condition met. When condition == /// true (default), Guard is activated ACE_Sig_Guard (ACE_Sig_Set *mask = 0, bool condition = true); + /// Restore blocked signals. ~ACE_Sig_Guard (void); + /// Dump the state of an object. void dump (void) const; + /// Declare the dynamic allocation hooks. ACE_ALLOC_HOOK_DECLARE; + private: /// Original signal mask. ACE_Sig_Set omask_; + /// Guard Condition bool condition_; }; + ACE_END_VERSIONED_NAMESPACE_DECL + #if defined (__ACE_INLINE__) #include "ace/Signal.inl" #endif /* __ACE_INLINE__ */ + #include /**/ "ace/post.h" #endif /* ACE_SIGNAL_HANDLER_H */ |