VR-Forces Developer's Guide
 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) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include <vrvCore/vrvCore.h>
12 #include <vrvCore/DtSettings.h>
14 #include <vrvUtil/event_signal.h>
16 
17 #include <boost/thread/mutex.hpp>
18 #include <vrvUtil/signalslib.h>
19 
20 #include <vrvUtil/signalslib.h>
21 #include <boost/function.hpp>
22 
23 namespace makVrv
24 {
25  class DtDe;
26  class DtSharedSettingsManager;
27 
32  {
33  public:
35  {
36  SchemaRenamed = 1,
40  SettingsChangedUserDefinedStart = 100000
41  };
42 
43  enum UseType
44  {
45  ElementDefinition = 0,
48  UserDefined = 100000
49  };
50 
51  public:
52  DtSettingsChangeObject(SettingsChangeType type);
53 
54  virtual ~DtSettingsChangeObject();
55 
57  {
58  return myType;
59  }
60 
63  boost::signalslib::signal<void (DtSettingsChangeObject*)> signal_changeInvoked;
64 
65  protected:
67  };
68 
81  {
82  public:
83  typedef boost::function<bool (const std::string&, DtSettingsChangeObject::UseType, std::string&)> DtSettingInUseFunction;
84  typedef std::vector<DtSettingInUseFunction> DtSettingsInUse;
85  typedef std::vector<DtSettingsChangeObject*> DtSettingsChangedList;
86 
87  public:
89  static DtSettingsChangeManager& instance(DtDe& de);
90 
91  virtual ~DtSettingsChangeManager();
92 
95  virtual void addSettingsChangeObject(DtSettingsChangeObject*);
96 
98  virtual void removeSettingsChangeObject(DtSettingsChangeObject*);
99 
102 
103  static const std::string& className();
104 
105  public:
107  virtual void addSettingInUseCheck(const DtSettingInUseFunction& f);
108 
111  virtual bool settingInUse(const std::string& setting, DtSettingsChangeObject::UseType, std::string& inUse) const;
112 
113  protected:
115  virtual void settingsObjectInvoked(DtSettingsChangeObject*);
116 
119 
120  protected:
121  typedef std::map<DtSettingsChangeObject::SettingsChangeType, DtSettingsChangedList> DtSettingsChangedMap;
122 
126  mutable boost::mutex myMonitor;
127  };
128 
133  public DtVirtualBaseClass
134  {
135  public:
136 
141 
145 
149  static DtSharedSettingsChangeManagerSignaler* findInstance(
151 
154 
156 
157  protected:
159 
160  private:
163  };
164 }
DtSettingsInUse mySettingsInUseChecks
Definition: DtSettingsChangeManager.h:124
std::vector< DtSettingInUseFunction > DtSettingsInUse
Definition: DtSettingsChangeManager.h:84
Contains makVrv:DtSettings class.
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
boost::function< bool(const std::string &, DtSettingsChangeObject::UseType, std::string &)> DtSettingInUseFunction
Definition: DtSettingsChangeManager.h:83
UseType
Definition: DtSettingsChangeManager.h:43
SettingsChangeType
Definition: DtSettingsChangeManager.h:34
Definition: DtSettingsChangeManager.h:47
event_signal< void(DtSettingsChangeObject *) > signal_changeInvoked
Definition: DtSettingsChangeManager.h:155
std::map< DtSettingsChangeObject::SettingsChangeType, DtSettingsChangedList > DtSettingsChangedMap
Definition: DtSettingsChangeManager.h:121
Definition: DtSettingsChangeManager.h:39
DtDe & myDe
Definition: DtSettingsChangeManager.h:125
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:42
Singleton object for sending and receiving settings change signals.
Definition: DtSettingsChangeManager.h:132
std::vector< DtSettingsChangeObject * > DtSettingsChangedList
Definition: DtSettingsChangeManager.h:85
SettingsChangeType type() const
Definition: DtSettingsChangeManager.h:56
Contains makVrv::DtLockedBufferedQueue class.
Contains makVrv::event_signal class.
a event_signal, the signal queues events into an event queue
Definition: event_signal.h:46
Definition: DtSettingsChangeManager.h:46
The event queue interface is a cross thread event queue used to emit event_signal across thread bound...
Definition: DtEventQueueInterface.h:27
Definition: DtSettingsChangeManager.h:38
makVrv::DtSettingsChangeManager class will manage change objects that listen to various system signal...
Definition: DtSettingsChangeManager.h:80
Contains makVrv::DtVirtualBaseClass class.
Definition: DtSettingsChangeManager.h:37
boost::signalslib::signal< void(DtSettingsChangeObject *)> signal_changeInvoked
Emit this signal when the setting change object has been invoked. The change manager will then re-emi...
Definition: DtSettingsChangeManager.h:63
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
DtSettingsChangedMap mySettings
Definition: DtSettingsChangeManager.h:123
makVrv::DtSettingsChangeObject is a base class for all settings change objects
Definition: DtSettingsChangeManager.h:31
SettingsChangeType myType
Definition: DtSettingsChangeManager.h:66
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
boost::mutex myMonitor
Definition: DtSettingsChangeManager.h:126
Contains DLL export macros.

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)