VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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 <vrvCore/DtEntityState.h>
21 #include <vrvUtil/event_signal.h>
22 #include <vrvUtil/DtUnicode.h>
24 
25 #include <vrvCore/DtDe.h>
26 #include <vrfutil/rwUUID.h>
27 
28 namespace makVrv
29 {
30  class DtEventQueueInterface;
31  class DtSharedSettingsManager;
32 }
33 
34 namespace makVrf
35 {
37  {
42 
43  UserStart = 0x01000000
44  };
45 
49  {
50  public:
51  typedef std::map<DtUUID, ObjectSetting> ObjectSettingsMap;
52 
58 
62  static std::string className();
63 
65  virtual ~DtSharedObjectSettings();
66 
68  virtual void removeSettings(const DtUUID&);
69 
70  void setSettings(const DtUUID&, ObjectSetting);
71  ObjectSetting settingsFor(const DtUUID&) const;
72 
74  virtual bool hasSetting(const DtUUID&) const;
75 
76  void setFlagState(const DtUUID&, ObjectSetting, bool onOff);
77 
79  bool flagState(const DtUUID&, ObjectSetting) const;
80 
81  virtual void write(boost::archive::xml_oarchive& ar, int version) const;
82  virtual void read(boost::archive::xml_iarchive& ar, int version);
83 
84  const ObjectSettingsMap& settingsMap() const;
85 
86  virtual void settingsLoaded();
87 
88  protected:
89 
92 
93  protected:
95  };
96 
99  {
100  public:
102  {
103  ObjectSettingStruct(ObjectSetting s, makVrv::DtUnicode n, std::set<makVrv::DtElementEntry::ElementType> e)
104  : setting(s)
105  , name(s)
106  , validFor(e)
107  {
108  }
109 
111  : setting((ObjectSetting)0)
112  , validFor()
113  {
114  validFor.insert( makVrv::DtElementEntry::Unknown );
115  }
116 
118  : setting(s.setting)
119  , name(s.name)
120  , validFor(s.validFor)
121  {
122  }
123 
125  {
126  setting = s.setting;
127  name = s.name;
128  validFor = s.validFor;
129 
130  return *this;
131  }
132 
135  std::set<makVrv::DtElementEntry::ElementType> validFor;
136  };
137 
138  typedef std::vector<ObjectSettingStruct> ObjectSettings;
139 
140  public:
142  virtual ~DtObjectSettingsManager();
143 
145  static DtObjectSettingsManager& instance(makVrv::DtDe& de);
146  static void registerInstance(makVrv::DtDe&, DtObjectSettingsManager*);
147 
149  virtual void removeSettings(const DtUUID&);
150 
152  virtual void removeAll();
153 
154  virtual void setSettings(const DtUUID&, ObjectSetting);
155  ObjectSetting settingsFor(const DtUUID&) const;
156 
158  ObjectSetting, std::set<makVrv::DtElementEntry::ElementType> validFor);
159  virtual void removeSetting(ObjectSetting);
160  ObjectSetting settingFor(const makVrv::DtUnicode&);
161  makVrv::DtUnicode settingNameFor(ObjectSetting);
162 
164  bool flagState(const DtUUID&, ObjectSetting) const;
165  virtual void setFlagState(const DtUUID&, ObjectSetting, bool onOff);
166  const ObjectSettings& objectSettings() const;
167 
168  virtual bool hasSetting(const DtUUID&) const;
169 
171  virtual void protect();
172 
173  protected:
174  virtual void init();
175 
176  virtual void write(boost::archive::xml_oarchive& ar, int version) const;
177  virtual void read(boost::archive::xml_iarchive& ar, int version);
178 
180  virtual void slot_onObjectAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
181 
183  virtual void slot_onObjectAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* p);
184 
185  protected:
189 
190  typedef std::map<DtUUID, bool> ProtectedFromRemoval;
192  };
193 
197  {
198  public:
199 
204 
208 
212  static DtSharedObjectSettingsSignaler* findInstance(
214 
217 
222 
223  protected:
225 
226  private:
229  };
230 }

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)