22 #include <boost/function.hpp>
23 #include <boost/signal.hpp>
27 class DtSimulationAddress;
34 class DtBaseSimulation;
55 class DtVrfBackEndState;
76 virtual bool backEndsPresent()
const;
79 virtual bool anyBackendsLoading()
const;
82 virtual bool anyBackendsCreatingSimulationObjectGroup()
const;
85 virtual bool anyBackendsClosing()
const;
88 virtual bool anyBackendsLoaded()
const;
91 virtual bool allBackendsLoaded()
const;
94 virtual bool backendLoaded(
const DtSimulationAddress&)
const;
97 virtual bool backendSaving(
const DtSimulationAddress&)
const;
100 virtual bool anyBackendsPlaying()
const;
103 virtual bool anyBackendsInControlState(
int state)
const;
106 virtual bool allBackendsCanSimulate()
const;
109 virtual bool backendCanSimulate(
const DtSimulationAddress&)
const;
112 virtual void duplicateBackendDiscovered(
const DtSimulationAddress&);
115 virtual double timeMultiplier()
const;
123 virtual void removeAllBackends();
124 virtual void addBackend(
const DtBackend*);
125 virtual void backendRemoved(
const DtSimulationAddress&);
126 virtual void backendUpdated(
const DtSimulationAddress&,
const DtBackend*);
131 virtual const DtSimulationAddress& selectedBackend()
const
133 return mySelectedBackend;
136 void setSelectedBackend(
const DtSimulationAddress&);
138 virtual int numberOfBackends()
const;
141 virtual void clearSelectedBackend();
144 virtual double simTime()
const;
147 virtual double runDurationTime()
const;
151 virtual double timeOfDay()
const;
154 virtual double simStartSimTime()
const;
158 return myBackendStates;
162 virtual std::map<short, int> currentObjectCounts()
const;
165 virtual const std::map<short, int>& currentObjectCount(
const DtSimulationAddress&)
const;
169 virtual void signalWhenAllBackendsClosed();
172 virtual void signalIfAllBackendsClosed();
177 virtual void signalWhenAllBackendsLoaded();
181 virtual void signalIfAllBackendsLoaded();
185 virtual void signalWhenAllBackendsSaved();
188 virtual void signalIfAllBackendsSaved();
191 std::string sessionScenario()
const
193 return mySessionStatus.scenarioName().c_str();
196 virtual void setSessionScenario(
const std::string&);
198 std::string sessionScenarioFilename()
const
200 return mySessionStatus.scenarioFilename().c_str();
203 virtual void setSessionScenarioFilename(
const std::string&);
205 std::string sessionGuiTerrain()
const
207 return mySessionStatus.guiTerrainName().c_str();
210 virtual void setSessionGuiTerrain(
const std::string&);
212 std::string sessionSimTerrain()
const
214 return mySessionStatus.terrainName().c_str();
217 const std::vector<DtFilename>& simulationModelSets()
const
219 return mySessionStatus.simulationModelSets();
227 virtual time_t dateAndTimeOfDay()
const;
228 virtual void setDateAndTimeOfDay(time_t);
229 virtual void resetDateAndTimeOfDay();
231 virtual const std::map<std::string, bool> backendsLoading()
const
236 virtual const std::map<std::string, bool> backendsClosing()
const
256 virtual double simTimeFromBackend()
const;
258 virtual void updateDateAndTimeOfDay();
259 virtual void slot_dateAndTimeOfDayChanged(
int year,
int month,
int day,
int hours,
int mins,
int secs);
264 virtual void simulationBackendUpdated(DtSimulationAddress,
int);
265 virtual void duplicateSimulationBackendDiscovered(DtSimulationAddress);
268 virtual void processLoadCompleteCallback(
DtSimMessage*);
269 virtual void processSaveCompleteCallback(
DtSimMessage*);
272 virtual void backendSaved(
const std::string&);
274 virtual void setBackendSaving(
const DtSimulationAddress&,
bool b);
277 virtual void updateSessionInformation(
int sessionFlags = 0);