trick/trick_source/sim_services/RealtimeInjector/include/RtiExec.hh

72 lines
1.7 KiB
C++
Raw Normal View History

2015-02-26 15:02:31 +00:00
/*
PURPOSE:
(Real Time Injector)
*/
#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