VR-Forces 4.8 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 
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 const 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 }
boost::signal< void(DtSettingsChangeObject *)> signal_changeInvoked
Emit this signal when the setting change object has been invoked.
Definition: DtSettingsChangeManager.h:66
DtSettingsInUse mySettingsInUseChecks
Definition: DtSettingsChangeManager.h:127
std::vector< DtSettingInUseFunction > DtSettingsInUse
Definition: DtSettingsChangeManager.h:87
Contains makVrv:DtSettings class.
Virtual base class.
Definition: DtVirtualBaseClass.h:22
boost::function< bool(const std::string &, DtSettingsChangeObject::UseType, std::string &)> DtSettingInUseFunction
Definition: DtSettingsChangeManager.h:86
UseType
Definition: DtSettingsChangeManager.h:46
SettingsChangeType
Definition: DtSettingsChangeManager.h:37
Definition: DtSettingsChangeManager.h:50
event_signal< void(DtSettingsChangeObject *) > signal_changeInvoked
Definition: DtSettingsChangeManager.h:158
std::map< DtSettingsChangeObject::SettingsChangeType, DtSettingsChangedList > DtSettingsChangedMap
Definition: DtSettingsChangeManager.h:124
Definition: DtSettingsChangeManager.h:42
DtDe & myDe
Definition: DtSettingsChangeManager.h:128
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:45
Singleton object for sending and receiving settings change signals.
Definition: DtSettingsChangeManager.h:135
std::vector< DtSettingsChangeObject * > DtSettingsChangedList
Definition: DtSettingsChangeManager.h:88
SettingsChangeType type() const
Definition: DtSettingsChangeManager.h:59
Contains makVrv::DtLockedBufferedQueue class.
Contains makVrv::event_signal class.
a event_signal, the signal queues events into an event queue
Definition: event_signal.h:47
Definition: DtSettingsChangeManager.h:49
The event queue interface is a cross thread event queue used to emit event_signal across thread bound...
Definition: DtEventQueueInterface.h:29
Definition: DtSettingsChangeManager.h:41
makVrv::DtSettingsChangeManager class will manage change objects that listen to various system signal...
Definition: DtSettingsChangeManager.h:83
Contains makVrv::DtVirtualBaseClass class.
Definition: DtSettingsChangeManager.h:40
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
DtSettingsChangedMap mySettings
Definition: DtSettingsChangeManager.h:126
makVrv::DtSettingsChangeObject is a base class for all settings change objects
Definition: DtSettingsChangeManager.h:34
SettingsChangeType myType
Definition: DtSettingsChangeManager.h:69
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
boost::mutex myMonitor
Definition: DtSettingsChangeManager.h:129
Contains DLL export macros.

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)