2015-02-26 15:02:31 +00:00
|
|
|
/*
|
|
|
|
PURPOSE:
|
|
|
|
(Real Time Injector)
|
|
|
|
*/
|
|
|
|
|
2015-03-23 21:03:14 +00:00
|
|
|
#ifndef RTIEXEC_HH
|
|
|
|
#define RTIEXEC_HH
|
2015-02-26 15:02:31 +00:00
|
|
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
#include "RtiList.hh"
|
|
|
|
|
|
|
|
namespace Trick {
|
|
|
|
|
|
|
|
class RtiExec {
|
|
|
|
|
|
|
|
public:
|
|
|
|
RtiExec() ;
|
|
|
|
virtual ~RtiExec() ;
|
|
|
|
|
|
|
|
/**
|
|
|
|
Executes all events on the firing line.
|
|
|
|
@return - always returns zero (should probably be void then)
|
|
|
|
*/
|
|
|
|
void AddToFireList ( RtiList * rti_list ) ;
|
|
|
|
|
|
|
|
/**
|
|
|
|
Executes all events on the firing line.
|
|
|
|
@return - always returns zero (should probably be void then)
|
|
|
|
*/
|
|
|
|
virtual int Exec () ;
|
|
|
|
|
|
|
|
/**
|
|
|
|
Sets the debug status for printouts
|
|
|
|
@param on_off - true or false
|
|
|
|
*/
|
|
|
|
void SetDebug ( bool on_off ) ;
|
|
|
|
|
|
|
|
/**
|
|
|
|
Sets the execution to only execute at a multiple number of frames
|
|
|
|
@param mult - the multiple to set
|
|
|
|
*/
|
|
|
|
int SetFrameMultiple ( unsigned int mult ) ;
|
|
|
|
|
|
|
|
/**
|
|
|
|
Offsets execution a number of frames
|
|
|
|
@param offset - the offset to set
|
|
|
|
@return 0 if the offset is valid, -1 if offset >= frame_multiple
|
|
|
|
*/
|
|
|
|
int SetFrameOffset ( unsigned int offset ) ;
|
|
|
|
|
|
|
|
/*
|
|
|
|
leaving these variables public so the memory manager
|
|
|
|
can see them for checkpointing without using a friend.
|
|
|
|
*/
|
|
|
|
unsigned int frame_multiple ; /**< -- multiple of software_frame cycles to execute */
|
|
|
|
unsigned int frame_offset ; /**< -- offset number of frames to execute */
|
|
|
|
|
|
|
|
protected:
|
|
|
|
bool debug ; /**< ** prints debug messages about rti activities */
|
|
|
|
|
|
|
|
pthread_mutex_t list_mutex ; /**< ** mutex to protect the fire_list */
|
|
|
|
std::vector < RtiList * > fire_list ; /**< ** events to fire */
|
|
|
|
|
|
|
|
} ;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|