17 #include <boost/signals2.hpp>
18 #include <boost/function.hpp>
22 #include <boost/archive/xml_iarchive.hpp>
23 #include <boost/archive/xml_oarchive.hpp>
24 #include <boost/serialization/access.hpp>
25 #include <boost/serialization/nvp.hpp>
26 #include <boost/serialization/list.hpp>
27 #include <boost/serialization/map.hpp>
28 #include <boost/serialization/vector.hpp>
29 #include <boost/serialization/string.hpp>
50 virtual std::string classType()
const = 0;
54 return T().classType();
63 virtual void write(boost::archive::xml_oarchive& out,
const unsigned int) = 0;
64 virtual void read(boost::archive::xml_iarchive& in,
const unsigned int) = 0;
70 friend class boost::serialization::access;
75 template<
class Archive>
76 void serialize(Archive & ar,
const unsigned int version)
78 if (Archive::is_loading::value)
80 int dVersion = version;
84 *((boost::archive::xml_iarchive*)&ar) >> boost::serialization::make_nvp(
"version", dVersion);
87 read(*(boost::archive::xml_iarchive*)&ar, dVersion);
91 int dVersion = dataVersion();
93 *((boost::archive::xml_oarchive*)&ar) << boost::serialization::make_nvp(
"version", dVersion);
94 write(*(boost::archive::xml_oarchive*)&ar, dVersion);
113 static void cleanup();
123 #define REGISTER_APPLICATION_SETTING(AppSetting) static bool AppSetting##_Registered = \
124 DtVrfGuiSettingsFactory::addSettingCreator(DtVrfGuiApplicationSetting::theClassType<AppSetting>(), \
125 DtVrfGuiApplicationSetting::create<AppSetting>);
142 virtual void loadSettings(
const std::string& settingsFile);
143 virtual void saveSettings();
144 virtual void saveSettings(
const std::string& settingsFile);
153 virtual void removeSetting(
const std::string&);
170 virtual void clearSettings();
173 friend class boost::serialization::access;
178 template<
class Archive>
179 void serialize(Archive & ar,
const unsigned int version)
181 VrfGuiSettings::const_iterator iter = mySettings.begin();
183 if (Archive::is_loading::value)
186 std::string classType;
189 ar & BOOST_SERIALIZATION_NVP(size);
191 for (
int i = 0; i <
size; i++)
193 ar & BOOST_SERIALIZATION_NVP(name);
194 ar & BOOST_SERIALIZATION_NVP(classType);
200 ar & BOOST_SERIALIZATION_NVP(guiSetting);
201 mySettings[name] = iface;
208 int size = mySettings.size();
209 ar & BOOST_SERIALIZATION_NVP(size);
210 VrfGuiSettings::const_iterator iter = mySettings.begin();
212 while (iter != mySettings.end())
214 std::string name = iter->first;
216 ar & BOOST_SERIALIZATION_NVP(name);
217 std::string classType = iter->second->classType();
218 ar & BOOST_SERIALIZATION_NVP(classType);
221 ar & BOOST_SERIALIZATION_NVP(guiSetting);
DtVrfGuiApplicationSetting *(* DtApplicationSettingCreatorFcn)(makVrv::DtDe &)
Definition: vrfGuiApplicationSettings.h:102
bool autoSave() const
Definition: vrfGuiApplicationSettings.h:165
makVrv::DtDe & myDe
Definition: vrfGuiApplicationSettings.h:229
Virtual base class.
Definition: DtVirtualBaseClass.h:22
static std::string theClassType()
Definition: vrfGuiApplicationSettings.h:52
voidpf void uLong size
Definition: ioapi.h:39
VrfGuiSettings mySettings
Definition: vrfGuiApplicationSettings.h:230
std::map< std::string, DtVrfGuiApplicationSetting * > VrfGuiSettings
Definition: vrfGuiApplicationSettings.h:129
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
BOOST_CLASS_VERSION(makArchives::DtDiGuySettingsRecord, 2)
Definition: vrfGuiApplicationSettings.h:38
const VrfGuiSettings & settings() const
Definition: vrfGuiApplicationSettings.h:155
makVrv::DtDe * myDe
Definition: vrfGuiApplicationSettings.h:99
Contains makVrv::DtVirtualBaseClass class.
std::map< std::string, DtApplicationSettingCreatorFcn > SettingsCreatorMap
Definition: vrfGuiApplicationSettings.h:107
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: vrfGuiApplicationSettings.h:179
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: vrfGuiApplicationSettings.h:76
void setAutoSave(bool b)
Definition: vrfGuiApplicationSettings.h:160
virtual int dataVersion()
Override in subclass to version data.
Definition: vrfGuiApplicationSettings.h:67
Definition: vrfGuiApplicationSettings.h:104
std::string mySettingsFile
Definition: vrfGuiApplicationSettings.h:231
Definition: vrfGuiApplicationSettings.h:127
bool myAutoSave
Definition: vrfGuiApplicationSettings.h:232
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
static std::map< std::string, DtApplicationSettingCreatorFcn > * theSettingsCreators
Definition: vrfGuiApplicationSettings.h:120
static DtVrfGuiApplicationSetting * createSetting(const std::string &name, makVrv::DtDe &)
static DtVrfGuiApplicationSetting * create(makVrv::DtDe &de)
Definition: vrfGuiApplicationSettings.h:57