VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
guiScenarioSettingsManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
14 #include <vrfGuiCore/vrfGuiCore.h>
15 
16 #include <vrvCore/DtDe.h>
17 
18 #include <boost/serialization/access.hpp>
19 #include <boost/serialization/nvp.hpp>
20 #include <boost/archive/xml_iarchive.hpp>
21 #include <boost/archive/xml_oarchive.hpp>
22 
23 namespace makVrf
24 {
27  {
28  public:
29  virtual void write(boost::archive::xml_oarchive& ar, int version) const = 0;
30  virtual void read(boost::archive::xml_iarchive& ar, int version) = 0;
31  };
32 
36  {
37  public:
40 
42  static DtGuiScenarioSettingsManager& instance(makVrv::DtDe& de);
43  static void registerInstance(makVrv::DtDe&, DtGuiScenarioSettingsManager*);
44 
45  virtual void addGuiSetting(const std::string& type, DtGuiSetting* setting);
46  virtual void removeGuiSetting(const std::string& type);
47 
49  virtual void save(const std::string& filename);
50 
52  virtual void load(const std::string& filename);
53 
54  protected:
55 
56  friend class boost::serialization::access;
57 
61  template<class Archive>
62  void serialize(Archive & ar, const unsigned int version)
63  {
64  if (Archive::is_loading::value)
65  {
66  GuiSettings::iterator iter = myGuiSettings.begin();
67 
68  while (iter != myGuiSettings.end())
69  {
70  (*iter).second->read(*(boost::archive::xml_iarchive*)&ar,version);
71  ++iter;
72  }
73  }
74  else
75  {
76  GuiSettings::const_iterator iter = myGuiSettings.begin();
77 
78  while (iter != myGuiSettings.end())
79  {
80  (*iter).second->write(*(boost::archive::xml_oarchive*)&ar,version);
81  ++iter;
82  }
83  }
84  }
85 
86  protected:
88 
89  typedef std::pair<std::string, DtGuiSetting*> GuiSetting;
90  typedef std::vector<GuiSetting> GuiSettings;
91 
93  };
94 }

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)