22 #include <boost/function.hpp>
23 #include <boost/signal.hpp>
27 class DtSimulationAddress;
34 class DtBaseSimulation;
59 class DtVrfBackEndState;
60 class DtLocalWeatherManager;
81 virtual bool backEndsPresent()
const;
84 virtual bool anyBackendsLoading()
const;
87 virtual bool anyBackendsCreatingSimulationObjectGroup()
const;
90 virtual bool anyBackendsClosing()
const;
93 virtual bool anyBackendsLoaded()
const;
96 virtual bool allBackendsLoaded()
const;
99 virtual bool backendLoaded(
const DtSimulationAddress&)
const;
102 virtual bool backendSaving(
const DtSimulationAddress&)
const;
105 virtual bool anyBackendsPlaying()
const;
108 virtual bool anyBackendsInControlState(
int state)
const;
111 virtual bool hasDynamicTerrainServer()
const;
114 virtual bool allBackendsCanSimulate()
const;
117 virtual bool anyBackendCanSimulate()
const;
120 virtual bool backendCanSimulate(
const DtSimulationAddress&)
const;
123 virtual void duplicateBackendDiscovered(
const DtSimulationAddress&);
126 virtual double timeMultiplier()
const;
134 virtual void removeAllBackends();
135 virtual void addBackend(
const DtBackend*);
136 virtual void backendRemoved(
const DtSimulationAddress&);
137 virtual void backendUpdated(
const DtSimulationAddress&,
const DtBackend*);
142 virtual const DtSimulationAddress& selectedBackend()
const
144 return mySelectedBackend;
147 void setSelectedBackend(
const DtSimulationAddress&);
150 virtual void simulationAddresses(std::set<std::string>&);
152 virtual int numberOfBackends()
const;
155 virtual void clearSelectedBackend();
161 virtual double simTime()
const;
164 virtual double runDurationTime()
const;
167 virtual int scenarioRunId()
const;
171 virtual double timeOfDay()
const;
174 virtual double simStartSimTime()
const;
179 return myBackendStates;
185 return myAllBackendStates;
189 virtual std::map<short, int> currentObjectCounts()
const;
192 virtual const std::map<short, int>& currentObjectCount(
const DtSimulationAddress&)
const;
196 virtual void signalWhenAllBackendsClosed();
199 virtual void signalIfAllBackendsClosed();
204 virtual void signalWhenAllBackendsLoaded();
207 virtual void clearNotificationWhenBackendsLoaded();
211 virtual void signalIfAllBackendsLoaded();
215 virtual void signalWhenAllBackendsSaved();
218 virtual void clearNotificationWhenBackendsSaved();
221 virtual void signalIfAllBackendsSaved(
bool checkpointSave);
224 std::string sessionScenario()
const
226 return mySessionStatus.scenarioName().c_str();
229 virtual void setSessionScenario(
const std::string&);
231 std::string sessionScenarioFilename()
const
233 return mySessionStatus.scenarioFilename().c_str();
236 virtual void setSessionScenarioFilename(
const std::string&);
238 std::string sessionGuiTerrain()
const
240 return mySessionStatus.guiTerrainName().c_str();
243 virtual void setSessionGuiTerrain(
const std::string&);
245 std::string sessionSimTerrain()
const
247 return mySessionStatus.terrainName().c_str();
250 virtual void setSessionSimTerrain(
const std::string&);
252 const std::vector<DtFilename>& simulationModelSets()
const
254 return mySessionStatus.simulationModelSets();
262 virtual time_t dateAndTimeOfDay()
const;
263 virtual void setDateAndTimeOfDay(time_t);
264 virtual void resetDateAndTimeOfDay();
266 virtual const std::map<std::string, bool> backendsLoading()
const
271 virtual const std::map<std::string, bool> backendsClosing()
const
295 virtual double simTimeFromBackend()
const;
297 virtual void updateDateAndTimeOfDay();
298 virtual void slot_dateAndTimeOfDayChanged(
int year,
int month,
int day,
int hours,
int mins,
int secs);
303 virtual void simulationBackendUpdated(DtSimulationAddress,
int);
304 virtual void duplicateSimulationBackendDiscovered(DtSimulationAddress);
307 virtual void processLoadCompleteCallback(
DtSimMessage*);
308 virtual void processSaveCompleteCallback(
DtSimMessage*);
311 virtual void backendSaved(
const std::string&,
bool checkpointSave);
313 virtual void setBackendSaving(
const DtSimulationAddress&,
bool b);
316 virtual void updateSessionInformation(
int sessionFlags = 0);
319 virtual void clear();