OpendTect  6.6
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  RCS: $Id$
11 
12  For making your own plugins, no need to include this file. Use odplugin.h.
13 ________________________________________________________________________
14 
15 -*/
16 
17 #include "basicmod.h"
18 #include "sharedlibs.h"
19 #include "bufstringset.h"
20 
21 
22 extern "C" {
23 
24 #include "pluginbase.h"
25 
26 /* C Access. C++ should use PluginManager! */
27 
29 void LoadAutoPlugins(int inittype);
31 int LoadPlugin(const char* libnm);
32 
33 mGlobal(Basic) int doLoadPlugin(const char* libnm);
34 
35 }
36 
87 {
88 public:
89 
90  mGlobal(Basic) friend PluginManager& PIM();
91 
93 
94  void loadAuto(bool late);
96  bool load(const char* libnm);
98  void unLoadAll();
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"; }
142 
143 private:
144 
146 
148 
153 
154  Data* fndData(const char*) const;
155  void getDefDirs();
156  void getALOEntries(const char*,bool);
158  void mkALOList();
159 };
160 
162 
163 
PluginManager::getNotLoadedByUser
void getNotLoadedByUser(BufferStringSet &) const
PluginManager::Data::~Data
~Data()
Definition: plugins.h:113
PluginManager::fndData
Data * fndData(const char *) const
PluginManager::Data::isUserDir
static bool isUserDir(AutoSource src)
Definition: plugins.h:103
PluginManager::findData
const Data * findData(const char *nm) const
Definition: plugins.h:125
PluginManager::Data::Data
Data(const char *nm)
Definition: plugins.h:106
mGlobal
#define mGlobal(module)
Definition: commondefs.h:180
PluginManager::PluginManager
PluginManager()
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
PIM
PluginManager & PIM()
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
PluginManager::getFileName
const char * getFileName(const Data &) const
PluginManager::data_
ObjectSet< Data > data_
Definition: plugins.h:147
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
PluginManager::appdir_
BufferString appdir_
Definition: plugins.h:150
PluginManager::findDataWithDispName
const Data * findDataWithDispName(const char *) const
PluginManager::getALOEntries
void getALOEntries(const char *, bool)
PluginManager::mkALOList
void mkALOList()
PluginInfo
Information about plugin for outside world.
Definition: pluginbase.h:52
PluginManager::Data::UserDir
@ UserDir
Definition: plugins.h:102
PluginManager::openALOEntries
void openALOEntries()
PluginManager::Data::name_
BufferString name_
Definition: plugins.h:115
PluginManager::Data
Definition: plugins.h:101
LoadPlugin
int LoadPlugin(const char *libnm)
PluginManager::userlibdir_
BufferString userlibdir_
Definition: plugins.h:151
PluginManager::isPresent
bool isPresent(const char *) const
PluginManager::PIM
friend PluginManager & PIM()
PluginManager::moduleName
static const char * moduleName(const char *)
returns without path, 'lib' and extension
pluginbase.h
PluginManager::unLoadAll
void unLoadAll()
SharedLibAccess
Gives access to shared libs on runtime. Plugins should be loaded via the Plugin Manager (see plugins....
Definition: sharedlibs.h:31
PI_AUTO_INIT_NONE
#define PI_AUTO_INIT_NONE
Definition: pluginbase.h:29
PluginManager::Data::sla_
SharedLibAccess * sla_
Definition: plugins.h:119
PluginManager
Plugin manager - loads plugins: shared libs or DLLs.
Definition: plugins.h:87
PluginManager::Data::autotype_
int autotype_
Definition: plugins.h:118
PluginManager::Data::AutoSource
AutoSource
Definition: plugins.h:102
PluginManager::getData
ObjectSet< Data > & getData()
Definition: plugins.h:123
PluginManager::getInstance
static PluginManager & getInstance()
PluginManager::applibdir_
BufferString applibdir_
Definition: plugins.h:152
PluginManager::loadAuto
void loadAuto(bool late)
see class comments
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
Network::None
@ None
Definition: networkcommon.h:33
PluginManager::Data::autosource_
AutoSource autosource_
Definition: plugins.h:117
bufstringset.h
PluginManager::findData
Data * findData(const char *nm)
Definition: plugins.h:124
PluginManager::Data::info_
const PluginInfo * info_
Definition: plugins.h:116
PluginManager::load
bool load(const char *libnm)
Explicit load of a plugin.
PluginManager::sKeyDontLoad
static const char * sKeyDontLoad()
Definition: plugins.h:140
PluginManager::getAutoDir
const char * getAutoDir(bool usr) const
Definition: plugins.h:137
PluginManager::userName
const char * userName(const char *) const
sharedlibs.h
PluginManager::Data::isloaded_
bool isloaded_
Definition: plugins.h:120
PluginManager::getDefDirs
void getDefDirs()
LoadAutoPlugins
void LoadAutoPlugins(int inittype)
PluginManager::userdir_
BufferString userdir_
Definition: plugins.h:149
doLoadPlugin
int doLoadPlugin(const char *libnm)

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