SignalEvent ClassThe SignalEvent class provides methods and variable definitions
for Ctalk programs to handle signal events.
Signal handler (SignalHandler) methods act like C functions
when a program installs them to handle signals. The signal handler
methods cannot, in most cases, create objects. Ctalk provides the
C function __ctalkNewSignalEventInternal to create and queue
SignalEvent objects from the handler.
Here is an example of a signal handler method that creates
SignalEvent objects.
#include <time.h>
SignalHandler instanceMethod handleSignal (__c_arg__ int signo) {
time_t t;
char buf[MAXLABEL];
noMethodInit;
t = time (NULL);
/* Format the system time, then create a new SignalEvent object,
and add the time data to the new object's text instance variable. */
__ctalkDecimalIntegerToASCII (t, buf);
__ctalkNewSignalEventInternal (signo, getpid (), buf);
return NULL;
}
For more information, Method functions, and __ctalkNewSignalEventInternal.
pendingEventsA List of pending signal events.
processIDAn Integer that contains the process ID of the program that
received the signal.
sigNoAn Integer that contains the signal number of the handler.
dataA String object that contains data from the signal handler.
getPID (void)Set the SignalEvent object’s pid instance variable to
the program’s process ID.
new (event1, event2, ... event3;)Create one or more new SignalEvent objects with the names
given in the argument lists.
SignalEvent new event1; SignalEvent new event1, event2;
nextEvent (void)Return the next signalEvent object from the class’
pendingEvents queue.
pending (void)Return TRUE if the class’ pendingEvents queue contains
SignalEvent event objects, FALSE otherwise.
queueEvent (void)Add the receiver to the class’ pendingEvents queue.