Log of /trunk/core/base/inc/TROOT.h
Parent Directory
Revision
47952 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Dec 10 18:57:10 2012 UTC (2 years, 1 month ago) by
rdm
File length: 16834 byte(s)
Diff to
previous 46927
More CINT removal cleanups:
- configure: remove enable_cling and hascling as we always have cling.
- remove many R__HAS_CLING ifdef's from the code.
Revision
46927 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Oct 31 12:01:01 2012 UTC (2 years, 2 months ago) by
rdm
File length: 16999 byte(s)
Diff to
previous 46860
export ROOT::gROOTLocal which is needed in TGClient and possible other
classes at global init time when gROOT would be accessed.
Revision
46853 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Oct 27 21:05:57 2012 UTC (2 years, 2 months ago) by
rdm
File length: 16921 byte(s)
Diff to
previous 42030
Fix the issues with order in which global TROOT and LLVM globals are
initialized. TROOT was initializing Cling, but Cling could not be used
yet due to LLVM globals not being initialized yet. Solution, to delay
initializing the interpreter in TROOT till after main() when all LLVM
globals are initialized. Also the global gROOT is now defined to be
a function (ROOT::GetROOT()). Looks like it works correct on MacOS X
and Linux (ld and gold).
Revision
38797 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 11 15:11:58 2011 UTC (3 years, 9 months ago) by
pcanal
File length: 16568 byte(s)
Diff to
previous 38785
Make sure that the list of closed object is informed if a 'socket' is deleted ; rename ListOfClosedFiles unto ListOfClosedObjects
Revision
38785 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Apr 8 21:05:17 2011 UTC (3 years, 9 months ago) by
pcanal
File length: 16526 byte(s)
Diff to
previous 38661
We can not have 'closed' files in TROOT::GetListOfFiles, but also can not lose track of them (otherwise there is a risk of memory leak)
Revision
38288 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Mar 2 17:03:03 2011 UTC (3 years, 10 months ago) by
pcanal
File length: 16286 byte(s)
Diff to
previous 32970
Introduce new function TROOT::CloseFiles to be used to insure that any
files or socket is closed and deleted before any library is unloaded and/or
CINT's shutdown is started. Use this function in the few places already
using the explicit alternative and add to TApplication handling of the .q
command (to avoid the order of deletion problem that was present there)
Revision
32970 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Apr 13 16:36:38 2010 UTC (4 years, 9 months ago) by
rdm
File length: 16251 byte(s)
Diff to
previous 31136
m Axel:
Introduce cling as a regular module to ROOT. It will only be built if
cint/cling exists; configure's output does not advocate its ability to
configure for cling. TCint's dictionary will now end up in G__TCint.cxx
instead of G__Meta to allow it to be swapped with the dictionary for
TCint from cling. In the near future, ROOT will be changed so that it
doesn't require the interpreter to be called "TCint"; at least friend
declarations in TROOT and TClass prevent that for now.
Revision
31136 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Nov 12 21:25:38 2009 UTC (5 years, 2 months ago) by
pcanal
File length: 16230 byte(s)
Diff to
previous 31054
Prevent a process abort (due to a call to Fatal) when we are missing the
dictionary for (one of) the content of an STL collection when this collection
is 'only' use has a transient member.
This fixes issue #58397 in savannah.
Revision
31054 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Nov 9 16:39:20 2009 UTC (5 years, 2 months ago) by
rdm
File length: 16206 byte(s)
Diff to
previous 30751
In include/RConfigOptions.h define a string with all features available
in this version of ROOT as found/set in configure. This string is the same
as the one returned by "root-config --features". At run-time this feature
string is available via gROOT->GetConfigFeatures(). Using a strstr() on
this string one can quickly find out if e.g. the alien plugin was built.
Revision
30751 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Oct 15 16:45:32 2009 UTC (5 years, 3 months ago) by
pcanal
File length: 16044 byte(s)
Diff to
previous 27658
Extend the fix in revision r30527 (Avoid reporting I/O error for members
of a class that is used only for a transient member (Fix LHCb problem))
by passing the request to skip the warning message to the TClassGenerator.
The concrete implementation of TClassGenerator need to be upgraded to
take advantage of this new feature.
Revision
22992 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Apr 5 09:43:01 2008 UTC (6 years, 9 months ago) by
pcanal
File length: 15982 byte(s)
Diff to
previous 22961
Use the DirectoryAutoAdd facility for the classes:
TTree, TH1, TEventList, TEntryList, TGraph2D
(and hence their derived classes).
The instances of those classes are now added automatically
to the current directory only when Constructe'd with arguments or Clone'd
and to the directory they are read from when their are stored
directly in a TKey. [Note: the default constructor never adds
the object to the current directory]
The directory auto add can still be disabled for instance
of TH1 and TGraph2D by setting TH1::AddDirectory.
Additionally one can disable the directory auto add for
a specific class by doing:
TClass::GetClass("myclass")->SetDirectoryAutoAdd(0)
However you might want to also be able to restore the
behavior in which case you ought to do:
TClass *cl = TClass::GetClass("myclass");
ROOT::DirAutoAdd_t func = cl->GetDirectoryAutoAdd();
cl->SetDirectoryAutoAdd(0);
TROOT::ReadingObject is marked as deprecated.. It is still
set (as it was) but is no longer used by the above mention
classes.
NOTE: One side effect of this change, is that instnace
of TTree, TH1, TEventList, TEntryList, TGraph2D that are
retrieved from a TMessage (i.e. from a socket) no longer
auto register themselves to the current ROOT directory.
Add a new optional parameter to TDirectory::Append: 'replace'
If replace is true (the default is false), the Append will
first remove from the directory any existing object and
print the message:
Replacing existing OldClass: thename (Potential memory leak).
Add a new option parameter to TDirectory::CloneObject: 'autoadd'
If autoadd is true (the default), CloneObject will call the
object 'DirectoryAutoAdd' function (if any)
In TDirectory::CloneObject add support for multiple inheritance
from TObject where TObject is not the left most base class.
Fix memory leak in TGraph2D::operator= (and add TGraph2D::Clear)
Cleanup some documentation
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: 15885 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
20151 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Oct 1 13:34:51 2007 UTC (7 years, 3 months ago) by
rdm
Original Path:
trunk/base/inc/TROOT.h
File length: 15885 byte(s)
Diff to
previous 19826
add new methods:
TROOT::GetSvnRevision() -- returns svn current revision number
TROOT::GetSvnBranch() -- returns svn current branch name
TROOT::GetSvnDate() -- returns date time of built
the methods are used in TRint to print in the ROOT welcome message.
Revision
19601 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Aug 12 16:23:14 2007 UTC (7 years, 5 months ago) by
rdm
Original Path:
trunk/base/inc/TROOT.h
File length: 15461 byte(s)
Diff to
previous 18730
add to Macro() optional argument Bool_t updatePad=kTRUE. When kFALSE
gPad->Update() is not called. Avoid having to set gPad to 0 before calling
Macro() which can be defeated when the macro causes gPad to be reset.
Revision
18720 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu May 10 15:06:22 2007 UTC (7 years, 8 months ago) by
rdm
Original Path:
trunk/base/inc/TROOT.h
File length: 15395 byte(s)
Diff to
previous 17965
add plugin version checking. Each library contains a static initializer of
the new TVersionCheck class that registers its version number. This
version number is checked in TSystem::Load() against the version of the
ROOT Core. In case of mismatch Load() returns -2 and prints the error:
Error in <TUnixSystem::Load>: version mismatch, /Users/rdm/root/lib/libRIO.so = 51506, ROOT = 51507
(int)(-2)
The TVersionCheck.h is included via TObject.h so it works without change
of Makefiles. A number of Module.mk's were fixed because they were using
pre-compiled headers (which include TObject.h and hence TVersionCheck.h)
while they were not linking against libCore.
Revision
17965 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Feb 15 15:04:05 2007 UTC (7 years, 11 months ago) by
brun
Original Path:
trunk/base/inc/TROOT.h
File length: 15118 byte(s)
Diff to
previous 17561
-Remove static member fgMakeDefCanvas
-Replace static function TROOT::GetMakeDefCanvas returning a pointer
to a function creating a canvas (in fact TCanvas::MakeDefCanvas)
by a direct call via CINT to TCanvas::MakeDefCanvas.
-The static function TROOT::SetMakeDefCanvas has been removed.
Revision
17561 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jan 29 15:10:49 2007 UTC (7 years, 11 months ago) by
brun
Original Path:
trunk/base/inc/TROOT.h
File length: 15255 byte(s)
Diff to
previous 17419
-Add include "TROOT.h" in all implementation files that were assuming
that TROOT was included via TClass.h
-In TClass.h:
--Remove the include of TROOT.h
--add the following static member
static IdMap_t *fgIdMap; //Map from typeid to TClass pointer
--add the following functions:
static void AddClass(TClass *cl);
static void RemoveClass(TClass *cl);
--Replace the inline definitions of GetClass functions by
template <typename T> TClass* GetClass( T** /* dummy */) { return GetClass((T*)0); }
template <typename T> TClass* GetClass(const T** /* dummy */) { return GetClass((T*)0); }
-In TClass.cxx:
--Instead of forwarding the calls to gROOT->GetClass, move the code
originally in TROOT in the TClass::GetClass functions
--Move class TMapTypeToTClass from TROOT to TClass.
Revision
17419 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jan 22 05:58:29 2007 UTC (8 years ago) by
brun
Original Path:
trunk/base/inc/TROOT.h
File length: 15417 byte(s)
Diff to
previous 17372
WARNING!!! This is an important change.
This is the continuation of the effort to structure libCore into
independent sub-packages.
A new class TDirectoryFile is introduced. It derives from TDirectory
and takes from TDirectory all the I/O functions.
All the classes (except TROOT) deriving from TDirectory are now derived
from TDirectoryFile. TDirectory keeps the previous API for back compatibility
with several functions made virtual.
This change should be back compatible, except if the user codes creates
a file sub-directory by direct invokation of the TDirectory constructor
instead of calling TDirectory::mkdir.
Note that TMapFile is not yet fully adapted to the new scheme.
Revision
17372 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jan 17 11:55:01 2007 UTC (8 years ago) by
brun
Original Path:
trunk/base/inc/TROOT.h
File length: 15362 byte(s)
Diff to
previous 17014
From Axel:
This patch forwards the return value for TROOT::ProcessLine*(),
implements it as a return value to TMacro::Exec(), and fixes the
constructor for TMacro(filename). The old algorithm failed e.g. for
./whatever.C ("whatever.C" would have been the file name). Make doc a
bit more explicit.
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/inc/TROOT.h
File length: 15561 byte(s)
Diff to
previous 14860
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
14566 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Apr 6 13:47:57 2006 UTC (8 years, 9 months ago) by
rdm
Original Path:
trunk/base/inc/TROOT.h
File length: 15220 byte(s)
Diff to
previous 13300
From Axel:
This patch reduces "root.exe -l -b -q example.C" from 9G instructions
to 2.7G instructions.
Modifications:
TROOT: classes, types, globals, global funcs, funcs, class generators
are now TCollections, not TSeqCollections. fClasses, fGlobals,
fGlobalFunctions, fTypes are now THashTables, not THashLists. Remove now
happens instantaneously.
TEnv: pre-alloc string for parsing
Revision
12722 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Sep 16 08:48:39 2005 UTC (9 years, 4 months ago) by
rdm
Original Path:
trunk/base/inc/TROOT.h
File length: 15224 byte(s)
Diff to
previous 12492
From Gerri:
Big patch supporting query queueing on the PROOF master, interogation and
interaction with the queue. Retrieval, finalization and archival of query
results and multiple PROOF sessions. Some other fixes:
- TMacro.h, .cxx
add method Checksum to get the MD5 of the current context
(needed for optimized selector reinitialization)
- Changes needed to create and fill the list of data sets (TROOT,
TDSet, TChain, TChainProof)
- A new method TSelector::IsStandardDraw() to check if a selector
is for standard draw actions
- TEventIter: fix for the missing last update (see above)
- Few protections in TPacketizers destructors
- Fix for code conventions in TPerfStats (the other will follow)
- Occasional missing last update of the progress bar (systematically
reproduced with SetParallel(1)): all this part is quite involved
and I have found a solution which does not harm but perhaps is not
the most elegant.
- SetParallel(0): the progress bar was not working at all in such a
case, since no packetizer is involved. Still it is useful to see
that things are not stuck, so I have added some progress messages
there too. The problem is that I have not found a way to get the total
number of entries from a data set without doing all the machinery
done in the packetizer.
Revision
12337 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jul 18 16:20:53 2005 UTC (9 years, 6 months ago) by
rdm
Original Path:
trunk/base/inc/TROOT.h
File length: 14722 byte(s)
Diff to
previous 12247
From Gerri:
Big patch restructuring the authentication code so libCore does not depend
on libssl etc. anymore. Isolate the current authentication code behind a
plugin library to be loaded on demand.
Setup of a framework able to manage both sets of authentication modules
(the current one and the one based on xrdsec, coming soon).
Cleanup all direct reference to authentication in TSlave and TProofServ,
allowing for significant simplification for the forthcoming changes
in PROOF for XPD.
New module: auth
New files: base/inc/TVirtualAuth.h
auth/Module.Mk
auth/inc/LinkDefRoot.h
auth/inc/TRootAuth.h auth/inc/TRootSecContext.h
auth/src/TRootAuth.cxx auth/src/TRootSecContext.cxx
Moved files:
net/inc -> auth/inc : TAuthenticate.h THostAuth.h DaemonUtils.h AuthConst.h
net/src -> auth/src : TAuthenticate.cxx THostAuth.cxx DaemonUtils.cxx
Revision
12247 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jul 5 12:36:07 2005 UTC (9 years, 6 months ago) by
brun
Original Path:
trunk/base/inc/TROOT.h
File length: 14791 byte(s)
Diff to
previous 12128
From valeriy Onuchin:
- new class TImagePlugin is introduced;
To add possibility to read/write new image format one needs to create
a derived class and to override two methods:
virtual unsigned char *ReadFile(const char *filename, UInt_t &w,UInt_t &h)
virtual Bool_t WriteFile(const char *filename, unsigned char *argb,
UInt_t w, UInt_t h)
... and to specify it in the root resource file:
Plugin.TImagePlugin: ps TASPluginGS ASPluginGS "TASPluginGS(const char*)"
the name of plugin file extension DLL containing an implementation of
TImagePlugin subclass
- new class TASImagePlugin that is a subclass of TImagePlugin with ASImage
specific implementations;
- new class TASPluginGS - an image plugin class that allows to create images from
PS/EPS/PDF files and to display them in TCanvas/TPad. In addition, it allows to
browse PS/EPS/PDF files with the ROOT browser.
New files:
asimage/inc/LinkDefGS.h
asimage/inc/TASImagePlugin.h
asimage/inc/TASPluginGS.h
asimage/src/TASPluginGS.cxx
graf/inc/TImagePlugin.h
icons/pdf.xpm
icons/tb_find.xpm
libAfterImage.tar.gz
- TROOT.h
o new data member fClipboard and corresponding getter GetClipboard();
TSeqCollection *fClipboard; //List of clipboard objects;
- TGFrame
o embedded frames resized correctly now.
- TGCanvas
o several useful methods made public
- TGListBox, TGComboBox
o new method FindEntry(const char *s) added which returns entry by name
- TGMdiMainFrame, TGMdiDecorFrame
o fix bug which changed text color globally
o add displaying scroll bars when mdi frame is moved out of mdi
canvas viewport
- TGTextEdit/TGView, guitest
o added processing of:
2-clicks - selects a word
3-clicks - selects a line
4-clicks - selects the whole text
o change the key handling
Ctrl-F - invokes Search dialog
Ctrl-L - invokes Goto line dialog
Correspondent changes added to guitest.C and guitest.cxx (TextEdit test)
o readonly mode added
- TGSearchDialog
o Text entry was replaced by "text entry" combobox. It allows to
"remember" a history of entered search strings.
o new static method TGSearchDialog *&gDialog() introduced. It returns
a global search dialog.
o Search method - display warning message box when object is not found
- TRootBrowser, mime.types
o possibility to browse PS/EPS/PDF fies added
o possibility to browse text files added. The content of text file
appears in "icon box" window (a la netscape)
o "Search" tool bar button added. It activates the "search dialog" for
searching a specified icon or text when a text file is browsed.
- TGuiBldEditor.
o fix bug which changed text color globally
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/inc/TROOT.h
File length: 14708 byte(s)
Diff to
previous 11962
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
11281 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Mar 10 17:57:05 2005 UTC (9 years, 10 months ago) by
rdm
Original Path:
trunk/base/inc/TROOT.h
File length: 14341 byte(s)
Diff to
previous 10566
From Marek Biskup:
major new PROOF developments:
- access to PROOF directly via the TChain interface (creating a TDSet
in the background).
- access to PROOF based trees via the TTreeViewer
- fully implemented the TChain/TDSet::Draw() interface.
- PROOF sessions can now be browsed via the TBrowser
Revision
10566 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Nov 19 07:25:43 2004 UTC (10 years, 2 months ago) by
brun
Original Path:
trunk/base/inc/TROOT.h
File length: 14273 byte(s)
Diff to
previous 8239
Remove unused members
TFile* fCurrentFile Current file
TDirectory* fCurrentDirectory Current directory
TVirtualPad* fCurrentCanvas Current graphics canvas
TVirtualPad* fCurrentPad Current graphics pad
TStyle* fCurrentStyle Current graphics style
Revision
8239 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Feb 19 00:11:19 2004 UTC (10 years, 11 months ago) by
rdm
Original Path:
trunk/base/inc/TROOT.h
File length: 14592 byte(s)
Diff to
previous 8197
Big authentication patch by Gerri:
General purpose:
Add support for 'authenticated' sockets on client side
and prepare for support of server authenticated sockets.
Main changes:
o TSocket, TPsocket:
Added support of 'authenticated' sockets: authentication
is delegated to TSocket by calling a static method
CreateAuthSocket() returning a TSocket*.
TSocket is now the only class calling TAuthenticate.
o TFTP, TNetFile, TSlave:
modified to cope with new socket authentication scheme.
o TAuthDetails replaced by TSecContext containing:
- local authentication info
- expiration time
- pointer to a security context for the method (if any)
- information for cleanup (via TSecContextCleanup)
o A list of valid TSecContext has been added to TROOT,
accessible via gROOT->GetListOfSecContexts().
o THostAuth rewritten using arrays to avoid multiple use
of 'new'; functionality extended by the addition of
several new methods.
o TAuthenticate:
- Loading of information from .rootauthrc has been optimized;
this allowed to simplify method signatures and drop several
methods. Also collection and transmission of authentication
information from TSlave to TProofServ gets simplified by the
new scheme.
- Added support for server dependent directives in .rootauthrc
- Added check for changes in .rootauthrc each time a new
TAuthenticate is instantiated, so that changes in the file
are picked-up interactively.
- Checking for an existing TSecContext (previously TAuthDetails)
has been improved
- Improved diagnostics for SshAuth
- Enlarged support for authentication method indication in protocol:
UsrPwd: rootup/proofup
SRP: roots/proofs (already supported)
Krb5: rootk/proofk (already supported)
Globus: rootg/proofg
SSH: rootsh/proofsh
UigGid: rootug/proofug
o GlobusAuth.cxx, Krb5Auth.cxx, SRPAuth.cxx
- Adapted to new class TSecContext
- Added support for improved search for reusable TSecContext
- Drop globals used to store established security contexts
(saved in TSecContext) and related methods
o Automatic creation of <RootDir>/etc/system.rootauthrc from
compilation flags; this has priority on old envs
'Rootd.Authentication' and 'Proofd.Authentication' and is
superseded by $HOME/.rootauthrc
o Automatic creation of <RootDir>/etc/system.authdaemonrc from
compilation flags; this is superseded by $HOME/.rootauthrc
o rpdutils:
- several almost identical methods moved in from rootd/proofd
- several new methods to simplify manipulation of the
authentication tab file
- moved (and improved) check for running of sshd in RpdSshAuth,
performed only in case of failure (to avoid spurious messages
printed by sshd in /var/log/messages)
o proofd.cxx, rootd.cxx
- increased protocol version
- all initialization stuff (included authentication and
login) done via RpdInitSession
- postpone opening of parallels sockets after authentication
(to solve problem of Kerberos/Globus authentication with
parallel sockets)(rootd)
- Fixed problem with kerberos and globus authentication in rootd
with parallel sockets.
Revision
8056 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jan 27 19:52:48 2004 UTC (10 years, 11 months ago) by
brun
Original Path:
trunk/base/inc/TROOT.h
File length: 14286 byte(s)
Diff to
previous 7880
From Philippe:
This patches improves the consistency of the naming convention for the TClass
of STL containers. Previous, std::vector<float>, vector<float>, etc. could be
considered as 2 different entities by part of the ROOT code. This rationalizes these
cases. It should fix all reported related bugs.
Revision
7880 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Jan 10 10:52:31 2004 UTC (11 years ago) by
brun
Original Path:
trunk/base/inc/TROOT.h
File length: 14217 byte(s)
Diff to
previous 7637
From Philippe:
This mega patch introduces a new implementation of the STL I/O
which is backward and forward compatible. In addition this is more
exactly a new implementation or an extension of the container I/O.
We are introducing a new abstract interface:
"TVirtualContainerProxy", which can be implemented to present a
proxy to any collection which the I/O (and TTreeFormula) can use
then transparently.
The TVirtualContainerProxy interface allows to the I/O system to
request some information and to execute some essential function of
the container:
what kind of object/data does it contain
does it contain pointers
how to insert data into the container
how to retrieve an array of pointer to the elements inside
how to create a collection object
how to clear the collection
how to resize the collection
how to streamer the collection (if needed)
how to calculate the sizeof the collection
how to calculate the number of elements of the collection.
Using those primitives, the I/O and TTreeFormula should be able to
access any collection. The I/O should also be able to handle the
splitting of collections that can be split (i.e. contains a single
type of object/data).
The current compromise selected between code duplication,
performance of the I/O of TClonesArray and vector of pointers and
the performance of the I/O of other containers, was to have on
function handle all collection as if they were a C-style array of
pointers to data. This implies for example that the I/O of vector
of object current passes via the construction of temporary array
of pointer. The cost of this construction is usually ~Qjust~R the
cost of calculating the addresses of the elements and assigning it
to an array element.
Registering a collection proxy will be similar to
static int dummy = GenerateInitInstance((CollectType*)0x0)-
>AdoptCollectionProxy(new CollectTypeProxy));
Follows a few details on the modifications made to some of the
files and classes.
Bytes.h:
Work around a problem in the MSVC++ 6.0 optimizer. This should
not affect other compilers.
String:
Included the std::string dictionary into G__Base2.cxx, this
insures its presence at all time.
Added a new file string.cxx holding the streamer for
std::string.
RConfig.h
Added proper ansi stream configuration for AIX, KCC
Added template specialization defect for MSVC
TBrowser
Start adding the ability to browser non TObject classes
TBuffer
To handle the reading and writing array of objects, added:
Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const
TClass *clss, const char* classname);
Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const
char *classname);
void ReadFastArray(void *start , TClass *cl, Int_t n=1,
TMemberStreamer *s=0);
void ReadFastArray(void **startp, TClass *cl, Int_t n=1,
Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=0);
void WriteFastArray(void *start, TClass *cl, Int_t n=1,
TMemberStreamer *s=0);
Int_t WriteFastArray(void **startp, TClass *cl, Int_t n=1,
Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=0);
TROOT
Enhancement to make the access to gROOT not dependent for the
library loading order. In particular we added:
ROOT::GetROOT()
which should be used instead of gROOT.
Improve support for STL. In particular, now STL containers do
have a corresponding TClass object
TRealData
Replace SetStreamer by AdoptStreamer that allow to use not only
a streamer function but also streamer object (allowing streamer
with a state for Foreign classes)
TString:
Improve streamer performance
TSystem:
More consistency of the return value of TSystem::CompileMacro
build/unix/makecintdlls.sh
Stop making the string.dll
config:
enhance sgicc makefiles
cont:
fix TBits::operator=
TClassTable now warns for duplicate only for non stl classes
TClonesArray fix a typo
gpad:
Add a new class TInspectObject to enable inspect non TObject
classes
TRootBrowser : enable inspect non TObject classes
TFormula/TTreeFormula
To enhance performance switch from using one array fOper which
contained the operation code and its arguments to using 2 arrays
fActions and fActionParams to store respectively the operation and
its parameters.
A new function Convert is used to convert old version from the
fOper to fActions. This allows cleaner coding and offer
optimization opportunities.
TTreePlayer
Start adding support in MakeClass for STL containers.
TRint/TProofServ
Insure the loading of the string support
Event.cxx
make sure to avoid memory over-write
stress.cxx
Add new parameters
stress <nevent> <style> <subbench> <portion>
if <subbench> is 1 or higher, print the benchmark results after
each test. This allows understand
which test is affect by a performance change.
portion is a binary field to indicate which test to run. This
allows to focus on a particular test.
TVirtualCollectionProxy
Abstract interface used to access any type of containers from
the I/O system and TTreeFormula. See TVectorProxy and
TEmulatedVectorProxy for examples.
TEmulatedVectorProxy
Implementation of a std::vector proxy to be able to read a
std::vector without any libraries.
TVectorProxy
Implementation of TVirtualCollectionProxy for a std::vector for
which we have the library.
TStreamerInfo.cxx
Split in 3 files: TStreamerInfo.cxx
TStreamerInfoReadBuffer.cxx TStreamerInfoWriteBuffer.cxx
All the ReadBuffer, ReadBufferClones and the new ReadBufferSTL
(similarly for WriteBuffer) have been factorized into one
function and 2 short wrappers. The new main function expect an
array of pointer to the objects (this array is most often of size
one).
TClonesArray objects pass GetObjectRef(0) to the common
ReadBuffer
vector<bla*> v pass &(v[0])
vector<bla> needs to create an intermediary array to hold the
address
This mechanism is sometimes not optimal (vector<blah>) but
allows extremely flexibly and extension. Basically, to add
support for a new container type using the StreamerInfo mechanism
(in particular allows splitting), one 'just' need to implement a
TVirtualCollectionProxy, which, in particular, will return an
array of address to the object it contains. Even std::map can be
handled with this mechanism, since, for I/O purposes, it can be
consider as a container of pairs.
Add a few optimization, including more caching via a new array
of a new struct (fComp).
Fixed a problem (re)introduced while implementing the Foreign
class CheckSum. Doing:
class Event;
f = new TFile("Event.root");
resulted in errors.
TCint
Add proper support for TClass of STL containers. Fix a memory
leak.
Add support for load TClass via a typedef.
Fix a problem with multiple inheritance
TClass
Fixed a problem (re)introduced while implementing the Foreign
class CheckSum. Doing:
class Event;
f = new TFile("Event.root");
resulted in errors.
Add a
TClass/TGenericClassInfo/TDataMember
Add support for a new interface (TVirtualCollectionProxy)
useable for STL containers or any user defined containers.
Add support for streamer with are objects (as opposed to free
standing function or methods). This allows the user a greater
flexibility in writing a streamer.
Add a few optimizations
Add CanSplit to answer the question for a whole Class (for
example some collection can not be splitted).
TClassStreamer
New class to wrap a class wide streamer
ClassStreamerFunc_t
typedef for a class wide streamer function
TMemberStreamer
New class to wrap a specific class member streamer
MemberStreamerFunc_t
typedef for a specific class member streamer function
RootStreamer
Macro to specify a free standing streamer object or function
for a class
For example:
RootStreamer(string,std_string_streamer);
TStreamerElement:
A couple of optimization/simplification.
Add support for the new STL I/O
Extend the useful
TBranchElement:
add a connection to the proper TVirtualCollectionProxy
add support for STL containers (non-split and split mode)
TTree
Make the function TTree::GetMakeClass NON-virtual for better
efficiency
Add support for STL containers
TBasket
Left (in comment) a yet unproved improvement proposed by
Victor. The preliminary tests were inconclusive performance wise
and it had (seemingly) problem with backward and forward
compatibility.
TBranch
Performance improvements
metautils
This is a new package for C++ files shared between rootcint and
meta.
It contains TClassEdit a class to help determine some property
of a class given its class name (stl, template, etc).
utils
Introduced a new file RStl.cxx to start separating rootcint in
modules.
Modified rootcint to support the new STL I/O methods.
In particular a new class RStl is in charge of doing the
generating of code for STL containers.
Revision
7637 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Nov 24 10:51:55 2003 UTC (11 years, 2 months ago) by
brun
Original Path:
trunk/base/inc/TROOT.h
File length: 14185 byte(s)
Diff to
previous 7582
From valeriy Onuchin:
I updated several base and win32gdk classes.
The goals of these changes are:
- providing thread safety for CINT and canvas graphics
- improve perforamnce
The list of the changes.
win32gdk:
- new TGWin32Interpreter class introduced. Along with
redefinition of gInterpreter global that allows to have thread-safe
interface to CINT functions and methods.
- TGWin32Proxy class renamed to TGWin32VirtualXProxy and
modified in "not-radical way".
- TGWin32ProxyBase.cxx contains "howto create proxy class".
canvas thread-safety:
- locking methods added to TCanvasImp, TRootCanvas and TCanvas
classes. That prevents from simultanious canvas updating from
different threads.
The results:
- overall improvement of thread safety and stability of win32gdk version
- improved performance. benchmarks.C 15-20%, some cases (3D graphics)
more than 30%.
Revision
7582 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Nov 13 15:15:11 2003 UTC (11 years, 2 months ago) by
rdm
Original Path:
trunk/base/inc/TROOT.h
File length: 14116 byte(s)
Diff to
previous 7175
From Andreas Peters:
updated TGrid and related classes, and updated TAlien plugin for the AliEN grid.
To build the TAlien plugin one needs to install the AliEn client API lib.
How the basic TGrid class works with AliEn is described in the file
README/README.ALIEN.
Also provided is a Grid/AliEn controlled distribtution and startup system
for PROOF. This uses the TGridProof/TAlienProof classes and the LFN/PFN
information in the TDSet to find the AliEn sites where the data resides.
On these sites PROOF daemons (proofd) are started by AliEn (using an
interactive submission queue). Once the proofd's are running standard
PROOF is started which then connects to these proofd's. After that the
user performs his analysis, like on a local PROOF cluster.
Revision
6781 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jun 25 14:34:53 2003 UTC (11 years, 7 months ago) by
brun
Original Path:
trunk/base/inc/TROOT.h
File length: 14002 byte(s)
Diff to
previous 6373
From Philippe:
Addition of a new function TROOT::AddClassGenerator(ROOT::TClassGenerator *)
Where all ROOT::TClassGenerator that have registered will be called (in order)
when the usual TROOT::GetClass fails.
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/inc/TROOT.h
File length: 13745 byte(s)
Diff to
previous 5305
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
4498 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu May 9 20:22:01 2002 UTC (12 years, 8 months ago) by
brun
Original Path:
trunk/base/inc/TROOT.h
File length: 13372 byte(s)
Diff to
previous 4460
New attempt to introduce the new additions (Philippe) to the I/O system
as well as as the new version of ClassDef/ClassImp.
With the additions to the I/O, it is now possible to generate
a dictionary for classes not instrumented with ClassDef.
Revision
4446 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri May 3 14:30:43 2002 UTC (12 years, 8 months ago) by
brun
Original Path:
trunk/base/inc/TROOT.h
File length: 13371 byte(s)
Diff to
previous 4183
Introduce a long patch by Philippe. With this patch, ROOT I/O
should be able to support foreign not-ROOT instrumented classes.
More information will come later.
This patch is tentatively put in the CVS head to facilitate
testing on all platforms.
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/inc/TROOT.h
File length: 13038 byte(s)
Diff to
previous 3790
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
3498 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Dec 19 07:15:19 2001 UTC (13 years, 1 month ago) by
brun
Original Path:
trunk/base/inc/TROOT.h
File length: 12827 byte(s)
Diff to
previous 3347
This patch from Philippe gives the user access to the cint error code after an
attempt to 'interpret'.
In particular the following methods have one more optional
parameter:
TApplication::ProcessLine
TApplication::ProcessFile
TObject::Execute
TROOT::ProcessLine
TROOT::ProcessLineFast
TROOT::ProcessLineSync
TROOT::LoadMacro
TROOT::Macro
and
TInterpreter::Execute
TInterpreter::LoadMacro
TInterpreter::ProcessLine
TInterpreter::ProcessLineAsync
TInterpreter::ProcessLineSync
TInterpreter::ExecuteMacro
TInterpreter::Calc
and the corresponding method in TCint.
The extra parameter is a pointer to an int (or a TInterpreter::EErrorCode
when available). If this pointer is not zero, it will be used to pass
back information on the CINT error status. The result are defined
in the enum TInterpreter::EErrorCode.
This is the best method of passing the information, because some
of the methods are already returning a result and using a global
variable (i.e. TInterpreter::GetLastErrorStatus) would lead to
indescriptible confusion (remember that there can be several
nested call to ProcessLine including one 'implied' call resulting
from the command line interpretation).
In the asynchronous case, the error status is set to kProcessing until
completion. The windows part, which consist of reseting the error status
to the proper value upon completion will be implemented in a future patch.
Also LoadMacro and Macro were updated to be able to use ACLiC and
to be able to run named macro.
Revision
2848 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Sep 25 16:14:51 2001 UTC (13 years, 4 months ago) by
rdm
Original Path:
trunk/base/inc/TROOT.h
File length: 12746 byte(s)
Diff to
previous 2825
check rootrc resource Root.MemCheck and store in fgMemCheck. Add new
static method Bool_t MemCheck() returning kTRUE when memchecker is active.
This is used in NewDelete.cxx to use the memchecker.
Revision
2228 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu May 17 10:57:56 2001 UTC (13 years, 8 months ago) by
rdm
Original Path:
trunk/base/inc/TROOT.h
File length: 12628 byte(s)
Diff to
previous 1205
new static method SetMacroPath() which allows the macropath to be
changed or reset. For example:
TROOT::SetMacroPath(TString(TROOT::GetMacroPath())+":~/mymacros")
will add the directory "~/mymacros" to the macro search path and
TROOT::SetMacroPath("")
will reset it to the original value.
Revision
1205 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Dec 13 15:13:57 2000 UTC (14 years, 1 month ago) by
brun
Original Path:
trunk/base/inc/TROOT.h
File length: 12506 byte(s)
Diff to
previous 1102
W A R N I N G !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
==================================================================
A very long list of changes in this pre-release of version 3.00.
We have modified the signature of many functions (in particular TObject)
to introduce more constness in the system.
You must change your code if your class derives from TObject and uses
one of the modified functions such as ls, Print, Compare, Hash, etc.
The modified functions in TObject have the following signature:
virtual TObject *Clone() const;
virtual Int_t Compare(const TObject *obj) const;
virtual void Delete(Option_t *option=""); // *MENU*
virtual void DrawClass() const; // *MENU*
virtual void DrawClone(Option_t *option="") const; // *MENU*
virtual void Dump() const; // *MENU*
virtual TObject *FindObject(const TObject *obj) const;
virtual char *GetObjectInfo(Int_t px, Int_t py) const;
virtual ULong_t Hash() const;
virtual void Inspect() const; // *MENU*
virtual Bool_t IsEqual(const TObject *obj) const;
virtual void ls(Option_t *option="") const;
virtual void Print(Option_t *option="") const;
A similar operation has been done with classes such as TH1, TVirtualPad,
TTree, etc.
Revision
623 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Sep 11 09:59:27 2000 UTC (14 years, 4 months ago) by
brun
Original Path:
trunk/base/inc/TROOT.h
File length: 11997 byte(s)
Diff to
previous 604
Rename fReadingBasket to fReadingObject in TROOT.h
Rename TROOT::ReadingBasket to TROOT::ReadingObject
Rename TROOT::SetReadingBasket to TROOT::SetReadingObject
TROOT::SetReadingObject is now set in TKey::ReadObj
One can test in the default constructors (like TCanvas) if Root is
reading from file or socket.
The TCanvas default constructor has been modified to take advantage
of this change. As a result, the following works:
root > TCanvas c1
Revision
564 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Sep 5 09:12:11 2000 UTC (14 years, 4 months ago) by
brun
Original Path:
trunk/base/inc/TROOT.h
File length: 11711 byte(s)
Diff to
previous 499
Several changes in the manager class TROOT:
- a new member TFolder *fRootFolder has been added. fRootFolder is
the head ("root") of all the Root folders.
This folder is the first folder in the list of Browsable objects.
- All collections created by the TROOT constructor are now added to
the top level folder.
- The collection fProcesses has been renamed fTasks.
- The existing function FindObject is now const and has been rewritten.
- new function added:
TObject *FindSpecialObject(const char *name, void *&where);
This function is called by TCint::FindSpecialObject.
- The following static functions previously in TObject have been moved
to TROOT:
static Int_t DecreaseDirLevel();
static Int_t GetDirLevel();
static Int_t IncreaseDirLevel();
static void IndentLevel();
static void SetDirLevel(Int_t level=0);
Revision
498 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Aug 18 13:18:36 2000 UTC (14 years, 5 months ago) by
brun
Original Path:
trunk/base/inc/TROOT.h
File length: 11323 byte(s)
Diff to
previous 3
Implement a new function SetCutClassName(classname) to specify the default
class to be instantiated by the graphics editor. The default class name
is TCutG. The class name specified must derive from TCutG.
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.