Signaler::DeleteOnIntr( void * )
Removes a function previously registered using OnIntr() from the
list.
|
Virtual? |
No |
|
|
Class |
||
|
Arguments |
|
Pointer to the data item with which the original function was registered |
|
Returns |
|
See also
Signaler::OnIntr() 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 )
{
StrBuf data;
MyClass *list[ 5 ];
for ( int i = 1; i <= 5; i++ )
{
data.Set( "Object" );
data << i;
MyClass *p = new MyClass;
list[ i - 1 ] = p;
p->Set( &data );
signaler.OnIntr( InterruptHandler, (void *)p );
}
// Unregister Object 3
signaler.DeleteOnIntr( list[ 2 ] );
printf( "Hit ^C to fire the interrupt handler\n" );
for ( ; ; )
sleep( 60 );
exit( 0 );
}