22 #include <boost/function.hpp>
23 #include <boost/signal.hpp>
27 class DtSimulationAddress;
34 class DtBaseSimulation;
57 class DtVrfBackEndState;
78 virtual bool backEndsPresent()
const;
81 virtual bool anyBackendsLoading()
const;
84 virtual bool anyBackendsCreatingSimulationObjectGroup()
const;
87 virtual bool anyBackendsClosing()
const;
90 virtual bool anyBackendsLoaded()
const;
93 virtual bool allBackendsLoaded()
const;
96 virtual bool backendLoaded(
const DtSimulationAddress&)
const;
99 virtual bool backendSaving(
const DtSimulationAddress&)
const;
102 virtual bool anyBackendsPlaying()
const;
105 virtual bool anyBackendsInControlState(
int state)
const;
108 virtual bool allBackendsCanSimulate()
const;
111 virtual bool backendCanSimulate(
const DtSimulationAddress&)
const;
114 virtual void duplicateBackendDiscovered(
const DtSimulationAddress&);
117 virtual double timeMultiplier()
const;
125 virtual void removeAllBackends();
126 virtual void addBackend(
const DtBackend*);
127 virtual void backendRemoved(
const DtSimulationAddress&);
128 virtual void backendUpdated(
const DtSimulationAddress&,
const DtBackend*);
133 virtual const DtSimulationAddress& selectedBackend()
const
135 return mySelectedBackend;
138 void setSelectedBackend(
const DtSimulationAddress&);
141 virtual void simulationAddresses(std::set<std::string>&);
143 virtual int numberOfBackends()
const;
146 virtual void clearSelectedBackend();
149 virtual double simTime()
const;
152 virtual double runDurationTime()
const;
156 virtual double timeOfDay()
const;
159 virtual double simStartSimTime()
const;
163 return myBackendStates;
167 virtual std::map<short, int> currentObjectCounts()
const;
170 virtual const std::map<short, int>& currentObjectCount(
const DtSimulationAddress&)
const;
174 virtual void signalWhenAllBackendsClosed();
177 virtual void signalIfAllBackendsClosed();
182 virtual void signalWhenAllBackendsLoaded();
186 virtual void signalIfAllBackendsLoaded();
190 virtual void signalWhenAllBackendsSaved();
193 virtual void signalIfAllBackendsSaved(
bool checkpointSave);
196 std::string sessionScenario()
const
198 return mySessionStatus.scenarioName().c_str();
201 virtual void setSessionScenario(
const std::string&);
203 std::string sessionScenarioFilename()
const
205 return mySessionStatus.scenarioFilename().c_str();
208 virtual void setSessionScenarioFilename(
const std::string&);
210 std::string sessionGuiTerrain()
const
212 return mySessionStatus.guiTerrainName().c_str();
215 virtual void setSessionGuiTerrain(
const std::string&);
217 std::string sessionSimTerrain()
const
219 return mySessionStatus.terrainName().c_str();
222 const std::vector<DtFilename>& simulationModelSets()
const
224 return mySessionStatus.simulationModelSets();
232 virtual time_t dateAndTimeOfDay()
const;
233 virtual void setDateAndTimeOfDay(time_t);
234 virtual void resetDateAndTimeOfDay();
236 virtual const std::map<std::string, bool> backendsLoading()
const
241 virtual const std::map<std::string, bool> backendsClosing()
const
261 virtual double simTimeFromBackend()
const;
263 virtual void updateDateAndTimeOfDay();
264 virtual void slot_dateAndTimeOfDayChanged(
int year,
int month,
int day,
int hours,
int mins,
int secs);
269 virtual void simulationBackendUpdated(DtSimulationAddress,
int);
270 virtual void duplicateSimulationBackendDiscovered(DtSimulationAddress);
273 virtual void processLoadCompleteCallback(
DtSimMessage*);
274 virtual void processSaveCompleteCallback(
DtSimMessage*);
277 virtual void backendSaved(
const std::string&,
bool checkpointSave);
279 virtual void setBackendSaving(
const DtSimulationAddress&,
bool b);
282 virtual void updateSessionInformation(
int sessionFlags = 0);