17 #include <boost/serialization/access.hpp>
18 #include <boost/serialization/nvp.hpp>
19 #include <boost/serialization/list.hpp>
20 #include <boost/serialization/map.hpp>
21 #include <boost/serialization/vector.hpp>
22 #include <boost/serialization/string.hpp>
31 DtAutoJoinSession = 0x00000001,
32 DtAskToJoin = 0x00000002,
33 DtAlwaysJoinWithSessionDatabase = 0x00000004,
34 DtAlwaysJoinWithOpenDatabase = 0x00000008,
35 DtShowSessionDialogs = 0x00000010,
36 DtDisplayCorrelationWarningMessages = 0x00000020,
37 DtShowSessionStartupDialog = 0x00000040,
38 DtStartOnNewScenario = 0x00000080,
39 DtStartOnLoadRecentScenario = 0x00000100,
40 DtStartOnLoadScenarioFromDisk = 0x00000200,
41 DtAggregateOnCreate = 0x00000400,
42 DtUserDefinedSmoothing = 0x00000800,
43 DtShowScenarioDescriptionDialog = 0x00001000,
44 DtZoomToScenarioExtentsOnLoad = 0x00002000,
45 DtUseAdditionalWindowTitle = 0x00004000,
46 DtUseSimulationTimeForAdvancement = 0x00008000,
47 DtShowOverlayBar = 0x00010000,
48 DtSetScenarioStartTimeAtDefault = 0x00020000,
49 DtAutomaticallyOpenSessionDatabaseWithoutJoiningSession = 0x00040000,
50 DtUseStartFreezePdus = 0x00080000,
51 DtEnablePeriodicCheckpointing = 0x00200000,
59 friend class boost::serialization::access;
64 template<
class Archive>
65 void serialize(Archive & ar,
const unsigned int version)
67 ar & BOOST_SERIALIZATION_NVP(title);
68 ar & BOOST_SERIALIZATION_NVP(simulationModelSets);
69 ar & BOOST_SERIALIZATION_NVP(additionalInformation);
81 virtual void setFlag(
int flag,
bool set);
83 void setAutoJoinSession(
bool);
84 bool autoJoinSession()
const;
86 void setAutomaticallyOpenSessionDatabaseWithoutJoiningSession(
bool);
87 bool automaticallyOpenSessionDatabaseWithoutJoiningSession()
const;
89 void setEnablePeriodicCheckpointing(
bool);
90 bool enablePeriodicCheckpointing()
const;
92 void setPeriodicCheckpointingFrequency(
int);
93 int periodicCheckpointingFrequency()
const;
95 void setPeriodicCheckpointingDirectory(
const std::string&);
96 const std::string& periodicCheckpointingDirectory()
const;
98 void setAskToJoin(
bool);
99 bool askToJoin()
const;
101 void setAlwaysJoinWithSessionDatabase(
bool);
102 bool alwaysJoinWithSessionDatabase()
const;
104 void setAlwaysJoinWithOpenDatabase(
bool);
105 bool alwaysJoinWithOpenDatabase()
const;
108 virtual void setUseStartFreezePdus(
bool);
109 virtual bool useStartFreezePdus()
const;
111 void setDisplaySessionDialogs(
bool);
112 bool displaySessionDialogs()
const;
114 void setZoomToScenarioExtentsOnLoad(
bool);
115 bool zoomToScenarioExtentsOnLoad()
const;
117 void setDisplayCorrelationWarningMessages(
bool);
118 bool displayCorrelationWarningMessages()
const;
120 void setShowSessionStartupDialog(
bool);
121 bool showSessionStartupDialog()
const;
126 void setStartupPreference(
int);
127 int startupPreference()
const;
129 void setStartupTerrain(
const std::string&);
130 const std::string& startupTerrain()
const;
132 void setStartupScenario(
const std::string&);
133 const std::string& startupScenario()
const;
135 void setStartupSimulationModelSet(
const std::string&);
136 const std::string& startupSimulationModelSet()
const;
138 void setAggregateOnCreate(
bool);
139 bool aggregateOnCreate()
const;
141 virtual void setUseSimulationTimeForAdvancement(
bool);
142 virtual bool useSimulationTimeForAdvancement()
const;
144 virtual void setShowOverlayBar(
bool);
145 virtual bool showOverlayBar()
const;
147 void setShowScenarioDescriptionDialog(
bool);
148 bool showScenarioDescriptionDialog()
const;
151 void setUserDefinedSmoothing(
bool);
152 bool userDefinedSmoothing()
const;
155 virtual void setTimeScaleRange(
double low,
double high);
156 virtual void getTimeScaleRange(
double& low,
double& high)
const;
159 void setHelpFile(
const std::string&);
160 const std::string& helpFile()
const;
162 void setDefaultScenarioFile(
const std::string&);
163 const std::string& defaultScenarioFile()
const;
165 void setSimulationObjectGroupTerrain(
const std::string&);
166 const std::string& simulationObjectGroupTerrain()
const;
168 void setDefaultSimulationModelSetFile(
const std::string&);
169 const std::string& defaultSimulationModelSetFile()
const;
173 virtual void setUseAdditionalWindowTitle(
bool);
174 virtual bool useAdditionalWindowTitle()
const;
181 virtual const std::vector<SimulationModelSetConfiguration>& simulationModelSetConfigurations()
const;
182 virtual void setSimulationModelSetConfigurations(
const std::vector<SimulationModelSetConfiguration>&);
185 virtual void setScenarioStartTimeAtDefault(
bool);
186 virtual bool scenarioStartTimeAtDefault()
const;
189 virtual void setDefaultScenarioStartTime(time_t);
190 virtual time_t defaultScenarioStartTime()
const;
193 friend class boost::serialization::access;
198 template<
class Archive>
199 void serialize(Archive & ar,
const unsigned int version)
201 ar & BOOST_SERIALIZATION_NVP(mySessionOptions);
203 if ((version == 1) && (Archive::is_loading::value))
205 setFlag(DtShowSessionStartupDialog,
true);
207 else if ((version == 2) && (Archive::is_loading::value))
209 myHelpFile =
"../doc/help/vr-forces_help.qhc";
211 else if (version >= 4)
213 ar & BOOST_SERIALIZATION_NVP(myHelpFile);
214 ar & BOOST_SERIALIZATION_NVP(myDefaultScenarioFile);
215 ar & BOOST_SERIALIZATION_NVP(myDefaultSimulationModelSetFile);
217 if ((version <= 4) && (Archive::is_loading::value))
219 setFlag(DtUseAdditionalWindowTitle,
false);
224 ar & BOOST_SERIALIZATION_NVP(myAdditionalWindowTitle);
228 ar & BOOST_SERIALIZATION_NVP(mySimulationModelSetConfigurations);
232 ar & BOOST_SERIALIZATION_NVP(myTimescaleLow);
233 ar & BOOST_SERIALIZATION_NVP(myTimescaleHigh);
237 ar & BOOST_SERIALIZATION_NVP(myDefaultScenarioStartTime);
241 ar & BOOST_SERIALIZATION_NVP(mySimulationObjectGroupTerrain);
245 ar & BOOST_SERIALIZATION_NVP(myStartupTerrain);
246 ar & BOOST_SERIALIZATION_NVP(myStartupScenario);
247 ar & BOOST_SERIALIZATION_NVP(myStartupSimulationModelSet);
251 ar & BOOST_SERIALIZATION_NVP(myPeriodicCheckpointingTime);
252 ar & BOOST_SERIALIZATION_NVP(myPeriodicCheckpointingDirectory);
262 if (Archive::is_loading::value && (version <= 8))
264 setFlag(DtUseSimulationTimeForAdvancement,
true);
265 setFlag(DtShowOverlayBar,
true);