VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes
makVrf::DtVrfSimBackendManager Class Reference

Maintains and signals state of the simulation engines that are currently connected to the GUI. More...

Inheritance diagram for makVrf::DtVrfSimBackendManager:
Inheritance graph
[legend]

Public Types

typedef std::map< std::string,
DtVrfBackendState * > 
DtVrfSimBackendStates

Public Member Functions

 DtVrfSimBackendManager (makVrv::DtDe &)
virtual ~DtVrfSimBackendManager ()
virtual bool backEndsPresent () const
 Returns true if there are any back-ends present.
virtual bool anyBackendsLoading () const
 Returns true if any back-ends are loading.
virtual bool anyBackendsCreatingSimulationObjectGroup () const
 Return true if any backends are creating a simulation object group.
virtual bool anyBackendsClosing () const
 Returns true if any back-ends are closing.
virtual bool anyBackendsLoaded () const
 Returns true if any back-ends are loaded.
virtual bool allBackendsLoaded () const
 Returns true if all back-ends are loaded.
virtual bool backendLoaded (const DtSimulationAddress &) const
 Returns true if specified back-end is loaded.
virtual bool backendSaving (const DtSimulationAddress &) const
 Returns true if specified back-end is saving.
virtual bool anyBackendsPlaying () const
 Returns true if any back-ends are playing a scenario
virtual bool anyBackendsInControlState (int state) const
 Returns true any backend is in the particular control state (play, pause)
virtual bool allBackendsCanSimulate () const
 Returns true if all back-ends are ready to simulate.
virtual bool backendCanSimulate (const DtSimulationAddress &) const
 Returns true if the specified backend can simulate.
virtual void duplicateBackendDiscovered (const DtSimulationAddress &)
 Called when a duplicate backend is discovered. Will queue duplicateSimulationBackendDiscovered.
virtual double timeMultiplier () const
 Returns the time multiplier of the scenario.
virtual DtVrfBackendStatestateFor (const DtSimulationAddress &) const
virtual const DtSimulationAddress & selectedBackend () const
void setSelectedBackend (const DtSimulationAddress &)
virtual int numberOfBackends () const
virtual void clearSelectedBackend ()
 Clears the currently selected backend.
virtual double simTime () const
 Returns the maximum sim time of all known, loaded back-ends.
virtual double runDurationTime () const
 Returns the run duration time. 0 means run until user pauses.
virtual double timeOfDay () const
 Returns the current time of day (in seconds).
virtual double simStartSimTime () const
 Returns the maximum sim start sim time of all known, loaded back-ends.
const DtVrfSimBackendStatesbackendStates () const
virtual std::map< short, int > currentObjectCounts () const
 Returns a map which is the total of all objects (key of kind/domain and count) of all backends.
virtual const std::map< short,
int > & 
currentObjectCount (const DtSimulationAddress &) const
 Returns a map of the objects counts of the particular back-end.
virtual void signalWhenAllBackendsClosed ()
 Sets the back-end manager to watch for all back-ends closed. Once closed, will stop watching.
virtual void signalIfAllBackendsClosed ()
 If there are no back-ends loaded, signals so and then sets the mySignalWhenAllBackendsClosed flag to false.
virtual void signalWhenAllBackendsLoaded ()
 Sets the back-end manager to watch for all back-ends loaded.
virtual void signalIfAllBackendsLoaded ()
 Will signal if all back-ends are loaded and the mySignalWhenAllBackendsClosed is false.
virtual void signalWhenAllBackendsSaved ()
 Sets the back-end manager to watch for all back-ends switching from saving to non-saving state.
virtual void signalIfAllBackendsSaved ()
 Will signal saved if the myBackendsWaitingForSave list is empty.
std::string sessionScenario () const
virtual void setSessionScenario (const std::string &)
std::string sessionScenarioFilename () const
virtual void setSessionScenarioFilename (const std::string &)
std::string sessionGuiTerrain () const
virtual void setSessionGuiTerrain (const std::string &)
std::string sessionSimTerrain () const
const std::vector< DtFilename > & simulationModelSets () const
virtual void setSimulationModelSets (const DtRwNLengthStringVector &)
virtual void sessionStatusChanged (const DtSessionStatus &status)
 Called when session status has changed. Queues a function to deal with it.
virtual time_t dateAndTimeOfDay () const
virtual void setDateAndTimeOfDay (time_t)
virtual void resetDateAndTimeOfDay ()
virtual const std::map
< std::string, bool
backendsLoading () const
virtual const std::map
< std::string, bool
backendsClosing () const
virtual void removeAllBackends ()
 Called by the DtVrfBackendInterceptor when backend status has changed in some way.
virtual void addBackend (const DtBackend *)
 Called by the DtVrfBackendInterceptor when backend status has changed in some way.
virtual void backendRemoved (const DtSimulationAddress &)
 Called by the DtVrfBackendInterceptor when backend status has changed in some way.
virtual void backendUpdated (const DtSimulationAddress &, const DtBackend *)
 Called by the DtVrfBackendInterceptor when backend status has changed in some way.
- Public Member Functions inherited from makVrf::DtQueuedManager
 DtQueuedManager (makVrv::DtDe &)
virtual ~DtQueuedManager ()
virtual void setActivated (bool)
- Public Member Functions inherited from makVrv::DtVirtualBaseClass
 DtVirtualBaseClass ()
 Do nothing constructor.
virtual ~DtVirtualBaseClass ()
 Virtual do nothing destructor.

Static Public Member Functions

static DtVrfSimBackendManagerinstance (makVrv::DtDe &de)
 Returns instance of the messager.

Public Attributes

boost::signal< void()> signal_allBackendsClosed
boost::signal< void()> signal_allBackendsLoaded
boost::signal< void()> signal_allBackendsSaved
boost::signal< void(const
DtVrfBackendState &)> 
signal_frameRatesUpdated
boost::signal< void(const
DtVrfBackendState &)> 
signal_backendDiscovered
boost::signal< void(const
DtVrfBackendState &)> 
signal_backendRemoved
boost::signal< void(const
DtVrfBackendState &, int)> 
signal_backendUpdated
boost::signal< void(int)> signal_sessionUpdated
boost::signal< void(const
DtVrfBackendState &)> 
signal_duplicateSimulationAddress
boost::signal< void(const
DtSimulationAddress &old,
const DtSimulationAddress
&newaddr)> 
signal_selectedBackendChanged
boost::signal< void()> signal_allBackendsAboutToBeRemoved

Protected Member Functions

virtual void tick ()
 Lock sim time to allow consistant access to simulation time to those that want it.
virtual double simTimeFromBackend () const
 Returns the maximum sim time of all known, loaded back-ends.
virtual void updateDateAndTimeOfDay ()
virtual void slot_dateAndTimeOfDayChanged (int year, int month, int day, int hours, int mins, int secs)
virtual void slot_frameRatesUpdated (const DtVrfBackendState &)
virtual void simulationBackendRemoved (DtVrfBackendState *)
virtual void simulationBackendDiscovered (DtVrfBackendState *)
virtual void simulationBackendUpdated (DtSimulationAddress, int)
virtual void duplicateSimulationBackendDiscovered (DtSimulationAddress)
virtual void processSessionStatusChange (DtSessionStatus)
virtual void processLoadCompleteCallback (DtSimMessage *)
virtual void processSaveCompleteCallback (DtSimMessage *)
virtual void backendSaved (const std::string &)
 Called when a backend has finished saving or has been removed from the save list due to timeout.
virtual void setBackendSaving (const DtSimulationAddress &, bool b)
virtual void updateSessionInformation (int sessionFlags=0)
 Emits signal if something has changed about the session.
- Protected Member Functions inherited from makVrf::DtQueuedManager
virtual void queueSimulationFunction (const boost::function< void()> &function)
 Put a function in the sim function queue, for threadsafe calling.
virtual void runFunctionQueue (DtVrfBackendManagerCallQueue &queue)
 Execute a function queue.

Protected Attributes

makVrv::DtBaseSimulation * mySimulation
DtVrfSimBackendStates myBackendStates
DtSimulationAddress mySelectedBackend
bool mySignalWhenAllBackendsClosed
bool mySignalWhenAllBackendsLoaded
bool mySignalWhenAllBackendsSaved
std::map< std::string, charmyBackendsWaitingForSave
std::map< std::string, boolmyAlreadyDuplicateWarned
std::map< std::string, boolmyNeedToLoad
std::vector< std::string > myNeedToSave
DtSessionStatus mySessionStatus
std::map< std::string, boolmyJustLoadedMap
std::map< std::string, boolmyLoadingMap
std::map< std::string, boolmyClosingMap
std::map< std::string, boolmyJustClosedMap
std::map< std::string, boolmyImportingMap
std::map< std::string, boolmyCreatingSimulationObjectGroupMap
double mySimTime
double myLastSimTime
double myDateAndTimeOfDay
makVrv::DtSignalConnectionManager myConnectionManager
bool myCloseProcessStarted
- Protected Attributes inherited from makVrf::DtQueuedManager
makVrv::DtDemyDe
DtVrfBackendManagerCallQueue myFunctionCallQueue
bool myActivated

Additional Inherited Members

- Protected Types inherited from makVrf::DtQueuedManager
typedef
makVrv::DtLockedBufferedQueue
< boost::function< void()> > 
DtVrfBackendManagerCallQueue
typedef std::vector
< boost::function< void()> > 
DtVrfBackendManagerCallList

Detailed Description

Maintains and signals state of the simulation engines that are currently connected to the GUI.

This class also handles the thread boundary for simulation engine state messages that come from the communication thread, so that subset of the methods on this class are thread safe.

Member Typedef Documentation

Constructor & Destructor Documentation

makVrf::DtVrfSimBackendManager::DtVrfSimBackendManager ( makVrv::DtDe )
virtual makVrf::DtVrfSimBackendManager::~DtVrfSimBackendManager ( )
virtual

Member Function Documentation

static DtVrfSimBackendManager& makVrf::DtVrfSimBackendManager::instance ( makVrv::DtDe de)
static

Returns instance of the messager.

virtual bool makVrf::DtVrfSimBackendManager::backEndsPresent ( ) const
virtual

Returns true if there are any back-ends present.

virtual bool makVrf::DtVrfSimBackendManager::anyBackendsLoading ( ) const
virtual

Returns true if any back-ends are loading.

virtual bool makVrf::DtVrfSimBackendManager::anyBackendsCreatingSimulationObjectGroup ( ) const
virtual

Return true if any backends are creating a simulation object group.

virtual bool makVrf::DtVrfSimBackendManager::anyBackendsClosing ( ) const
virtual

Returns true if any back-ends are closing.

virtual bool makVrf::DtVrfSimBackendManager::anyBackendsLoaded ( ) const
virtual

Returns true if any back-ends are loaded.

virtual bool makVrf::DtVrfSimBackendManager::allBackendsLoaded ( ) const
virtual

Returns true if all back-ends are loaded.

virtual bool makVrf::DtVrfSimBackendManager::backendLoaded ( const DtSimulationAddress &  ) const
virtual

Returns true if specified back-end is loaded.

virtual bool makVrf::DtVrfSimBackendManager::backendSaving ( const DtSimulationAddress &  ) const
virtual

Returns true if specified back-end is saving.

virtual bool makVrf::DtVrfSimBackendManager::anyBackendsPlaying ( ) const
virtual

Returns true if any back-ends are playing a scenario

virtual bool makVrf::DtVrfSimBackendManager::anyBackendsInControlState ( int  state) const
virtual

Returns true any backend is in the particular control state (play, pause)

virtual bool makVrf::DtVrfSimBackendManager::allBackendsCanSimulate ( ) const
virtual

Returns true if all back-ends are ready to simulate.

virtual bool makVrf::DtVrfSimBackendManager::backendCanSimulate ( const DtSimulationAddress &  ) const
virtual

Returns true if the specified backend can simulate.

virtual void makVrf::DtVrfSimBackendManager::duplicateBackendDiscovered ( const DtSimulationAddress &  )
virtual

Called when a duplicate backend is discovered. Will queue duplicateSimulationBackendDiscovered.

virtual double makVrf::DtVrfSimBackendManager::timeMultiplier ( ) const
virtual

Returns the time multiplier of the scenario.

virtual void makVrf::DtVrfSimBackendManager::removeAllBackends ( )
virtual

Called by the DtVrfBackendInterceptor when backend status has changed in some way.

Will be called from the communication thread, so these methods handle passing this information into the main thread using the DtQueuedManager parent class.

virtual void makVrf::DtVrfSimBackendManager::addBackend ( const DtBackend )
virtual

Called by the DtVrfBackendInterceptor when backend status has changed in some way.

Will be called from the communication thread, so these methods handle passing this information into the main thread using the DtQueuedManager parent class.

virtual void makVrf::DtVrfSimBackendManager::backendRemoved ( const DtSimulationAddress &  )
virtual

Called by the DtVrfBackendInterceptor when backend status has changed in some way.

Will be called from the communication thread, so these methods handle passing this information into the main thread using the DtQueuedManager parent class.

virtual void makVrf::DtVrfSimBackendManager::backendUpdated ( const DtSimulationAddress &  ,
const DtBackend  
)
virtual

Called by the DtVrfBackendInterceptor when backend status has changed in some way.

Will be called from the communication thread, so these methods handle passing this information into the main thread using the DtQueuedManager parent class.

virtual DtVrfBackendState* makVrf::DtVrfSimBackendManager::stateFor ( const DtSimulationAddress &  ) const
virtual
virtual const DtSimulationAddress& makVrf::DtVrfSimBackendManager::selectedBackend ( ) const
inlinevirtual
void makVrf::DtVrfSimBackendManager::setSelectedBackend ( const DtSimulationAddress &  )
virtual int makVrf::DtVrfSimBackendManager::numberOfBackends ( ) const
virtual
virtual void makVrf::DtVrfSimBackendManager::clearSelectedBackend ( )
virtual

Clears the currently selected backend.

virtual double makVrf::DtVrfSimBackendManager::simTime ( ) const
virtual

Returns the maximum sim time of all known, loaded back-ends.

virtual double makVrf::DtVrfSimBackendManager::runDurationTime ( ) const
virtual

Returns the run duration time. 0 means run until user pauses.

virtual double makVrf::DtVrfSimBackendManager::timeOfDay ( ) const
virtual

Returns the current time of day (in seconds).

Based on time of day in time manager and current simulation time

virtual double makVrf::DtVrfSimBackendManager::simStartSimTime ( ) const
virtual

Returns the maximum sim start sim time of all known, loaded back-ends.

const DtVrfSimBackendStates& makVrf::DtVrfSimBackendManager::backendStates ( ) const
inline
virtual std::map<short, int> makVrf::DtVrfSimBackendManager::currentObjectCounts ( ) const
virtual

Returns a map which is the total of all objects (key of kind/domain and count) of all backends.

virtual const std::map<short, int>& makVrf::DtVrfSimBackendManager::currentObjectCount ( const DtSimulationAddress &  ) const
virtual

Returns a map of the objects counts of the particular back-end.

virtual void makVrf::DtVrfSimBackendManager::signalWhenAllBackendsClosed ( )
virtual

Sets the back-end manager to watch for all back-ends closed. Once closed, will stop watching.

virtual void makVrf::DtVrfSimBackendManager::signalIfAllBackendsClosed ( )
virtual

If there are no back-ends loaded, signals so and then sets the mySignalWhenAllBackendsClosed flag to false.

virtual void makVrf::DtVrfSimBackendManager::signalWhenAllBackendsLoaded ( )
virtual

Sets the back-end manager to watch for all back-ends loaded.

If they are currently loaded will wait until they are closed then wait until they are all reloaded

virtual void makVrf::DtVrfSimBackendManager::signalIfAllBackendsLoaded ( )
virtual

Will signal if all back-ends are loaded and the mySignalWhenAllBackendsClosed is false.

Sets mySignalWhenAllBackendsLoaded flag to false upon completion

virtual void makVrf::DtVrfSimBackendManager::signalWhenAllBackendsSaved ( )
virtual

Sets the back-end manager to watch for all back-ends switching from saving to non-saving state.

virtual void makVrf::DtVrfSimBackendManager::signalIfAllBackendsSaved ( )
virtual

Will signal saved if the myBackendsWaitingForSave list is empty.

std::string makVrf::DtVrfSimBackendManager::sessionScenario ( ) const
inline
virtual void makVrf::DtVrfSimBackendManager::setSessionScenario ( const std::string &  )
virtual
std::string makVrf::DtVrfSimBackendManager::sessionScenarioFilename ( ) const
inline
virtual void makVrf::DtVrfSimBackendManager::setSessionScenarioFilename ( const std::string &  )
virtual
std::string makVrf::DtVrfSimBackendManager::sessionGuiTerrain ( ) const
inline
virtual void makVrf::DtVrfSimBackendManager::setSessionGuiTerrain ( const std::string &  )
virtual
std::string makVrf::DtVrfSimBackendManager::sessionSimTerrain ( ) const
inline
const std::vector<DtFilename>& makVrf::DtVrfSimBackendManager::simulationModelSets ( ) const
inline
virtual void makVrf::DtVrfSimBackendManager::setSimulationModelSets ( const DtRwNLengthStringVector )
virtual
virtual void makVrf::DtVrfSimBackendManager::sessionStatusChanged ( const DtSessionStatus status)
virtual

Called when session status has changed. Queues a function to deal with it.

virtual time_t makVrf::DtVrfSimBackendManager::dateAndTimeOfDay ( ) const
virtual
virtual void makVrf::DtVrfSimBackendManager::setDateAndTimeOfDay ( time_t  )
virtual
virtual void makVrf::DtVrfSimBackendManager::resetDateAndTimeOfDay ( )
virtual
virtual const std::map<std::string, bool> makVrf::DtVrfSimBackendManager::backendsLoading ( ) const
inlinevirtual
virtual const std::map<std::string, bool> makVrf::DtVrfSimBackendManager::backendsClosing ( ) const
inlinevirtual
virtual void makVrf::DtVrfSimBackendManager::tick ( )
protectedvirtual

Lock sim time to allow consistant access to simulation time to those that want it.

Reimplemented from makVrf::DtQueuedManager.

virtual double makVrf::DtVrfSimBackendManager::simTimeFromBackend ( ) const
protectedvirtual

Returns the maximum sim time of all known, loaded back-ends.

virtual void makVrf::DtVrfSimBackendManager::updateDateAndTimeOfDay ( )
protectedvirtual
virtual void makVrf::DtVrfSimBackendManager::slot_dateAndTimeOfDayChanged ( int  year,
int  month,
int  day,
int  hours,
int  mins,
int  secs 
)
protectedvirtual
virtual void makVrf::DtVrfSimBackendManager::slot_frameRatesUpdated ( const DtVrfBackendState )
protectedvirtual
virtual void makVrf::DtVrfSimBackendManager::simulationBackendRemoved ( DtVrfBackendState )
protectedvirtual
virtual void makVrf::DtVrfSimBackendManager::simulationBackendDiscovered ( DtVrfBackendState )
protectedvirtual
virtual void makVrf::DtVrfSimBackendManager::simulationBackendUpdated ( DtSimulationAddress  ,
int   
)
protectedvirtual
virtual void makVrf::DtVrfSimBackendManager::duplicateSimulationBackendDiscovered ( DtSimulationAddress  )
protectedvirtual
virtual void makVrf::DtVrfSimBackendManager::processSessionStatusChange ( DtSessionStatus  )
protectedvirtual
virtual void makVrf::DtVrfSimBackendManager::processLoadCompleteCallback ( DtSimMessage )
protectedvirtual
virtual void makVrf::DtVrfSimBackendManager::processSaveCompleteCallback ( DtSimMessage )
protectedvirtual
virtual void makVrf::DtVrfSimBackendManager::backendSaved ( const std::string &  )
protectedvirtual

Called when a backend has finished saving or has been removed from the save list due to timeout.

virtual void makVrf::DtVrfSimBackendManager::setBackendSaving ( const DtSimulationAddress &  ,
bool  b 
)
protectedvirtual
virtual void makVrf::DtVrfSimBackendManager::updateSessionInformation ( int  sessionFlags = 0)
protectedvirtual

Emits signal if something has changed about the session.

Member Data Documentation

boost::signal<void ()> makVrf::DtVrfSimBackendManager::signal_allBackendsClosed
boost::signal<void ()> makVrf::DtVrfSimBackendManager::signal_allBackendsLoaded
boost::signal<void ()> makVrf::DtVrfSimBackendManager::signal_allBackendsSaved
boost::signal<void (const DtVrfBackendState&)> makVrf::DtVrfSimBackendManager::signal_frameRatesUpdated
boost::signal<void (const DtVrfBackendState&)> makVrf::DtVrfSimBackendManager::signal_backendDiscovered
boost::signal<void (const DtVrfBackendState&)> makVrf::DtVrfSimBackendManager::signal_backendRemoved
boost::signal<void (const DtVrfBackendState&, int)> makVrf::DtVrfSimBackendManager::signal_backendUpdated
boost::signal<void (int)> makVrf::DtVrfSimBackendManager::signal_sessionUpdated
boost::signal<void (const DtVrfBackendState&)> makVrf::DtVrfSimBackendManager::signal_duplicateSimulationAddress
boost::signal<void (const DtSimulationAddress& old, const DtSimulationAddress& newaddr)> makVrf::DtVrfSimBackendManager::signal_selectedBackendChanged
boost::signal<void ()> makVrf::DtVrfSimBackendManager::signal_allBackendsAboutToBeRemoved
makVrv::DtBaseSimulation* makVrf::DtVrfSimBackendManager::mySimulation
protected
DtVrfSimBackendStates makVrf::DtVrfSimBackendManager::myBackendStates
protected
DtSimulationAddress makVrf::DtVrfSimBackendManager::mySelectedBackend
protected
bool makVrf::DtVrfSimBackendManager::mySignalWhenAllBackendsClosed
protected
bool makVrf::DtVrfSimBackendManager::mySignalWhenAllBackendsLoaded
protected
bool makVrf::DtVrfSimBackendManager::mySignalWhenAllBackendsSaved
protected
std::map<std::string, char> makVrf::DtVrfSimBackendManager::myBackendsWaitingForSave
protected
std::map<std::string, bool> makVrf::DtVrfSimBackendManager::myAlreadyDuplicateWarned
protected
std::map<std::string, bool> makVrf::DtVrfSimBackendManager::myNeedToLoad
protected
std::vector<std::string> makVrf::DtVrfSimBackendManager::myNeedToSave
protected
DtSessionStatus makVrf::DtVrfSimBackendManager::mySessionStatus
protected
std::map<std::string, bool> makVrf::DtVrfSimBackendManager::myJustLoadedMap
protected
std::map<std::string, bool> makVrf::DtVrfSimBackendManager::myLoadingMap
protected
std::map<std::string, bool> makVrf::DtVrfSimBackendManager::myClosingMap
protected
std::map<std::string, bool> makVrf::DtVrfSimBackendManager::myJustClosedMap
protected
std::map<std::string, bool> makVrf::DtVrfSimBackendManager::myImportingMap
protected
std::map<std::string, bool> makVrf::DtVrfSimBackendManager::myCreatingSimulationObjectGroupMap
protected
double makVrf::DtVrfSimBackendManager::mySimTime
protected
double makVrf::DtVrfSimBackendManager::myLastSimTime
protected
double makVrf::DtVrfSimBackendManager::myDateAndTimeOfDay
protected
makVrv::DtSignalConnectionManager makVrf::DtVrfSimBackendManager::myConnectionManager
protected
bool makVrf::DtVrfSimBackendManager::myCloseProcessStarted
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)