VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
objectSettingsManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 201 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
14 #include <vrvUtil/signalslib.h>
15 
16 #include <vrfGuiCore/vrfGuiCore.h>
19 #include <vrvCore/DtElementEntry.h>
20 #include <vrvUtil/event_signal.h>
21 #include <vrvUtil/DtUnicode.h>
24 
25 #include <vrvCore/DtDe.h>
26 
27 
28 namespace makVrv
29 {
30  class DtEventQueueInterface;
31  class DtSharedSettingsManager;
32 }
33 
34 namespace makVrf
35 {
37  {
41  };
42 
46  {
47  public:
48  typedef std::map<DtUUID, ObjectSetting> ObjectSettingsMap;
49 
55 
59  static std::string className();
60 
62  virtual ~DtSharedObjectSettings();
63 
65  virtual void removeSettings(const DtUUID&);
66 
67  void setSettings(const DtUUID&, ObjectSetting);
68  ObjectSetting settingsFor(const DtUUID&) const;
69 
71  virtual bool hasSetting(const DtUUID&) const;
72 
73  void setFlagState(const DtUUID&, ObjectSetting, bool onOff);
74 
76  bool flagState(const DtUUID&, ObjectSetting) const;
77 
78  virtual void write(boost::archive::xml_oarchive& ar, int version) const;
79  virtual void read(boost::archive::xml_iarchive& ar, int version);
80 
81  const ObjectSettingsMap& settingsMap() const;
82 
83  virtual void settingsLoaded();
84 
85  protected:
86 
89 
90  protected:
92  };
93 
96  {
97  public:
99  {
100  ObjectSettingStruct(ObjectSetting s, makVrv::DtUnicode n, std::set<makVrv::DtElementEntry::ElementType> e)
101  : setting(s)
102  , name(s)
103  , validFor(e)
104  {
105  }
106 
108  : setting((ObjectSetting)0)
109  , validFor()
110  {
111  validFor.insert( makVrv::DtElementEntry::Unknown );
112  }
113 
115  : setting(s.setting)
116  , name(s.name)
117  , validFor(s.validFor)
118  {
119  }
120 
122  {
123  setting = s.setting;
124  name = s.name;
125  validFor = s.validFor;
126 
127  return *this;
128  }
129 
132  std::set<makVrv::DtElementEntry::ElementType> validFor;
133  };
134 
135  typedef std::vector<ObjectSettingStruct> ObjectSettings;
136 
137  public:
139  virtual ~DtObjectSettingsManager();
140 
142  static DtObjectSettingsManager& instance(makVrv::DtDe& de);
143  static void registerInstance(makVrv::DtDe&, DtObjectSettingsManager*);
144 
146  virtual void removeSettings(const DtUUID&);
147 
149  virtual void removeAll();
150 
151  virtual void setSettings(const DtUUID&, ObjectSetting);
152  ObjectSetting settingsFor(const DtUUID&) const;
153 
155  ObjectSetting, std::set<makVrv::DtElementEntry::ElementType> validFor);
156  virtual void removeSetting(ObjectSetting);
157  ObjectSetting settingFor(const makVrv::DtUnicode&);
158  makVrv::DtUnicode settingNameFor(ObjectSetting);
159 
161  bool flagState(const DtUUID&, ObjectSetting) const;
162  virtual void setFlagState(const DtUUID&, ObjectSetting, bool onOff);
163  const ObjectSettings& objectSettings() const;
164 
165  virtual bool hasSetting(const DtUUID&) const;
166 
168  virtual void protect();
169 
170  protected:
171  virtual void init();
172 
173  virtual void write(boost::archive::xml_oarchive& ar, int version) const;
174  virtual void read(boost::archive::xml_iarchive& ar, int version);
175 
177  virtual void slot_onObjectAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
178 
180  virtual void slot_onObjectAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* p);
181 
182  protected:
186 
187  typedef std::map<DtUUID, bool> ProtectedFromRemoval;
189  };
190 
194  {
195  public:
196 
201 
205 
209  static DtSharedObjectSettingsSignaler* findInstance(
211 
214 
219 
220  protected:
222 
223  private:
226  };
227 }

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)