Main Page   Packages   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

C:/temp/src/j2k/nto/Timeout.cpp

Go to the documentation of this file.
00001 #ifndef __J2K__TIMEOUT_CPP__
00002 #define __J2K__TIMEOUT_CPP__
00003 
00004 #include <j2k/nto/Timeout.hpp>
00005 
00006 Timeout::Timeout( NameSpace* n0, ULONG nsec0, ULONG sec0 )
00007   : TimerPulse( nsec0, sec0 ), 
00008     MsgContainer( n0, client ),
00009     delay_nsec( nsec0 ), 
00010     delay_sec(   sec0 ),
00011     rcvid( 0 )
00012 { 
00013   message->setRequest( MQI_TIMEOUT );
00014   message->setStatus(  MQI_TIMEOUT );
00015   message->setData(   (void*)this  );
00016 //  printf( "Timeout built \n" );
00017 //  fflush( stdout );
00018 }
00019 
00020 void Timeout::tick( int signo )
00021 {
00022   const int time_out = 5;
00023 
00024   printf( "# Tick %d for %d #\n", (time_out - count ), message->getNumber() );
00025   fflush( stdout );
00026 
00027   count++;
00028   if ( count < time_out ) 
00029   {
00030     TimerPulse::set( delay_nsec, delay_sec );
00031     return;
00032   }
00033 
00034   TimerPulse::set( 0, 0 );
00035   printf( "DIRECT Reply \n" );
00036   message->setRequest( MQI_TIMEOUT );
00037   message->setStatus(  MQI_TIMEOUT );
00038   message->setData(   (void*)this  );
00039 
00040   // Shut down the READ-Blocked consumer
00041   printf( "Killing PID[%d] ID#%d \n", message->getPThread(), rcvid );
00042   fflush( stdout );
00043 
00044 
00045   message->reply( rcvid );
00046   message->print();
00047 
00048   printf( "Reply sent \n" );
00049   fflush( stdout );
00050 
00051 //  setprio( message->getPThread(), 19 );
00052 //  sched_yield();
00053 //  pthread_kill( message->getPThread(), SIGKILL );
00054 
00055   return;
00056 
00057   message->setNumber( signo );
00058   if ( message->send( fd, message ) < 0 )
00059   {
00060     perror( "Couldn't send Timeout Message ! \n" );
00061   }
00062 }
00063 
00064 void Timeout::start()
00065 {
00066 //  printf( "Timer connecting... \n" );
00067   connect();
00068 
00069   printf( "Timer started.\n" );
00070   fflush( stdout ); 
00071 
00072   TimerPulse::start();
00073 }
00074 
00075 #endif // End of Timeout.cpp

Generated on Sun Oct 14 18:46:40 2001 for Standard J2K Library by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001