VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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 std::string toStringBuffer();
53 
55  virtual bool fromStringBuffer(const std::string&);
56 
58  virtual void load(const std::string& filename);
59 
60  protected:
61 
62  friend class boost::serialization::access;
63 
67  template<class Archive>
68  void serialize(Archive & ar, const unsigned int version)
69  {
70  if (Archive::is_loading::value)
71  {
72  GuiSettings::iterator iter = myGuiSettings.begin();
73 
74  while (iter != myGuiSettings.end())
75  {
76  (*iter).second->read(*(boost::archive::xml_iarchive*)&ar,version);
77  ++iter;
78  }
79  }
80  else
81  {
82  GuiSettings::const_iterator iter = myGuiSettings.begin();
83 
84  while (iter != myGuiSettings.end())
85  {
86  (*iter).second->write(*(boost::archive::xml_oarchive*)&ar,version);
87  ++iter;
88  }
89  }
90  }
91 
92  protected:
94 
95  typedef std::pair<std::string, DtGuiSetting*> GuiSetting;
96  typedef std::vector<GuiSetting> GuiSettings;
97 
99  };
100 }

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)