Signaler::OnIntr( SignalFunc, void * )
Register a function and argument to be called when an interrupt signal is received.
Virtual? |
No |
|
Class |
||
Arguments |
|
Pointer to a function to call on receipt of an interrupt signal. The function must have the prototype |
|
Pointer to a data item to pass to the callback function when invoking it. |
|
Returns |
|
Notes
Functions are called in the reverse order that they are registered.
See also
Signaler::DeleteOnIntr()
Signaler::Intr()
Example
#include <unistd.h> // for sleep() #include <stdhdrs.h> #include <strbuf.h> #include <signaler.h> class MyClass { public: void Set( StrPtr *d ) { data = *d; } const StrPtr *Get() { return &data; } void Identify() { printf( "I'm %s\n", data.Text() ); } private: StrBuf data; }; static void InterruptHandler( void *p ) { MyClass *m = ( MyClass * )p; m->Identify(); } int main( int argc, char **argv ) { for ( int i = 1; i <= 5; i++ ) { StrBuf data; data.Set( "Object" ); data << i; MyClass *p = new MyClass; p->Set( &data ); signaler.OnIntr( InterruptHandler, ( void * )p ); } printf( "Hit ^C to fire the interrupt handler\n" ); for ( ; ; ) sleep( 60 ); exit( 0 ); }