VR-Forces 4.1.1 Class Documentation
tmPluginManager.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2006 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: tmPluginManager.h,v $ $Revision: 1.17 $ $State: Exp $
7 *********************************************************************/
8 
11 
12 #ifndef DTTMPLUGINMANAGER_H_
13 #define DTTMPLUGINMANAGER_H_
14 
15 #include <QtCore/QObject>
16 #include <QtCore/QStringList>
17 
18 #include <vector>
19 #include <mtl/lispEnv.h>
20 
21 #include "tmqt/pluginExtension.h"
22 
23 class DtTMApplication;
24 class DtFilename;
25 class DtMtlEnvironment;
26 class DtDynamicLibrary;
27 
42 #include "tmqt/tmqtDefines.h"
43 
45 {
46 public:
47  DtTMPlugin(const DtString &libName,
48  bool addPlatExt = true,
49  bool useLazyEval = true);
50 
51  virtual ~DtTMPlugin();
52 
53  virtual bool init();
54  virtual bool init(DtTMApplication*);
55  virtual bool postAppInitialize(DtTMApplication*);
56  virtual void unloadPlugin();
57 
58  DtTMApplication* createApplication(int argc, char** argv);
59 
60  const DtPluginInformation& pluginInformation() const;
61  virtual void pluginInformation(std::string& str) const;
62 
64  virtual bool checkVersion(const QString& curVersion);
65 
66 public:
67  virtual bool isValid() const;
68  virtual DtString libraryName() const;
69  virtual const char *error() const;
70 
71 protected:
76  DtDynamicLibrary* myDynamicLibrary;
77 };
78 
80 {
81  Q_OBJECT
82 
83 public:
84 
86 
88  virtual ~DtTMPluginManager();
89 
90  const QList<DtTMPlugin*>& plugins() const;
91 
93  virtual DtTMPlugin* loadPlugin(const QString&, DtTMApplication* app);
94 
95  virtual void postAppInitialize(DtTMApplication*);
96 
100  void setLoadIfVersionMismatch(bool);
101  bool loadIfVersionMismatch() const;
102 
103 public:
104  virtual bool init(const DtFilename& pluginFile, DtTMApplication* app, int argc, char** argv);
105 
106  static DtlObjPtr addMtlPlugin(const DtlObjPtr& args, const DtlObjPtr&);
107  static DtTMPluginManager* create();
108 
109 protected:
111  virtual void readPluginsFromPluginFile(const DtString&);
112 
115  virtual void readPluginsFromCommandLine(DtTMApplication* app, int argc, char** argv);
116 
120  virtual void loadAllPlugins(DtTMApplication* app);
121 
125  virtual void initPluginVariables(DtTMApplication* app);
126 
127  virtual void unloadPlugins();
128 
130  virtual void processPluginsDirectory(const DtFilename&);
131 
132 signals:
134  void pluginLoaded(const DtTMPlugin*);
135 
136 protected:
137  QString myPluginFile;
139  DtMtlEnvironment* myMtlEnv;
140  static std::vector<DtString> thePluginsFromPluginFile;
142 };
143 
145 {
146  return myPlugins;
147 }
148 
150 {
151  return myPluginInformation;
152 }
153 
155 {
157 }
158 
160 {
162 }
163 
164 #endif

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)