ACE_Sig_Set Class Reference

Provide a C++ wrapper for the C sigset_t interface. More...

#include <Signal.h>

List of all members.

Public Member Functions

 ACE_Sig_Set (sigset_t *sigset)
 ACE_Sig_Set (ACE_Sig_Set *sigset)
 ACE_Sig_Set (int fill=0)
 ~ACE_Sig_Set (void)
int empty_set (void)
 Create a set that excludes all signals defined by the system.
int fill_set (void)
 Create a set that includes all signals defined by the system.
int sig_add (int signo)
 Adds the individual signal specified by signo to the set.
int sig_del (int signo)
 Deletes the individual signal specified by signo from the set.
int is_member (int signo) const
 Checks whether the signal specified by signo is in the set.
 operator sigset_t * ()
 Returns a pointer to the underlying sigset_t.
sigset_t sigset (void) const
 Returns a copy of the underlying sigset_t.
void dump (void) const
 Dump the state of an object.

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.

Private Attributes

sigset_t sigset_
 Set of signals.


Detailed Description

Provide a C++ wrapper for the C sigset_t interface.

Handle signals via a more elegant C++ interface (e.g., doesn't require the use of global variables or global functions in an application).

Definition at line 45 of file Signal.h.


Constructor & Destructor Documentation

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE ACE_Sig_Set::ACE_Sig_Set ( sigset_t *  sigset  ) 

Initialize <sigset_> with sigset. If sigset == 0 then fill the set.

Definition at line 14 of file Signal.inl.

References ACE_TRACE, ACE_OS::sigfillset(), and sigset_.

00015      : sigset_ ()
00016 {
00017   ACE_TRACE ("ACE_Sig_Set::ACE_Sig_Set");
00018 
00019   if (ss == 0)
00020     ACE_OS::sigfillset (&this->sigset_);
00021   else
00022     // Structure assignment.
00023     this->sigset_ = *ss;
00024 }

ACE_INLINE ACE_Sig_Set::ACE_Sig_Set ( ACE_Sig_Set sigset  ) 

Initialize <sigset_> with sigset. If sigset == 0 then fill the set.

Definition at line 39 of file Signal.inl.

References ACE_TRACE, ACE_OS::sigfillset(), and sigset_.

00040      : sigset_ ()
00041 {
00042   ACE_TRACE ("ACE_Sig_Set::ACE_Sig_Set");
00043 
00044   if (ss == 0)
00045     ACE_OS::sigfillset (&this->sigset_);
00046   else
00047     this->sigset_ = ss->sigset_;
00048 }

ACE_INLINE ACE_Sig_Set::ACE_Sig_Set ( int  fill = 0  ) 

If fill == 0 then initialize the <sigset_> to be empty, else full.

Definition at line 27 of file Signal.inl.

References ACE_TRACE, ACE_OS::sigemptyset(), and ACE_OS::sigfillset().

00028      : sigset_ ()
00029 {
00030   ACE_TRACE ("ACE_Sig_Set::ACE_Sig_Set");
00031 
00032   if (fill)
00033     ACE_OS::sigfillset (&this->sigset_);
00034   else
00035     ACE_OS::sigemptyset (&this->sigset_);
00036 }

ACE_Sig_Set::~ACE_Sig_Set ( void   ) 

Definition at line 27 of file Signal.cpp.

References ACE_TRACE, and ACE_OS::sigemptyset().

00028 {
00029   ACE_TRACE ("ACE_Sig_Set::~ACE_Sig_Set");
00030   ACE_OS::sigemptyset (&this->sigset_);
00031 }


Member Function Documentation

void ACE_Sig_Set::dump ( void   )  const

Dump the state of an object.

Definition at line 60 of file Signal.cpp.

References ACE_TRACE.

00061 {
00062 #if defined (ACE_HAS_DUMP)
00063   ACE_TRACE ("ACE_Sig_Set::dump");
00064 #endif /* ACE_HAS_DUMP */
00065 }

ACE_INLINE int ACE_Sig_Set::empty_set ( void   ) 

Create a set that excludes all signals defined by the system.

Definition at line 51 of file Signal.inl.

References ACE_TRACE, and ACE_OS::sigemptyset().

00052 {
00053   ACE_TRACE ("ACE_Sig_Set::empty_set");
00054   return ACE_OS::sigemptyset (&this->sigset_);
00055 }

ACE_INLINE int ACE_Sig_Set::fill_set ( void   ) 

Create a set that includes all signals defined by the system.

Definition at line 58 of file Signal.inl.

References ACE_TRACE, and ACE_OS::sigfillset().

00059 {
00060   ACE_TRACE ("ACE_Sig_Set::fill_set");
00061   return ACE_OS::sigfillset (&this->sigset_);
00062 }

ACE_INLINE int ACE_Sig_Set::is_member ( int  signo  )  const

Checks whether the signal specified by signo is in the set.

Definition at line 79 of file Signal.inl.

References ACE_TRACE, and ACE_OS::sigismember().

Referenced by ACE_Sig_Action::ACE_Sig_Action(), ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >::register_handler(), and ACE_Select_Reactor_T< ACE_SELECT_REACTOR_TOKEN >::remove_handler().

00080 {
00081   ACE_TRACE ("ACE_Sig_Set::is_member");
00082   return ACE_OS::sigismember (const_cast<sigset_t *> (&this->sigset_), signo);
00083 }

ACE_INLINE ACE_Sig_Set::operator sigset_t * (  ) 

Returns a pointer to the underlying sigset_t.

Definition at line 86 of file Signal.inl.

References ACE_TRACE, and sigset_.

00087 {
00088   ACE_TRACE ("ACE_Sig_Set::operator sigset_t *");
00089   return &this->sigset_;
00090 }

ACE_INLINE int ACE_Sig_Set::sig_add ( int  signo  ) 

Adds the individual signal specified by signo to the set.

Definition at line 65 of file Signal.inl.

References ACE_TRACE, and ACE_OS::sigaddset().

Referenced by ACE_Service_Config::open_i().

00066 {
00067   ACE_TRACE ("ACE_Sig_Set::sig_add");
00068   return ACE_OS::sigaddset (&this->sigset_, signo);
00069 }

ACE_INLINE int ACE_Sig_Set::sig_del ( int  signo  ) 

Deletes the individual signal specified by signo from the set.

Definition at line 72 of file Signal.inl.

References ACE_TRACE, and ACE_OS::sigdelset().

00073 {
00074   ACE_TRACE ("ACE_Sig_Set::sig_del");
00075   return ACE_OS::sigdelset (&this->sigset_, signo);
00076 }

ACE_INLINE sigset_t ACE_Sig_Set::sigset ( void   )  const

Returns a copy of the underlying sigset_t.

Definition at line 93 of file Signal.inl.

References ACE_TRACE, and sigset_.

Referenced by ACE_Sig_Action::ACE_Sig_Action(), and ACE_Sig_Action::mask().

00094 {
00095   ACE_TRACE ("ACE_Sig_Set::sigset");
00096   return this->sigset_;
00097 }


Member Data Documentation

ACE_Sig_Set::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.

Definition at line 88 of file Signal.h.

sigset_t ACE_Sig_Set::sigset_ [private]

Set of signals.

Definition at line 92 of file Signal.h.

Referenced by ACE_Sig_Set(), operator sigset_t *(), and sigset().


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:35:36 2010 for ACE by  doxygen 1.4.7