VR-Forces 4.8 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 <boost/serialization/access.hpp>
17 #include <boost/serialization/nvp.hpp>
18 #include <boost/archive/xml_iarchive.hpp>
19 #include <boost/archive/xml_oarchive.hpp>
20 
21 #include <vector>
22 
23 namespace makVrv
24 {
25  class DtDe;
26 }
27 
28 namespace makVrf
29 {
32  {
33  public:
34  virtual void write(boost::archive::xml_oarchive& ar, int version) const = 0;
35  virtual void read(boost::archive::xml_iarchive& ar, int version) = 0;
36  };
37 
41  {
42  public:
45 
47  static DtGuiScenarioSettingsManager& instance(makVrv::DtDe& de);
48  static void registerInstance(makVrv::DtDe&, DtGuiScenarioSettingsManager*);
49 
50  virtual void addGuiSetting(const std::string& type, DtGuiSetting* setting);
51  virtual void removeGuiSetting(const std::string& type);
52 
54  virtual void save(const std::string& filename);
55 
57  virtual std::string toStringBuffer();
58 
60  virtual bool fromStringBuffer(const std::string&);
61 
63  virtual void load(const std::string& filename);
64 
65  protected:
66 
67  friend class boost::serialization::access;
68 
72  template<class Archive>
73  void serialize(Archive & ar, const unsigned int version)
74  {
75  if (Archive::is_loading::value)
76  {
77  GuiSettings::iterator iter = myGuiSettings.begin();
78 
79  while (iter != myGuiSettings.end())
80  {
81  (*iter).second->read(*(boost::archive::xml_iarchive*)&ar,version);
82  ++iter;
83  }
84  }
85  else
86  {
87  GuiSettings::const_iterator iter = myGuiSettings.begin();
88 
89  while (iter != myGuiSettings.end())
90  {
91  (*iter).second->write(*(boost::archive::xml_oarchive*)&ar,version);
92  ++iter;
93  }
94  }
95  }
96 
97  protected:
99 
100  typedef std::pair<std::string, DtGuiSetting*> GuiSetting;
101  typedef std::vector<GuiSetting> GuiSettings;
102 
104  };
105 }
The Master DtGuiScenarioSettingsManager.
Definition: guiScenarioSettingsManager.h:40
Virtual base class.
Definition: DtVirtualBaseClass.h:22
makVrv::DtDe & myDe
Definition: guiScenarioSettingsManager.h:98
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
Contains makVrv::DtVirtualBaseClass class.
std::vector< GuiSetting > GuiSettings
Definition: guiScenarioSettingsManager.h:101
std::pair< std::string, DtGuiSetting * > GuiSetting
Definition: guiScenarioSettingsManager.h:100
GuiSettings myGuiSettings
Definition: guiScenarioSettingsManager.h:103
Base class that all gui settings must derive from. Must implement read/write methods.
Definition: guiScenarioSettingsManager.h:31
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the &amp; operator is defined similar to &lt;&lt;...
Definition: guiScenarioSettingsManager.h:73

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)