Log of /trunk/core/cont/inc/TRefTable.h
Parent Directory
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: 4419 byte(s)
Diff to
previous 22689
move the directories:
base clib cont meta metautils newdelete pcre rint thread unix utils
winnt zip
under the new core meta directory.
Revision
18209 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Mar 8 23:29:01 2007 UTC (7 years, 10 months ago) by
pcanal
Original Path:
trunk/cont/inc/TRefTable.h
File length: 4478 byte(s)
Diff to
previous 17509
From Paul:
Modify TRefTable, TBranchRef, and TBranchElement so that the small
integer which is assigned to identify a TBranchElement by TRefTable
is cached so that we need to find it only once, instead of at every
call to TBranchElement::GetEntry() or TBranchElement::Fill().
Revision
17509 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jan 25 11:51:13 2007 UTC (8 years ago) by
brun
Original Path:
trunk/cont/inc/TRefTable.h
File length: 4456 byte(s)
Diff to
previous 14487
-The enum kHaveWarnedReadingOld is becoming public instead of protected.
-The inclusion of TFile.h has been removed.
-TRefArray::Streamer makes use of TVirtualIO::GetLastProcessID.
With these changes TRefArray is now independent of the I/O sub-system.
Revision
14487 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Mar 30 13:09:40 2006 UTC (8 years, 9 months ago) by
brun
Original Path:
trunk/cont/inc/TRefTable.h
File length: 4458 byte(s)
Diff to
previous 14054
From Axel:
this patch issues a warning once per TRefTable, if a file is being read
that contains an old version of TRefTable and multiple TProcessIDs. In
this case one _can_ have a corrupted TRefTable, due to several processes
re-using the same UIDs.
Revision
14054 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Feb 17 05:16:38 2006 UTC (8 years, 11 months ago) by
pcanal
Original Path:
trunk/cont/inc/TRefTable.h
File length: 4403 byte(s)
Diff to
previous 13258
From Axel:
---
Add support for auto-loading of TRefs from multiple TProcessIDs:
TRefTable now stores 2d arrays of branch numbers to load [PID][UID] (via
FillBuffer). The PID index <-> TProcessID-GUID mapping is stored via
TRefTable::Streamer (i.e. once per TTree). Lookup is cached. This change
is both backward and forward compatible, both concerning the interface
and .root files. Only exception is TRefTable::fParentIDs, which is now
only streamed via FillBuffer / ReadBuffer, not as a member of TRefTable.
Minor side-notes:
* Speed-up in TRef::GetObject de-referencing (only once call to
TProcessID::GetObjectWithID).
* No re-reading of a branch if it was already read for an event (if
TBranchRef's fReadEntry == branch-to-autoload's fReadEntry then don't
call GetEntry on it).
* Added getter for TProcessID::fgPIDs->Size()
* updated doc for TRef, TRefTable, TBranchRef, to reflect the current
status of auto-loading.
---
The only change that's breaking backward compatibility (as mentioned
above) is the clear split between per-entry and global streaming of the
TRefTable: there is no use in storing the fParentIDs[][] array (and
fN[]) as part of the TTree members - it should only be stored as part of
the TTree entry. So I've marked them as //!; they're made persistent in
TRefTable::FillBuffer.
The member TRefTable::fSize is only around to suppress a warning in the
schema evolution algorithm (it was a counter before, and the schema
evolution algo is unhappy about fSize missing in the new class
definition, nor does it appreciate fSize being marked as //!). This is
ugly, but I prefer it over a custom streamer.
The patch should fix the following issues:
* autoloading doesn't work because TRefs were created by different
processes,
* changed objects magically overwritten in memory due to re-loading of
referenced objects
Revision
13014 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Oct 25 22:11:58 2005 UTC (9 years, 3 months ago) by
pcanal
Original Path:
trunk/cont/inc/TRefTable.h
File length: 3165 byte(s)
Diff to
previous 9831
When cloning a TTree and removing some of the branches, if we have
a TBranchRef, we need to completely reset the TRefTable (which caches
the address of the branches that contains referenced objects).
Thanks to Reiner Hauser for discovering and solving his issue.
Revision
9831 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Aug 24 10:41:58 2004 UTC (10 years, 5 months ago) by
brun
Original Path:
trunk/cont/inc/TRefTable.h
File length: 3107 byte(s)
Diff to
previous 9804
Improve the functionality of the TRefTable.
The new algorithm
-does not require a pointer to the TRefTable in TFile.
-can automatically load the branch of a Tree when calling TRef::GetObject
-works when writing/reading multiple Trees in parallel
Revision
9798 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Added
Fri Aug 20 14:46:36 2004 UTC (10 years, 5 months ago) by
brun
Original Path:
trunk/cont/inc/TRefTable.h
File length: 2582 byte(s)
Add a new class
// TRefTable
//
// A TRefTable maintains the association between a referenced object
// and the parent object supporting this referenced object.
// The parent object is typically a branch of a TTree.
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.