VR-Forces 4.1 Class Documentation
DtGuiScenarioSettingsManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 /******************************************************************************
6 ** $RCSfile: DtGuiScenarioSettingsManager.h,v $ $Revision: 1.1 $ $State: Exp $
7 ******************************************************************************/
8 
11 
13 
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>
18 
19 #pragma once
20 
22 #include <vrfGuiCore/vrfGuiCore.h>
23 
24 #include <vrvCore/DtDe.h>
25 
26 namespace makVrf
27 {
30  {
31  public:
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;
34  };
35 
39  {
40  public:
43 
45  static DtGuiScenarioSettingsManager& instance(makVrv::DtDe& de);
46  static void registerInstance(makVrv::DtDe&, DtGuiScenarioSettingsManager*);
47 
48  virtual void addGuiSetting(const std::string& type, DtGuiSetting* setting);
49  virtual void removeGuiSetting(const std::string& type);
50 
52  virtual void save(const std::string& filename);
53 
55  virtual void load(const std::string& filename);
56 
57  protected:
58 
59  friend class boost::serialization::access;
60 
64  template<class Archive>
65  void serialize(Archive & ar, const unsigned int version)
66  {
67  if (Archive::is_loading::value)
68  {
69  GuiSettings::iterator iter = myGuiSettings.begin();
70 
71  while (iter != myGuiSettings.end())
72  {
73  (*iter).second->read(*(boost::archive::xml_iarchive*)&ar,version);
74  ++iter;
75  }
76  }
77  else
78  {
79  GuiSettings::const_iterator iter = myGuiSettings.begin();
80 
81  while (iter != myGuiSettings.end())
82  {
83  (*iter).second->write(*(boost::archive::xml_oarchive*)&ar,version);
84  ++iter;
85  }
86  }
87  }
88 
89  protected:
91 
92  typedef std::pair<std::string, DtGuiSetting*> GuiSetting;
93  typedef std::vector<GuiSetting> GuiSettings;
94 
96  };
97 }

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)