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 );
}






