VR-Forces 4.3.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vrfPluginManager.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2006 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: vrfPluginManager.h,v $ $Revision: 1.10 $ $State: Exp $
7 *********************************************************************/
8 
11 
12 #ifndef DTVRFPLUGINMANAGER_H_
13 #define DTVRFPLUGINMANAGER_H_
14 
15 #include <mtl/mtlEnvironment.h>
16 #include <vector>
17 
19 
20 class DtDynamicLibrary;
23 class DtSimMessage;
24 
34 
35 #include "vrfcgf/vrfcgfDefines.h"
36 
38 {
39 public:
40  DtVrfPlugin(const DtString &libName,
41  bool addPlatExt = true,
42  bool useLazyEval = true);
43 
44  virtual ~DtVrfPlugin();
45 
47  virtual bool init();
48 
50  virtual bool checkVersion(const DtString& curVersion);
51 
52  virtual bool initializePlugin(DtCgf*);
53  virtual bool postInitializePlugin(DtCgf*);
54  virtual void unloadPlugin();
55 
56  const DtVrfPluginInformation& pluginInformation() const;
57 
59  virtual void pluginInformation(std::string&) const;
60 
61 public:
62  virtual bool isValid() const;
63  virtual DtString libraryName() const;
64  virtual const char *error() const;
65 
66 protected:
72  DtDynamicLibrary* myDynamicLibrary;
73 };
74 
76 {
77 public:
78 
80 
82  virtual ~DtVrfPluginManager();
83 
84  const std::vector<DtVrfPlugin*>& plugins() const;
85 
86 public:
88  virtual bool init();
89 
91  virtual DtVrfPlugin* loadPlugin(const DtString&, DtCgf*);
92 
94  virtual void postInitializePlugins(DtCgf*);
95 
99  void setLoadIfVersionMismatch(bool);
100  bool loadIfVersionMismatch() const;
101 
103  virtual void setVrfMessageInterface(DtVrfMessageInterface*);
104 
105 protected:
106 
108  static void pluginInformationRequestCallback(DtSimMessage* msg, void* usr);
109  virtual void processPluginInformationRequest(const DtIfPluginDataRequest& rsp);
110 
111 protected:
113  virtual DtVrfPlugin* loadPlugin(const DtString&);
114  virtual void initializePlugin(DtVrfPlugin*, DtCgf*);
115 
116  virtual void unloadPlugins();
117 
118 protected:
119  std::vector<DtVrfPlugin*> myPlugins;
122 };
123 
124 inline const std::vector<DtVrfPlugin*>& DtVrfPluginManager::plugins() const
125 {
126  return myPlugins;
127 }
128 
130 {
131  return myPluginInformation;
132 }
133 
135 {
137 }
138 
140 {
142 }
143 
144 #endif

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)