VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfGuiPluginManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
11 
12 #pragma once
13 
14 #include <vrfGuiCore/vrfGuiCore.h>
15 
19 
20 #include <vrfmsgs/ifPluginData.h>
21 #include <boost/signals2.hpp>
22 #include <boost/function.hpp>
23 
24 namespace makVrv
25 {
26  class DtDe;
27  class DtVrvApplicationConfiguration;
28 }
29 
30 class DtSimMessage;
31 class DtSimulationAddress;
32 class DtIfPluginData;
33 class DtDynamicLibrary;
34 
35 namespace makVrf
36 {
37  class DtVrfBackendState;
38  class DtVrfGuiCommandLineParser;
39 
42 
44  {
45  public:
47 
48  virtual ~DtVrfGuiPluginManagerExt();
49 
52  virtual void initializePluginsInOrder(bool loadDefaultPlugins = true);
53 
55  {
56  return myLibraryLoader;
57  }
58 
60  virtual void initializeCommandLineArguments(bool loadDefaultPlugins, DtVrfGuiCommandLineParser*);
61 
63  virtual void initializePluginsToLoad(bool loadDefaultPlugins);
64 
67  typedef boost::function<bool (void)> VerifierFunction;
68  virtual void addLoadVerifierFunction(const DtString&, VerifierFunction f);
69 
70  protected:
71  virtual bool shouldLoadPlugin(const std::string& plugin) const;
72 
73  protected:
75  std::list<std::string> myPlugins;
76  typedef std::map<DtString, VerifierFunction> VerifierFunctions;
78  };
79 
82  {
83  public:
84  typedef std::vector<DtVrfMessagePluginInformation> PluginInformationList;
85  typedef std::map<std::string, PluginInformationList> PluginInformationMap;
86 
87  public:
89  virtual ~DtVrfGuiPluginManager();
90 
92  static DtVrfGuiPluginManager& instance(makVrv::DtDe& de);
93 
95  virtual void readPluginsFrom(makVrv::DtVrvApplicationConfiguration& config);
96 
97  virtual const std::vector<std::string>& additionalPluginsToLoad();
98  virtual void setAdditionalPluginsToLoad(const std::vector<std::string>&);
99 
100  virtual bool loadDefaultPlugins();
101  virtual void setLoadDefaultPlugins(bool);
102 
103  virtual void setPluginsDirectory(const std::string&);
104  virtual const std::string& pluginsDirectory() const;
105 
106  virtual void addPluginRecord(const DtVrfPluginRecord&);
107 
109  virtual bool removePluginRecord(const std::string&);
110 
113  virtual bool renamePluginRecord(const std::string& curFileName, const std::string& newName);
114 
117 
120  virtual bool removePlugin(const std::string& fileName, const std::string& application,
121  const std::string& platform, const std::string& configuration, const std::string& transport);
122 
124  virtual bool addPlugin(const std::string& fileName, const std::string& application,
125  const std::string& platform, const std::string& configuration, const std::string& transport);
126 
128  virtual void setLoadPlugin(const std::string& fileName, bool b);
129 
131  const PluginInformationMap& loadedPlugins() const;
132 
134  {
135  myVrvPluginManager = m;
136  }
137 
139  void setCheckPluginVersions(bool);
140  bool checkPluginVersions() const;
141 
142  public:
143  boost::signals2::signal<void (const DtVrfPluginRecord&)> signal_pluginRecordAdded;
144  boost::signals2::signal<void (const DtVrfPluginRecord&)> signal_pluginRecordRemoved;
145  boost::signals2::signal<void (const std::string&, const std::string&)> signal_pluginRecordRenamed;
146  boost::signals2::signal<void (const std::string&, const std::string&,
147  const std::string&, const std::string&, const std::string&)> signal_pluginRemoved;
148  boost::signals2::signal<void (const std::string&, const std::string&,
149  const std::string&, const std::string&, const std::string&)> signal_pluginAdded;
150  boost::signals2::signal<void (const std::string&, bool)> signal_pluginLoadStateChanged;
151 
152  boost::signals2::signal<void (const std::string&, const PluginInformationList&)> signal_pluginsAdded;
153  boost::signals2::signal<void (const std::string&, const PluginInformationList&)> signal_pluginsRemoved;
154 
155  protected:
157  virtual void initializePlugins();
158 
159  virtual void initializeFrontEndPlugins();
160  virtual void initializeBackEndPlugins();
161 
162  virtual void slot_backendDiscovered(const DtVrfBackendState&);
163  virtual void slot_backendRemoved(const DtVrfBackendState&);
164  virtual void slot_allBackendsAboutToBeRemoved();
165 
166  virtual void processPluginData(DtSimMessage*);
167  virtual void removePendingRequest(const DtVrfBackendState&);
168 
169  virtual bool checkVersion(DtDynamicLibrary* lib, const std::string& appVer) const;
170 
172  virtual std::string pluginVersion() const;
173 
174  protected:
175  std::vector<std::string> myAdditionalPluginsToLoad;
176 
179  std::string myPluginsDirectory;
181 
182  std::vector<std::string> myPendingPluginRequests;
183 
185 
187  };
188 }
Definition: vrfBackendState.h:69
makVrv::DtPluginManager * myVrvPluginManager
Definition: vrfGuiPluginManager.h:186
PluginInformationMap myPlugins
Definition: vrfGuiPluginManager.h:184
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
Extend the base level Vantage plugin manager class to allow for additional plugins to be loaded after...
Definition: vrfGuiPluginManager.h:43
Loads plugins.
Definition: DtPluginManager.h:26
std::vector< std::string > myAdditionalPluginsToLoad
Definition: vrfGuiPluginManager.h:175
boost::signals2::signal< void(const std::string &, const PluginInformationList &)> signal_pluginsAdded
Definition: vrfGuiPluginManager.h:152
boost::signals2::signal< void(const std::string &, const std::string &)> signal_pluginRecordRenamed
Definition: vrfGuiPluginManager.h:145
std::map< std::string, PluginInformationList > PluginInformationMap
Definition: vrfGuiPluginManager.h:85
bool myLoadDefaultPlugins
Definition: vrfGuiPluginManager.h:177
class DtVrfPluginRecordManager:
Definition: vrfPluginRecordManager.h:24
makVrv::DtLibraryLoader * libraryLoader()
Definition: vrfGuiPluginManager.h:54
DT_VRF_DLL_PLUGIN void initializeCommandLineArguments(makVrf::DtVrfGuiCommandLineParser *)
This method is called when trying to add additional command line arguments to the command line proces...
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
void setVrvPluginManager(makVrv::DtPluginManager *m)
Definition: vrfGuiPluginManager.h:133
bool myCheckPluginVersions
Definition: vrfGuiPluginManager.h:178
Contains makVrv::DtVirtualBaseClass class.
std::vector< std::string > myPendingPluginRequests
Definition: vrfGuiPluginManager.h:182
DtLibraryLoader is used to load VR-Vantage plugins.
Definition: DtLibraryLoader.h:27
File: simMsg.h.
Definition: simMessage.h:35
boost::signals2::signal< void(const DtVrfPluginRecord &)> signal_pluginRecordAdded
Definition: vrfGuiPluginManager.h:143
std::list< std::string > myPlugins
Definition: vrfGuiPluginManager.h:75
This owns a list of display engine configurations.
Definition: DtVrvApplicationConfiguration.h:32
boost::signals2::signal< void(const std::string &, const std::string &, const std::string &, const std::string &, const std::string &)> signal_pluginRemoved
Definition: vrfGuiPluginManager.h:147
std::vector< DtVrfMessagePluginInformation > PluginInformationList
Definition: vrfGuiPluginManager.h:84
boost::function< bool(void)> VerifierFunction
Before loading a plugin in the library, make this callback (by lowercase library name without the ext...
Definition: vrfGuiPluginManager.h:67
class DtVrfPluginRecord:
Definition: vrfPluginRecord.h:28
boost::signals2::signal< void(const std::string &, bool)> signal_pluginLoadStateChanged
Definition: vrfGuiPluginManager.h:150
Contains DtPluginManager class.
boost::signals2::signal< void(const std::string &, const std::string &, const std::string &, const std::string &, const std::string &)> signal_pluginAdded
Definition: vrfGuiPluginManager.h:149
The MAK Stealth Application&#39;s command line processor.
Definition: vrfGuiCommandLineParser.h:31
std::map< DtString, VerifierFunction > VerifierFunctions
Definition: vrfGuiPluginManager.h:76
bool myPluginsLoaded
Definition: vrfGuiPluginManager.h:74
Definition: vrfGuiPluginManager.h:80
VerifierFunctions myVerifierFunctions
Definition: vrfGuiPluginManager.h:77
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:72
Definition: ifPluginData.h:54
boost::signals2::signal< void(const std::string &, const PluginInformationList &)> signal_pluginsRemoved
Definition: vrfGuiPluginManager.h:153
std::string myPluginsDirectory
Definition: vrfGuiPluginManager.h:179
boost::signals2::signal< void(const DtVrfPluginRecord &)> signal_pluginRecordRemoved
Definition: vrfGuiPluginManager.h:144
makVrv::DtDe & myDe
Definition: vrfGuiPluginManager.h:180

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)