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

C:/temp/src/j2k/Deprecated/old_18mar_diff/nto/TimerSignal.cpp

Go to the documentation of this file.
00001 #ifndef __J2K__TimerSignal_CPP__
00002 #define __J2K__TimerSignal_CPP__
00003 
00004 #include <j2k/nto/TimerSignal.hpp>
00005 #include <j2k/nto/fixprio.hpp>
00006 
00007 TimerSignal* TimerSignal::theTimer = NULL;
00008 
00009 // Setup a timer, to be started later.
00010 TimerSignal::TimerSignal( ULONG nsec, ULONG sec ) 
00011 {
00012 /*
00013   if ( theTimer != NULL ) {
00014     delete theTimer;
00015   }
00016 
00017   theTimer = this;
00018 
00019   memset( &event, 0, sizeof( event ) );
00020 */
00021 
00022   // sched_get_priority_max( SCHED_RR ) == 63
00023 
00024   event.sigev_priority = getprio( 0 ); // fixprio( 20 );
00025 
00026   event.sigev_notify = SIGEV_SIGNAL;
00027   event.sigev_signo  = TimerSignalEvent;
00028 
00029 //  memset( &t, 0, sizeof( t ) );
00030 
00031   // create the timer, binding it to the event
00032 
00033   if ( timer_create( CLOCK_REALTIME, &event, &timer_id ) == -1 )
00034   {
00035      MC_OnError( errno, Error, "while creating a timer." )
00036   }
00037 
00038   struct sigaction act;
00039   sigset_t set_event;
00040 
00041   sigemptyset( &set_event );
00042   sigaddset(   &set_event, TimerSignalEvent );
00043 
00044   // Define a handler for TimerSignalEvent
00045   act.sa_flags   = 0;
00046   act.sa_mask    = set_event;
00047   act.sa_handler = wrapper;
00048 
00049   sigaction( TimerSignalEvent, &act, NULL );
00050 
00051   set( nsec, sec );
00052 }
00053 
00054 
00055 void TimerSignal::set( ULONG nsec, ULONG sec )
00056 {
00057   t.it_value.tv_nsec    = nsec;
00058   t.it_interval.tv_nsec = nsec;
00059 
00060   t.it_value.tv_sec     = sec;
00061   t.it_interval.tv_sec  = sec;
00062 
00063   timer_settime( timer_id, 0, &t, NULL );
00064 }
00065 
00066 #endif

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