OpendTect  6.3
plugins.h
Go to the documentation of this file.
1 #pragma once
2 /*+
3 ________________________________________________________________________
4 
5  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
6  Author: A.H.Bril
7  Date: Aug 2003
8  Contents: Plugins
9 
10 
11  For making your own plugins, no need to include this file. Use odplugin.h.
12 ________________________________________________________________________
13 
14 -*/
15 
16 #include "basicmod.h"
17 #include "sharedlibs.h"
18 #include "bufstringset.h"
19 
20 
21 extern "C" {
22 
23 #include "pluginbase.h"
24 
25 /* C Access. C++ should use PluginManager! */
26 
28 void LoadAutoPlugins(int inittype);
30 int LoadPlugin(const char* libnm);
31 
32 }
33 
88 {
89 public:
90 
91  mGlobal(Basic) friend PluginManager& PIM();
92 
93  static PluginManager& getInstance();
94 
95  void loadAuto(bool late);
97  bool load(const char* libnm);
99 
100  struct Data
101  {
102  enum AutoSource { None, UserDir, AppDir, Both };
103  static bool isUserDir( AutoSource src )
104  { return src != AppDir && src != None; }
105 
106  Data( const char* nm )
107  : name_(nm)
108  , info_(0)
109  , autosource_(None)
110  , autotype_(PI_AUTO_INIT_NONE)
111  , isloaded_( false )
112  , sla_(0) {}
113  ~Data() { delete sla_; }
114 
120  bool isloaded_;
121  };
122 
123  ObjectSet<Data>& getData() { return data_; }
124  Data* findData( const char* nm ) { return fndData( nm ); }
125  const Data* findData( const char* nm ) const {return fndData( nm );}
126  const Data* findDataWithDispName(const char*) const;
127 
128  bool isPresent(const char*) const;
129  const char* userName(const char*) const;
133  static const char* moduleName(const char*);
135  const char* getFileName(const Data&) const;
136 
137  const char* getAutoDir( bool usr ) const
138  { return usr ? userlibdir_ : applibdir_; }
139 
140  static const char* sKeyDontLoad() { return "dTect.Dont load plugins"; }
141  void getNotLoadedByUser(BufferStringSet&) const;
142 
143  void loadSurveyRelatedTools();
145 
146 private:
147 
148  PluginManager();
149 
151 
156 
157  Data* fndData(const char*) const;
158  void getDefDirs();
159  void getALOEntries(const char*,bool);
160  void openALOEntries();
161  void mkALOList();
162 };
163 
164 mGlobal(Basic) PluginManager& PIM();
#define mExpClass(module)
Definition: commondefs.h:157
~Data()
Definition: plugins.h:113
const char * getAutoDir(bool usr) const
Definition: plugins.h:137
Plugin manager - loads plugins: shared libs or DLLs.
Definition: plugins.h:87
#define mGlobal(module)
Definition: commondefs.h:160
static const char * sKeyDontLoad()
Definition: plugins.h:140
Data(const char *nm)
Definition: plugins.h:106
BufferString userlibdir_
Definition: plugins.h:154
Data * findData(const char *nm)
Definition: plugins.h:124
Definition: plugins.h:102
Set of BufferString objects.
Definition: bufstringset.h:25
BufferString appdir_
Definition: plugins.h:153
ObjectSet< Data > & getData()
Definition: plugins.h:123
FixedString None()
Definition: keystrs.h:90
int LoadPlugin(const char *libnm)
BufferString applibdir_
Definition: plugins.h:155
Set of pointers to objects.
Definition: commontypes.h:28
Definition: plugins.h:100
BufferString userdir_
Definition: plugins.h:152
const Data * findData(const char *nm) const
Definition: plugins.h:125
#define PI_AUTO_INIT_NONE
Definition: pluginbase.h:28
ObjectSet< Data > data_
Definition: plugins.h:150
Gives access to shared libs on runtime. Plugins should be loaded via the Plugin Manager (see plugins...
Definition: sharedlibs.h:30
SharedLibAccess * sla_
Definition: plugins.h:119
BufferString name_
Definition: plugins.h:115
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
void LoadAutoPlugins(int inittype)
Information about plugin for outside world.
Definition: pluginbase.h:50
int autotype_
Definition: plugins.h:118
AutoSource
Definition: plugins.h:102
static bool isUserDir(AutoSource src)
Definition: plugins.h:103
PluginManager & PIM()
const PluginInfo * info_
Definition: plugins.h:116
bool isloaded_
Definition: plugins.h:120
AutoSource autosource_
Definition: plugins.h:117

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B. V. 2017