14 #include <boost/serialization/access.hpp>
15 #include <boost/serialization/nvp.hpp>
16 #include <boost/archive/xml_iarchive.hpp>
17 #include <boost/archive/xml_oarchive.hpp>
21 #include <vrvUtil/DtVirtualBaseClass.h>
24 #include <vrvCore/DtDe.h>
32 virtual void write(boost::archive::xml_oarchive& ar,
int version)
const = 0;
33 virtual void read(boost::archive::xml_iarchive& ar,
int version) = 0;
48 virtual void addGuiSetting(
const std::string& type,
DtGuiSetting* setting);
49 virtual void removeGuiSetting(
const std::string& type);
52 virtual void save(
const std::string& filename);
55 virtual void load(
const std::string& filename);
59 friend class boost::serialization::access;
64 template<
class Archive>
65 void serialize(Archive & ar,
const unsigned int version)
67 if (Archive::is_loading::value)
69 GuiSettings::iterator iter = myGuiSettings.begin();
71 while (iter != myGuiSettings.end())
73 (*iter).second->read(*(boost::archive::xml_iarchive*)&ar,version);
79 GuiSettings::const_iterator iter = myGuiSettings.begin();
81 while (iter != myGuiSettings.end())
83 (*iter).second->write(*(boost::archive::xml_oarchive*)&ar,version);
92 typedef std::pair<std::string, DtGuiSetting*>
GuiSetting;