22 #include <boost/function.hpp>
23 #include <boost/signal.hpp>
27 class DtSimulationAddress;
34 class DtBaseSimulation;
61 class DtVrfBackEndState;
62 class DtLocalWeatherManager;
83 virtual bool backEndsPresent()
const;
86 virtual bool anyBackendsLoading()
const;
89 virtual bool anyBackendsCreatingSimulationObjectGroup()
const;
92 virtual bool anyBackendsClosing()
const;
95 virtual bool allBackendsClosingOrClosed()
const;
98 virtual bool anyBackendsLoaded()
const;
101 virtual bool allBackendsLoaded()
const;
104 virtual bool backendLoaded(
const DtSimulationAddress&)
const;
107 virtual bool backendSaving(
const DtSimulationAddress&)
const;
110 virtual bool anyBackendsPlaying()
const;
113 virtual bool anyBackendsInControlState(
int state)
const;
116 virtual bool hasDynamicTerrainServer()
const;
119 virtual bool allBackendsCanSimulate()
const;
122 virtual bool anyBackendCanSimulate()
const;
125 virtual bool backendCanSimulate(
const DtSimulationAddress&)
const;
128 virtual void duplicateBackendDiscovered(
const DtSimulationAddress&);
131 virtual double timeMultiplier()
const;
139 virtual void removeAllBackends();
140 virtual void addBackend(
const DtBackend*);
141 virtual void backendRemoved(
const DtSimulationAddress&);
142 virtual void backendUpdated(
const DtSimulationAddress&,
const DtBackend*);
147 virtual const DtSimulationAddress& selectedBackend()
const
149 return mySelectedBackend;
152 void setSelectedBackend(
const DtSimulationAddress&);
155 virtual void simulationAddresses(std::set<std::string>&);
157 virtual int numberOfBackends()
const;
160 virtual void clearSelectedBackend();
166 virtual double simTime()
const;
169 virtual double runDurationTime()
const;
172 virtual int scenarioRunId()
const;
176 virtual double timeOfDay()
const;
179 virtual double simStartSimTime()
const;
184 return myBackendStates;
190 return myAllBackendStates;
194 virtual std::map<short, int> currentObjectCounts()
const;
197 virtual const std::map<short, int>& currentObjectCount(
const DtSimulationAddress&)
const;
201 virtual void signalWhenAllBackendsClosed();
204 virtual void signalIfAllBackendsClosed();
209 virtual void signalWhenAllBackendsLoaded();
212 virtual void clearNotificationWhenBackendsLoaded();
216 virtual void signalIfAllBackendsLoaded();
220 virtual void signalWhenAllBackendsSaved();
223 virtual void clearNotificationWhenBackendsSaved();
226 virtual void signalIfAllBackendsSaved(
bool checkpointSave);
229 std::string sessionScenario()
const
231 return mySessionStatus.scenarioName().c_str();
234 virtual void setSessionScenario(
const std::string&);
236 std::string sessionScenarioFilename()
const
238 return mySessionStatus.scenarioFilename().c_str();
241 virtual void setSessionScenarioFilename(
const std::string&);
243 std::string sessionGuiTerrain()
const
245 return mySessionStatus.guiTerrainName().c_str();
248 virtual void setSessionGuiTerrain(
const std::string&);
250 std::string sessionSimTerrain()
const
252 return mySessionStatus.terrainName().c_str();
255 virtual void setSessionSimTerrain(
const std::string&);
257 const std::vector<DtFilename>& simulationModelSets()
const
259 return mySessionStatus.simulationModelSets();
267 virtual time_t dateAndTimeOfDay()
const;
268 virtual void setDateAndTimeOfDay(time_t);
269 virtual void resetDateAndTimeOfDay();
271 virtual const std::map<std::string, bool> backendsLoading()
const
276 virtual const std::map<std::string, bool> backendsClosing()
const
300 virtual double simTimeFromBackend()
const;
302 virtual void updateDateAndTimeOfDay();
303 virtual void slot_dateAndTimeOfDayChanged(
int year,
int month,
int day,
int hours,
int mins,
int secs);
308 virtual void simulationBackendUpdated(DtSimulationAddress,
int);
309 virtual void duplicateSimulationBackendDiscovered(DtSimulationAddress);
312 virtual void processLoadCompleteCallback(
DtSimMessage*);
313 virtual void processSaveCompleteCallback(
DtSimMessage*);
316 virtual void backendSaved(
const std::string&,
bool checkpointSave);
318 virtual void setBackendSaving(
const DtSimulationAddress&,
bool b);
321 virtual void updateSessionInformation(
int sessionFlags = 0);
324 virtual void clear();