22 #include <boost/function.hpp>
23 #include <boost/signal.hpp>
27 class DtSimulationAddress;
34 class DtBaseSimulation;
58 class DtVrfBackEndState;
79 virtual bool backEndsPresent()
const;
82 virtual bool anyBackendsLoading()
const;
85 virtual bool anyBackendsCreatingSimulationObjectGroup()
const;
88 virtual bool anyBackendsClosing()
const;
91 virtual bool anyBackendsLoaded()
const;
94 virtual bool allBackendsLoaded()
const;
97 virtual bool backendLoaded(
const DtSimulationAddress&)
const;
100 virtual bool backendSaving(
const DtSimulationAddress&)
const;
103 virtual bool anyBackendsPlaying()
const;
106 virtual bool anyBackendsInControlState(
int state)
const;
109 virtual bool allBackendsCanSimulate()
const;
112 virtual bool anyBackendCanSimulate()
const;
115 virtual bool backendCanSimulate(
const DtSimulationAddress&)
const;
118 virtual void duplicateBackendDiscovered(
const DtSimulationAddress&);
121 virtual double timeMultiplier()
const;
129 virtual void removeAllBackends();
130 virtual void addBackend(
const DtBackend*);
131 virtual void backendRemoved(
const DtSimulationAddress&);
132 virtual void backendUpdated(
const DtSimulationAddress&,
const DtBackend*);
137 virtual const DtSimulationAddress& selectedBackend()
const
139 return mySelectedBackend;
142 void setSelectedBackend(
const DtSimulationAddress&);
145 virtual void simulationAddresses(std::set<std::string>&);
147 virtual int numberOfBackends()
const;
150 virtual void clearSelectedBackend();
156 virtual double simTime()
const;
159 virtual double runDurationTime()
const;
162 virtual int scenarioRunId()
const;
166 virtual double timeOfDay()
const;
169 virtual double simStartSimTime()
const;
174 return myBackendStates;
180 return myAllBackendStates;
184 virtual std::map<short, int> currentObjectCounts()
const;
187 virtual const std::map<short, int>& currentObjectCount(
const DtSimulationAddress&)
const;
191 virtual void signalWhenAllBackendsClosed();
194 virtual void signalIfAllBackendsClosed();
199 virtual void signalWhenAllBackendsLoaded();
203 virtual void signalIfAllBackendsLoaded();
207 virtual void signalWhenAllBackendsSaved();
210 virtual void signalIfAllBackendsSaved(
bool checkpointSave);
213 std::string sessionScenario()
const
215 return mySessionStatus.scenarioName().c_str();
218 virtual void setSessionScenario(
const std::string&);
220 std::string sessionScenarioFilename()
const
222 return mySessionStatus.scenarioFilename().c_str();
225 virtual void setSessionScenarioFilename(
const std::string&);
227 std::string sessionGuiTerrain()
const
229 return mySessionStatus.guiTerrainName().c_str();
232 virtual void setSessionGuiTerrain(
const std::string&);
234 std::string sessionSimTerrain()
const
236 return mySessionStatus.terrainName().c_str();
239 const std::vector<DtFilename>& simulationModelSets()
const
241 return mySessionStatus.simulationModelSets();
249 virtual time_t dateAndTimeOfDay()
const;
250 virtual void setDateAndTimeOfDay(time_t);
251 virtual void resetDateAndTimeOfDay();
253 virtual const std::map<std::string, bool> backendsLoading()
const
258 virtual const std::map<std::string, bool> backendsClosing()
const
280 virtual double simTimeFromBackend()
const;
282 virtual void updateDateAndTimeOfDay();
283 virtual void slot_dateAndTimeOfDayChanged(
int year,
int month,
int day,
int hours,
int mins,
int secs);
288 virtual void simulationBackendUpdated(DtSimulationAddress,
int);
289 virtual void duplicateSimulationBackendDiscovered(DtSimulationAddress);
292 virtual void processLoadCompleteCallback(
DtSimMessage*);
293 virtual void processSaveCompleteCallback(
DtSimMessage*);
296 virtual void backendSaved(
const std::string&,
bool checkpointSave);
298 virtual void setBackendSaving(
const DtSimulationAddress&,
bool b);
301 virtual void updateSessionInformation(
int sessionFlags = 0);
304 virtual void clear();