[root] / trunk / core / base / src / TPluginManager.cxx Repository:
ViewVC logotype

Log of /trunk/core/base/src/TPluginManager.cxx

Parent Directory Parent Directory


Links to HEAD: (view) (download) (as text) (annotate)
Sticky Revision:

Revision 47991 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 12 18:40:25 2012 UTC (2 years, 1 month ago) by rdm
File length: 29173 byte(s)
Diff to previous 41671
Rename TCINTMutex to TClingMutex.

Revision 41671 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 1 14:50:23 2011 UTC (3 years, 2 months ago) by rdm
File length: 29172 byte(s)
Diff to previous 39764
coverity.

Revision 39764 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jun 16 10:46:05 2011 UTC (3 years, 7 months ago) by rdm
File length: 29059 byte(s)
Diff to previous 39654
add again support for ACliC compiled plugin macros and allow in addition
to .C also extensions like .cxx, .cpp, .cc. Fixes issue 83277.

Revision 39654 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jun 9 23:22:30 2011 UTC (3 years, 7 months ago) by rdm
File length: 28784 byte(s)
Diff to previous 38072
to make sure we have gPluginMgr availble in the plugin macros call once
gInterpreter->InitializeDictionaries().

Revision 38072 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Feb 15 11:34:17 2011 UTC (3 years, 11 months ago) by rdm
File length: 28663 byte(s)
Diff to previous 37497
require that a plugin macro ends with ".C" as specified in the specs.
Avoids an unneeded LoadMacro() call for all built-in plugin libraries
which caused a stat of a not existing file in the local file system.
Should speed up startup in a remote files system.

Revision 37497 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 10 12:22:54 2010 UTC (4 years, 1 month ago) by rdm
File length: 28640 byte(s)
Diff to previous 35725
Add new method  WritePluginRecords() which writes out the plugin information
in the TEnv format:
  Plugin.TFile:       ^rfio:   TRFIOFile    RFIO   "<constructor>"
This is needed for iOS where we cannot ship the etc/plugins directory
as part of the app bundle. A single system.plugins file will work though.

Revision 35725 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 24 20:09:54 2010 UTC (4 years, 4 months ago) by rdm
File length: 26275 byte(s)
Diff to previous 32284
fix coverity 11449.

Revision 32284 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 8 15:57:44 2010 UTC (4 years, 11 months ago) by rdm
File length: 26267 byte(s)
Diff to previous 29750
- add explanation on processing order of plugin directories.
- add TPluginHandler::Print() (code was all in TPluginManager::Print()).

Revision 29750 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Aug 11 13:57:24 2009 UTC (5 years, 5 months ago) by rdm
File length: 25756 byte(s)
Diff to previous 24170
From Axel:
Use initializer list; initialize also fMethod.

Revision 24170 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 6 16:27:51 2008 UTC (6 years, 7 months ago) by brun
File length: 25772 byte(s)
Diff to previous 23872
From Axel:
Add TCint::GetTopLevelMacroName(), TCint::GetCurrentMacroName() as pv function to TInterpreter; make nonstatic.

Revision 23872 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 16 01:00:04 2008 UTC (6 years, 8 months ago) by rdm
File length: 25758 byte(s)
Diff to previous 22961
load plugin macros in alphabetical order. The most generic plugin should
be loaded last (and should have a name like P0N0_xxxx.C, so it sorts last).

Revision 22961 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Apr 3 13:32:57 2008 UTC (6 years, 9 months ago) by rdm
File length: 25491 byte(s)
Diff to previous 20877
move the directories:
  base clib cont meta metautils newdelete pcre rint thread unix utils
  winnt zip
under the new core meta directory.

Revision 20877 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 19 11:17:07 2007 UTC (7 years, 2 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 25491 byte(s)
Diff to previous 20278
Set property svn:eol-style LF on all source and Makefiles. This should avoid
problems with Win32 line endings ending up in the repository. All MS tools
support LF eols fine.

Revision 20278 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 9 14:22:42 2007 UTC (7 years, 3 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 25491 byte(s)
Diff to previous 19826
in case the plugin base class is in a namespace, like ROOT::MyBase, the
plugins should be stored in the directory ROOT@@MyBase. The : character
is a pathname character on Windows.

Revision 19826 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:56:11 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 24948 byte(s)
Diff to previous 19825
imported svn:keywords Id property

Revision 19825 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:49:10 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 25004 byte(s)
Diff to previous 19602
remove :$ from tag line

Revision 19602 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Aug 12 16:27:46 2007 UTC (7 years, 5 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 25014 byte(s)
Diff to previous 19590
call TROOT::Macro() with updatePad=kFALSE to avoid updating of canvases
when plugin macros are executed.

Revision 19590 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Aug 10 10:49:04 2007 UTC (7 years, 5 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 25298 byte(s)
Diff to previous 19407
From Axel:
PluginManager calls gROOT->Macro() which calls gPad->Update() which
fails if the plugin mechanism was initialized while setting up e.g. a
TCanvas that gPad points to. Simply setting gPad=0 temporarily during
the plugin manager's gROOT->Macro() call fixes that.

Revision 19407 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jul 19 14:22:31 2007 UTC (7 years, 6 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 25003 byte(s)
Diff to previous 19380
explicit initialize idx to avoid compiler warning.

Revision 19380 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 17 16:34:19 2007 UTC (7 years, 6 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 24999 byte(s)
Diff to previous 19373
in Print() print the number of missing plugins.

Revision 19373 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 17 14:43:18 2007 UTC (7 years, 6 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 24913 byte(s)
Diff to previous 18515
Updated TPluginManager. Plugin handlers can now be specified wia macros
in a list of plugin directories. These new features are implemented via
two new methods described below. These changes are fully backward compatible
and plugin descriptions in rootrc files still work. However, using the new
macros we only load in program memory the handlers for the needed plugins,
instead of the almost 100 handlers of all plugins. For example after starting
root.exe, only these handlers are loaded:

root [0] gPluginMgr->Print()
=====================================================================
Base                 Regexp        Class              Plugin
=====================================================================
TSystem              ^rfio:        TRFIOSystem        RFIO
TSystem              ^castor:      TRFIOSystem        RFIO
TSystem              ^dcache:      TDCacheSystem      DCache
TSystem              ^dcap:        TDCacheSystem      DCache
TSystem              ^alien:       TAlienSystem       RAliEn
TSystem              ^root:        TXNetSystem        Netx
=====================================================================
6 plugin handlers registered
[*] plugin not available
=====================================================================

For more see below:


void TPluginManager::LoadHandlersFromPluginDirs(const char *base)

Load plugin handlers specified via macros in a list of plugin
directories. The $ROOTSYS/etc/plugins is the default top plugin directory
specified in $ROOTSYS/etc/system.rootrc. The macros must have names
like <BaseClass>/PX0_<PluginClass>.C, e.g.:
   TFile/P10_TRFIOFile.C, TSQLServer/P20_TMySQLServer.C, etc.
to allow easy sorting and grouping. Macros not beginning with 'P' and
ending with ".C" are ignored. If base is specified only plugin macros for
that base class are loaded. The macros typically should look like:

   void P10_TDCacheFile()
   {
       gPluginMgr->AddHandler("TFile", "^dcache", "TDCacheFile",
          "DCache", "TDCacheFile(const char*,Option_t*,const char*,Int_t)");
   }

In general these macros should not cause side effects, by changing global
ROOT state via, e.g. gSystem calls, etc. However, in specific cases
this might be useful, e.g. adding a library search path, adding a specific
dependency, check on some OS or ROOT capability or downloading
of the plugin.


Int_t TPluginManager::WritePluginMacros(const char *dir, const char *plugin)

Write in the specified directory the plugin macros. If plugin is specified
and if it is a base class all macros for that base will be written. If it
is a plugin class name, only that one macro will be written. If plugin
is 0 all macros are written. Returns -1 if dir does not exist, 0 otherwise.
This method allows the regeneration of the entire tree of plugin macros
in case we ever decide to change something in the macros.

Revision 18515 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Apr 18 14:29:22 2007 UTC (7 years, 9 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 16724 byte(s)
Diff to previous 18510
Print("a") now also prints the full path of the plugin library.

Revision 18510 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 17 15:48:28 2007 UTC (7 years, 9 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 16392 byte(s)
Diff to previous 17960
increase in FindHandler() the debug level in case no plugin is found to > 2.

Revision 17960 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Feb 14 18:08:37 2007 UTC (7 years, 11 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 16392 byte(s)
Diff to previous 17933
From Axel:
add protection in case plugin manager uses a plugin function from a macro.

Revision 17933 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Feb 13 14:26:58 2007 UTC (7 years, 11 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 16617 byte(s)
Diff to previous 17567
use gROOT->LoadClass(cls) to load a plugin. This call uses the rootmap
info and allows the loading of all dependent libs as specified in the
rootmap file. If this fails (when no rootmap) fallback to
gROOT->LoadClass(cls, lib) to explicitly load a plugin (but this may
fail if not all dependent libs are first loaded).

Revision 17567 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 29 15:53:35 2007 UTC (7 years, 11 months ago) by brun
Original Path: trunk/base/src/TPluginManager.cxx
File length: 16483 byte(s)
Diff to previous 17412
-Replace calls to gROOT->GetClass by TClass::GetClass
-Remove unused references to TROOT.h

Revision 17412 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jan 20 19:29:35 2007 UTC (8 years ago) by brun
Original Path: trunk/base/src/TPluginManager.cxx
File length: 16479 byte(s)
Diff to previous 17055
-Remove Varargs.h from TString.h and TObject.h and add this include
in the few files that need it.

-Move the following enums from TBuffer.h to TBufferFile.h

   enum { kMapSize = 503 };
   enum { kStreamedMemberWise = BIT(14) }; //added to version number to know if a collection has been stored member-wise
   enum { kNotDecompressed = BIT(15) };    //indicates a weird buffer, used by TBasket
   enum { kCannotHandleMemberWiseStreaming = BIT(17), //if set TClonesArray should not use memeber wise streaming
          kTextBasedStreaming = BIT(18) };            // indicates if buffer used for XML/SQL object streaming

Revision 17055 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 6 10:21:03 2006 UTC (8 years, 1 month ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 16458 byte(s)
Diff to previous 16540
don't implement copy ctor and assignment operators.

Revision 16540 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 17 12:28:38 2006 UTC (8 years, 3 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 17381 byte(s)
Diff to previous 15742
Use Printf() instead of printf(). Printf() can be easily redirected.

Revision 15742 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jul 9 05:27:55 2006 UTC (8 years, 6 months ago) by brun
Original Path: trunk/base/src/TPluginManager.cxx
File length: 17399 byte(s)
Diff to previous 15176
From Eddy:
Fix many typos in comments

Revision 15176 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 26 09:27:12 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/base/src/TPluginManager.cxx
File length: 17394 byte(s)
Diff to previous 15134
Fix coding conventions violations

Revision 15134 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue May 23 04:47:42 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/base/src/TPluginManager.cxx
File length: 17322 byte(s)
Diff to previous 13949
From Federico Carminati:

"I have implemented all copy and equal operators needed to silence all
warnings in AliRoot, as requested. I have implemented shallow copies as
would do the default operators synthetized by the compiler.
Most operators are protected. If users complain, you just have to move
them into the public area, but class derivation is of course supported.
It has been a terrible job, I have modified 278 files, but the changes
are backward compabile, and this goes a long way to permitting user to
use the effc++ flag with root headers."

Revision 13949 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 30 09:01:12 2006 UTC (8 years, 11 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 16475 byte(s)
Diff to previous 12123
TStreamerInfo was including TFile.h, TROOT.h and TClonesArray.h iso of
forward declaring them. This caused massif recompilation if e.g.
TFile.h was changed. Correct some sources that did not include
TFile.h because it was coming via TStreamerInfo.h.

Revision 12123 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 22 20:18:12 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/base/src/TPluginManager.cxx
File length: 16470 byte(s)
Diff to previous 11318
From Constantin Loizides

This patch implements:
- decentralized, automatic mutex initialization,
  see R__LOCKGUARD2 in TVirtualMutex
- PROOF parallel startup fixes
- more thread protection (in base, cont, meta, rest to be done)
- cleanups

From Eddy Offermann:
TString::Atoi and Atof are made const.

Revision 11318 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Mar 13 15:05:31 2005 UTC (9 years, 10 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 16450 byte(s)
Diff to previous 10591
add support for native long long handling. Also added new emit method:
EmitVA() which allows a variable length argument list which makes
multi argument signal and slot methods with float and double arguments
possible (was not possible in the past).

Revision 10591 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 22 23:37:26 2004 UTC (10 years, 2 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 16472 byte(s)
Diff to previous 7954
fix to take into account OS and Application prefix of TEnv Plugin resources,
now:
    Unix.*.Plugin.TXxxx:  * TUnixXxxxx   libUnixXxxx  "TUnixXxxx()"
    WinNT.*.Plugin.TXxxx: * TWin32Xxxxx  libWin32Xxxx "TWin32Xxxx()"
loads correctly libUnixXxxx on Unix/Linux and libWin32Xxxx on Win32.

Revision 7954 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jan 20 17:59:38 2004 UTC (11 years ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 16283 byte(s)
Diff to previous 7565
handle "*" as wildcard matching every uri (before it was just a placeholder
and not checked).

Revision 7565 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 10 17:56:31 2003 UTC (11 years, 2 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 16265 byte(s)
Diff to previous 6641
from Gerri:
no need anymore to keep at least two spaces between plugin name and ctor
in the rootrc file.

Revision 6641 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 16 15:00:49 2003 UTC (11 years, 8 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 16215 byte(s)
Diff to previous 6640
fix Long64_t argument handling (portability problem).

Revision 6640 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 16 13:49:34 2003 UTC (11 years, 8 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 16174 byte(s)
Diff to previous 6637
Long64_t arguments must be passed via their address in CINT's
G__CallFunc::SetArgArray().

Revision 6637 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 15 20:01:30 2003 UTC (11 years, 8 months ago) by brun
Original Path: trunk/base/src/TPluginManager.cxx
File length: 16171 byte(s)
Diff to previous 6636
Use Long64_t instead of long long for portability reasons.
On Windows Long64_t is a typedef to __int64

Revision 6636 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 15 19:41:38 2003 UTC (11 years, 8 months ago) by brun
Original Path: trunk/base/src/TPluginManager.cxx
File length: 16171 byte(s)
Diff to previous 6633
Fix a fatal compilation error in TPluginManager::ExecPlugin

Revision 6633 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 15 18:02:35 2003 UTC (11 years, 8 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 16174 byte(s)
Diff to previous 6421
handle plugin ctors with Long64_t and ULong64_t arguments.

Revision 6421 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Apr 11 11:48:11 2003 UTC (11 years, 9 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 16166 byte(s)
Diff to previous 6373
Big (unsigned) long long support patch. Following provided:
- basic typedefs in Rtypes.h: Long64_t and ULong64_t
- basic Long64 I/O support in TBuffer
- automatic Long64 I/O support in TStreamerInfo
- Long64 byteswap in Bytes.h
- Long64 type handling in classes like TDataMember, TDataType, TCint,
  TROOT, etc
- Removal of obsolete Long64_t typedefs in many PROOF classes
No changes for non-Long64 data types (no backward incompatibilies).
I/O tested for Long64 basic type, and static and dynamic arrays using
handcoded streamers, rootcint generated streamers and automatic StreamerInfo
streamers.

Revision 6373 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Apr 4 00:10:16 2003 UTC (11 years, 9 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 16046 byte(s)
Diff to previous 6368
new features in the plugin manager: constructors can now be global functions.
In the rootrc file a global function is specified by starting the ctor with
"::". Also added support for plugin macros, instead of the lib name just
use the macro name (typically myplugin.C). The macro will be searched for in
the standard macro path.

Added new default argument to TROOT::LoadMacro() to check for the macros
existence (symmetric with LoadClass()). Used by the plugin manager to check
if a macro exists.

Revision 6368 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Apr 3 16:55:12 2003 UTC (11 years, 9 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 14912 byte(s)
Diff to previous 5323
G__CallFunc::SetArgArray() does now take an argument count if less than
all arguments are set (in case of default arguments one does not have
to specify all arguments). This change is now reflected in TMethodCall
and the classes that use this call. Execept for the signal/slot and
plugin manager code this is backward compatible in the ROOT sources
(e.g. since in TF1 the array contained always the values for all arguments).
The changes in the signal/slot and pluginmanager code make this change
also backward compatible for the user code.

Revision 5323 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Sep 17 14:38:05 2002 UTC (12 years, 4 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 14905 byte(s)
Diff to previous 5247
allow correct handling of default arguments.

Revision 5247 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Sep 10 12:14:29 2002 UTC (12 years, 4 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 14867 byte(s)
Diff to previous 5240
protect in Info() statement against uri being 0.

Revision 5240 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 9 15:21:39 2002 UTC (12 years, 4 months ago) by brun
Original Path: trunk/base/src/TPluginManager.cxx
File length: 14758 byte(s)
Diff to previous 4996
From Philippe:
In TPluginManager.cxx:
        fix debug ouput to work in case of missing handler.
In TClassTable.cxx:
        fix the debug output when printing the content of the table of dictionaries.
In rootcint.cxx
        allow using classes from the same namespace as a data member

Revision 4996 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jul 19 13:00:22 2002 UTC (12 years, 6 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 14744 byte(s)
Diff to previous 4970
fix problem with regexp in TPluginHandler::CanHandle(), regexp strings
without regexp characters need to be matched completely (like a wildcard).
Fixes loading of Win32gdk.

Revision 4970 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jul 18 09:46:24 2002 UTC (12 years, 6 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 14657 byte(s)
Diff to previous 4962
fix compilation problem with gcc 2.96. va_arg() supports only int, long
and double types, all other types are promoted to these types when passed
via ... .

Revision 4962 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 17 14:53:46 2002 UTC (12 years, 6 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 14531 byte(s)
Diff to previous 4933
in TPluginHandler::ExecPlugin() take default arguments in account. One can
now pass only the required arguments.

Revision 4933 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 16 13:57:14 2002 UTC (12 years, 6 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 14406 byte(s)
Diff to previous 4529
extended plugin manager that now supports also the specification of an
ctor, to instantiate an object of the specified class, in the external file
(typically rootrc). This ctor is called via TPluginHandler::ExecPlugin().

Revision 4529 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon May 13 10:39:43 2002 UTC (12 years, 8 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 9075 byte(s)
Diff to previous 4071
use Info() instead of Printf().

Revision 4071 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Feb 23 10:35:56 2002 UTC (12 years, 11 months ago) by brun
Original Path: trunk/base/src/TPluginManager.cxx
File length: 9142 byte(s)
Diff to previous 3796
Fix error in TPluginManager:
 In method `class TPluginHandler * TPluginManager::FindHandler(const char *, const char *)':
return to `TPluginHandler *' from `Bool_t'

Revision 3796 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jan 27 17:22:47 2002 UTC (12 years, 11 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 9148 byte(s)
Diff to previous 3793
small fix in constness.

Revision 3793 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jan 27 16:28:37 2002 UTC (12 years, 11 months ago) by brun
Original Path: trunk/base/src/TPluginManager.cxx
File length: 9148 byte(s)
Diff to previous 3791
Fix the usual problem with strstr on Solaris. A statement like
  char *s = strstr(...
is not legal, strstr returning a const char*. One must cast:
  char *s = (char*)strstr(...

Revision 3791 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jan 27 15:53:40 2002 UTC (12 years, 11 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 9141 byte(s)
Diff to previous 3789
added new default argument check=kFALSE to TROOT::LoadClass(). If check
is true LoadClass() only checks for the existence and readability of the
library and does not attempt to load the library. The plugin manager
uses this new functionality in its Print() method to show which plugins
are available.

Revision 3789 - (view) (download) (as text) (annotate) - [select for diffs]
Added Sun Jan 27 13:53:35 2002 UTC (12 years, 11 months ago) by rdm
Original Path: trunk/base/src/TPluginManager.cxx
File length: 8550 byte(s)
This class implements a plugin library manager. It keeps track of
a list of plugin handlers. A plugin handler knows which plugin
library to load to get a specific class that is used to extend the
functionality of a specific base class. For example, to extend the
base class TFile to be able to read RFIO files one needs to load
the plugin library libRFIO.so which defines the TRFIOFile class.
This loading should be triggered when a given URI contains a
regular expression defined by the handler. Handlers can be defined
for example as resources in the .rootrc file, e.g.:

   Plugin.TFile:       ^rfio:    TRFIOFile     RFIO
   Plugin.TSQLServer:  ^mysql:   TMySQLServer  MySQL
   +Plugin.TSQLServer: ^pgsql:   TPgSQLServer  PgSQL

Plugin handlers can also be registered at run time, e.g.:

   gROOT->GetPluginManager()->AddHandler("TSQLServer", "^sapdb:",
                                         "TSapDBServer", "SapDB");

A list of currently defined handlers can be printed using:

   gROOT->GetPluginManager()->Print();

The use of the plugin library manager removes all textual references
to hard-coded class and library names and the resulting dependencies
in the base classes. The plugin manager is used to extend a.o.
TFile, TSQLServer, TGrid, etc. functionality.

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

Subversion Admin
ViewVC Help
Powered by ViewVC 1.0.9