VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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)> 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 
113  virtual bool settingInUse(const std::string& setting, DtSettingsChangeObject::UseType) const;
114 
115  protected:
117  virtual void settingsObjectInvoked(DtSettingsChangeObject*);
118 
121 
122  protected:
123  typedef std::map<DtSettingsChangeObject::SettingsChangeType, DtSettingsChangedList> DtSettingsChangedMap;
124 
128  mutable boost::mutex myMonitor;
129  };
130 
135  public DtVirtualBaseClass
136  {
137  public:
138 
143 
147 
151  static DtSharedSettingsChangeManagerSignaler* findInstance(
153 
156 
158 
159  protected:
161 
162  private:
165  };
166 }

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)