trick/include/trick/ITimer.hh
Alex Lin 19025d77ad Standardize directory names
Reorganized.  Created a new top level include directory that will hold all of Trick's header files. Moved all of the Trick headers to this directory.  Created a libexec directory that holds all of the executables that users don't need to execute directly.  Changed all of the executables remaining in bin to start with "trick-".  In the sim_services directories changed all source files to find the Trick headers in their new location.  Since all of the include files are gone in sim_services, removed the src directories as well, moving all of the source files up a level.  Moved the makefiles, docs, man, and other architecture independent files into a top level share directory.  Renamed lib_${TRICK_HOST_CPU} to lib64 or lib depending on the platform we're currently on.

refs #63
2015-06-09 08:44:42 -05:00

67 lines
1.6 KiB
C++

/*
PURPOSE:
( gettimeofday Clock )
PROGRAMMERS:
(((Robert W. Bailey) (LinCom) (April 1992) (--) (Realtime.))
((Robert W. Bailey) (LinCom) (7/22/92) (--) (--))
((Eddie J. Paddock) (MDSSC) (Oct 1992) (--) (Realtime.))
((Alex Lin) (NASA) (April 2009) (--) (port to c++)))
*/
#ifndef ITIMER_HH
#define ITIMER_HH
#include <time.h>
#include <sys/time.h>
#include <semaphore.h>
#include <string>
#include "trick/Timer.hh"
namespace Trick {
class ITimer : public Timer {
public:
ITimer() ;
~ITimer() ;
/** Post the semaphore value from the interrupt handler */
void semaphore_post() ;
/** @copybrief Trick::Timer::init() */
virtual int init() ;
/** @copybrief Trick::Timer::start() */
virtual int start(double frame_time) ;
/** @copybrief Trick::Timer::reset() */
virtual int reset(double frame_time) ;
/** @copybrief Trick::Timer::stop() */
virtual int stop() ;
/** @copybrief Trick::Timer::pause() */
virtual int pause() ;
/** @copybrief Trick::Timer::shutdown() */
virtual int shutdown() ;
protected:
struct timespec res; /* ** resolution of the clock */
struct timespec timeout; /* ** timeout value of some kind */
sem_t * semaphore; /* ** Posted by SIGALRM handler to tell sched loop to wake up. */
std::string sem_name ; /* ** name of the semaphore */
} ;
}
Trick::ITimer * get_itimer() ;
void it_handler(int sig) ;
#endif