VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtSettingsChangeManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2009 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 /******************************************************************************
6 ** $RCSfile: DtSettingsChangeManager.h,v $ $Revision: 1.16 $ $State: Exp $
7 ******************************************************************************/
8 
11 
12 #pragma once
13 
14 #include <vrvCore/vrvCore.h>
15 #include <vrvCore/DtSettings.h>
17 #include <vrvUtil/event_signal.h>
19 
20 #include <boost/thread/mutex.hpp>
21 #include <boost/signals.hpp>
22 
23 #include <boost/signal.hpp>
24 #include <boost/function.hpp>
25 
26 namespace makVrv
27 {
28  class DtDe;
29  class DtSharedSettingsManager;
30 
35  {
36  public:
38  {
39  SchemaRenamed = 1,
43  SettingsChangedUserDefinedStart = 100000
44  };
45 
46  enum UseType
47  {
48  ElementDefinition = 0,
51  UserDefined = 100000
52  };
53 
54  public:
55  DtSettingsChangeObject(SettingsChangeType type);
56 
57  virtual ~DtSettingsChangeObject();
58 
59  SettingsChangeType type() const
60  {
61  return myType;
62  }
63 
66  boost::signal<void (DtSettingsChangeObject*)> signal_changeInvoked;
67 
68  protected:
70  };
71 
84  {
85  public:
86  typedef boost::function<bool (const std::string&, DtSettingsChangeObject::UseType, std::string&)> DtSettingInUseFunction;
87  typedef std::vector<DtSettingInUseFunction> DtSettingsInUse;
88  typedef std::vector<DtSettingsChangeObject*> DtSettingsChangedList;
89 
90  public:
92  static DtSettingsChangeManager& instance(DtDe& de);
93 
94  virtual ~DtSettingsChangeManager();
95 
98  virtual void addSettingsChangeObject(DtSettingsChangeObject*);
99 
101  virtual void removeSettingsChangeObject(DtSettingsChangeObject*);
102 
105 
106  static std::string className();
107 
108  public:
110  virtual void addSettingInUseCheck(const DtSettingInUseFunction& f);
111 
114  virtual bool settingInUse(const std::string& setting, DtSettingsChangeObject::UseType, std::string& inUse) const;
115 
116  protected:
118  virtual void settingsObjectInvoked(DtSettingsChangeObject*);
119 
122 
123  protected:
124  typedef std::map<DtSettingsChangeObject::SettingsChangeType, DtSettingsChangedList> DtSettingsChangedMap;
125 
129  mutable boost::mutex myMonitor;
130  };
131 
136  public DtVirtualBaseClass
137  {
138  public:
139 
144 
148 
152  static DtSharedSettingsChangeManagerSignaler* findInstance(
154 
157 
159 
160  protected:
162 
163  private:
166  };
167 }

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)