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

my_timer Class Reference

#include <timer.hpp>

Inheritance diagram for my_timer::

Basic_PThread timer_test timer_test timer_test List of all members.

Public Methods

 my_timer (unsigned long)
virtual ~my_timer ()
void set_timer ()
int getChid ()
void WaitForPulse ()
virtual void run ()
virtual void tick ()=0

Private Attributes

int chid
int pulse_id
timer_t timer_id
sigevent event
itimerspec timer
_clockperiod clkper
_pulse pulse

Constructor & Destructor Documentation

my_timer::my_timer unsigned long    val
 

Definition at line 6 of file timer.cpp.

00007 {
00008 
00009     chid = ChannelCreate( 0 ); 
00010     assert( chid!=-1);  
00011     set_timer();
00012 
00013   timer.it_value.tv_sec  = 0;
00014   timer.it_value.tv_nsec =val;
00015   timer.it_interval.tv_sec  = 0;
00016   timer.it_interval.tv_nsec = val;
00017   int err = timer_settime( timer_id, 0, &timer, NULL );
00018   MC_OnError( err, Error, "my_timer::timer_start ")
00019   clkper.nsec      = 1000000; 
00020   clkper.fract      = 0; 
00021   
00022 }

my_timer::~my_timer   [virtual]
 

Definition at line 24 of file timer.cpp.

00024                    {
00025 }


Member Function Documentation

void my_timer::WaitForPulse  
 

Definition at line 48 of file timer.cpp.

Referenced by run().

00048                            {
00049   int err = MsgReceivePulse(chid ,&pulse , sizeof( pulse ), NULL );
00050   MC_OnError( err, Error,"my_timer::WaitForPulse()");
00051 }

int my_timer::getChid  
 

Definition at line 42 of file timer.cpp.

00042                      {
00043 
00044   return chid;
00045 }

void my_timer::run   [virtual]
 

Reimplemented from Basic_PThread.

Definition at line 53 of file timer.cpp.

00054 {
00055   for(;;) {
00056     WaitForPulse();
00057     tick();
00058   }
00059 }

void my_timer::set_timer  
 

Definition at line 29 of file timer.cpp.

Referenced by my_timer().

00029                         {
00030 
00031     event.sigev_notify            = SIGEV_PULSE; 
00032     event.sigev_coid              = ConnectAttach ( ND_LOCAL_NODE, 0, chid, 0, 0 ); 
00033     event.sigev_priority          = getprio(0); 
00034     event.sigev_code              = 1023; 
00035     event.sigev_value.sival_ptr   = (void*)pulse_id;                                
00036     assert ( event.sigev_coid != -1 ); 
00037     int err = timer_create(  CLOCK_REALTIME, &event, &timer_id );
00038     MC_OnError( err, Error, "Timer create" )
00039  }

virtual void my_timer::tick   [pure virtual]
 

Reimplemented in timer_test, timer_test, and timer_test.

Referenced by run().


Member Data Documentation

int my_timer::chid [private]
 

Definition at line 26 of file timer.hpp.

struct _clockperiod my_timer::clkper [private]
 

Definition at line 31 of file timer.hpp.

struct sigevent my_timer::event [private]
 

Definition at line 29 of file timer.hpp.

struct _pulse my_timer::pulse [private]
 

Definition at line 32 of file timer.hpp.

int my_timer::pulse_id [private]
 

Definition at line 27 of file timer.hpp.

struct itimerspec my_timer::timer [private]
 

Definition at line 30 of file timer.hpp.

timer_t my_timer::timer_id [private]
 

Definition at line 28 of file timer.hpp.


The documentation for this class was generated from the following files:
Generated on Sun Oct 14 18:49:25 2001 for Standard J2K Library by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001