COVISE Core
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros
Classes | Public Types | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Static Private Member Functions | Static Private Attributes | List of all members
covise::coSignal Class Reference

#include <coSignal.h>

Collaboration diagram for covise::coSignal:
Collaboration graph
[legend]

Classes

struct  handlerRec
 

Public Types

enum  { SIG_NAME_LENGTH = 15 }
 Number of known signals and max. length of names. More...
 
enum  ReplaceOption { REPLACE_DFL, KEEP_DFL }
 

Static Public Member Functions

static coSignalgetHandler ()
 get a signal handler: if none exists, create it More...
 
static void kill ()
 stop all user-defined signal handling, kill internal states More...
 
static void addSignal (int signo, coSignalHandler &myHandler, enum ReplaceOption sysOpt=REPLACE_DFL, bool atEnd=true)
 
static void removeSignal (int signo, coSignalHandler &myHandler)
 remove a signal's handler More...
 
static void blockSignal (int signo)
 block signal for a while More...
 
static void unblockSignal (int signo)
 unblock signal More...
 
static void blockAllSignals ()
 block all signal handling of our signals More...
 
static void unblockAllSignals ()
 unblock all signal handling of our signals More...
 
static bool isPending (int signo)
 
static void printBlocks ()
 

Static Public Attributes

static const char * sigName [NSIG]
 Signal names. More...
 

Protected Member Functions

 coSignal ()
 singleton: use coSignalHandler::getHandler() to get an instance More...
 
 ~coSignal (void)
 singleton: use coSignalHandler::kill() to kill all signal handling More...
 

Private Member Functions

void my_signal (int sigNo, void(*func)(int))
 

Static Private Member Functions

static void doHandle (int sig)
 

Static Private Attributes

static coSignals_instance = NULL
 Singleton with late construction: construct with first getHandler() call. More...
 
static handlerRecs_handler [NSIG]
 static variables More...
 
static sigset_t s_sysMask
 
static bool s_callSys [NSIG]
 

Detailed Description

Singleton-Class to manage signals

Member Enumeration Documentation

anonymous enum

Number of known signals and max. length of names.

Enumerator
SIG_NAME_LENGTH 
Enumerator
REPLACE_DFL 
KEEP_DFL 

Constructor & Destructor Documentation

coSignal::coSignal ( )
protected

singleton: use coSignalHandler::getHandler() to get an instance

coSignal::~coSignal ( void  )
protected

singleton: use coSignalHandler::kill() to kill all signal handling

Member Function Documentation

void coSignal::addSignal ( int  signo,
coSignalHandler myHandler,
enum ReplaceOption  sysOpt = REPLACE_DFL,
bool  atEnd = true 
)
static

add a signal handler after the current ones atEnd : which end of the handler sequence to add to replaceSysHandler : keep (false) or replace system handler

there ate handlers for this signal

chain behind

chain before

this is the first handler

void coSignal::blockAllSignals ( )
static

block all signal handling of our signals

block signal

void coSignal::blockSignal ( int  signo)
static

block signal for a while

void coSignal::doHandle ( int  sig)
staticprivate
static coSignal* covise::coSignal::getHandler ( )
inlinestatic

get a signal handler: if none exists, create it

bool coSignal::isPending ( int  signo)
static
static void covise::coSignal::kill ( )
inlinestatic

stop all user-defined signal handling, kill internal states

void covise::coSignal::my_signal ( int  sigNo,
void(*)(int)  func 
)
private
void coSignal::printBlocks ( )
static
void coSignal::removeSignal ( int  signo,
coSignalHandler myHandler 
)
static

remove a signal's handler

void coSignal::unblockAllSignals ( )
static

unblock all signal handling of our signals

unblock signal

void coSignal::unblockSignal ( int  signo)
static

unblock signal

Member Data Documentation

bool coSignal::s_callSys
staticprivate
coSignal::handlerRec * coSignal::s_handler
staticprivate

static variables

coSignal * coSignal::s_instance = NULL
staticprivate

Singleton with late construction: construct with first getHandler() call.

sigset_t coSignal::s_sysMask
staticprivate
const char * coSignal::sigName
static
Initial value:
= {
"SIG0",
"SIGHUP", "SIGINT", "SIGQUIT", "SIGILL", "SIGTRAP",
"SIGIOT SIGABRT", "SIGEMT", "SIGFPE", "SIGKILL",
"SIGBUS", "SIGSEGV", "SIGSYS", "SIGPIPE", "SIGALRM",
"SIGTERM", "SIGUSR1", "SIGUSR2", "SIGCLD SIGCHLD",
"SIGPWR", "SIGWINCH", "SIGURG", "SIGPOLL SIGIO",
"SIGSTOP", "SIGTSTP", "SIGCONT", "SIGTTIN", "SIGTTOU",
"SIGVTALRM", "SIGPROF", "SIGXCPU", "SIGXFSZ", "SIG32",
"SIG33", "SIG34", "SIG35", "SIG36", "SIG37", "SIG38",
"SIG39", "SIG40", "SIG41", "SIG42", "SIG43", "SIG44",
"SIG45", "SIG46", "SIG47", "SIG48", "SIGRTMIN"
"SIG50",
"SIG51", "SIG52", "SIG53", "SIG54", "SIG55",
"SIG56", "SIG57", "SIG58", "SIG59", "SIG60", "SIG61",
"SIG62", "SIG63", "SIGRTMAX"
}

Signal names.


The documentation for this class was generated from the following files: