21 #include <QtGui/QWidget>
22 #include <QtCore/QObject>
29 class DtScenarioSnapshotsWidget;
30 class DtDeleteCheckpointsDialog;
31 class DtVrfBackendState;
32 class DtVrfScenarioManager;
46 available(orig.available), unavailable(orig.unavailable), saved(orig.saved),
47 periodic(orig.periodic), askedIfSaved(orig.askedIfSaved) {};
76 virtual void deleteCheckpoints();
79 virtual void scenarioSnapshots();
83 virtual void requestSnapshots(
const DtSimulationAddress& addr = DtSimSendToAll);
86 virtual void schedulePeriodicSnapshoting(
bool enabled,
double simTime,
int numberOfSnapshotsToKeep);
93 virtual bool rollbackTo(
double simTime = -1);
96 virtual bool haveSnapshotsThatCanBeRolledBack()
const;
99 virtual void clearSnapshots();
102 virtual bool saveCheckpoints(
const std::set<double>&);
103 virtual bool saveCheckpoint(
double);
106 virtual bool saveCheckpoints();
110 virtual bool takeSnapshot(
bool force =
false);
113 virtual bool takeBaseSnapshot();
116 virtual bool snapshotFor(
double simTime, AvailableSnapshot&)
const;
119 virtual bool hasBaseSnapshot(
double simTime)
const;
122 virtual bool hasSnapshot(
double simTime)
const;
125 virtual bool hasFixedSnapshot(
double simTime)
const;
128 virtual bool hasPeriodicSnapshot(
double simTime)
const;
131 virtual bool hasSavedScenarioForSnapshot(
double simTime)
const;
134 virtual bool hasUnaskedUnsavedSavedScenarioForSnapshot(
double simTime)
const;
137 virtual bool isSavingCheckpoints()
const;
140 virtual void setAskedToSaveAtThisSimTime(
double simTime,
bool);
148 virtual DtFilename scenarioNameForCheckpoint(
double)
const;
151 virtual double round(
double simTime)
const;
154 virtual void setScenarioAsSaved(
const DtFilename&);
157 virtual void clearAllSnapshots();
161 virtual double firstLoadableSimTime()
const;
168 virtual void updateCheckpointsSavedStatus();
171 virtual void scenarioSnapshotsWidgetDestroyed();
178 boost::signal<void (const std::set<double>&,
const std::set<double>&)> signal_saveStateChanged;
181 boost::signal<void (const std::set<double>&)> signal_savedCheckpointsCleared;
183 boost::signal<void (const std::set<double>&)> signal_savingCheckpoints;
189 virtual bool scenarioExists(
double simTime, DtFilename* foundFile = 0)
const;
197 virtual void removeBackend(
const std::string& addr,
bool sendMessage);
201 virtual double removeSnapshot(
const std::string& addr,
double snapshotTime);
202 virtual double addSnapshot(
const std::string& addr,
204 std::set<std::string>& stillUnavailable);
206 virtual void processScenarioSnapshotSaved(
DtSimMessage*);
209 virtual void checkNeedsPeriodicSave(
const std::set<double>&);
211 virtual void updatePeriodicCheckpointFrequency(
int periodicCheckpointFrequency);
212 virtual void sessionSettingsChanged();