Log of /trunk/core/cont/src/TRefTable.cxx
Parent Directory
Revision
24224 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jun 11 15:40:45 2008 UTC (6 years, 7 months ago) by
brun
File length: 14500 byte(s)
Diff to
previous 24201
-implement a custom Streamer for TRefTable. The streamer uses the automatic streaming
and make sure that all TProcessIDs referenced in the Tree are put to the buffer.
This is important in case the buffer is a TMessage to be sent through a TSocket
and the message contains one or more Trees. This improvement is important for PROOF
when the workers send Trees to the master where they are merged.
-in TRefTable::FillBuffer remove my previous change.
Revision
24201 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jun 10 15:14:45 2008 UTC (6 years, 7 months ago) by
brun
File length: 13588 byte(s)
Diff to
previous 22961
In TRefTable::FillBuffer also call TBuffer::WriteProcessID.
In case of a socket will trigger passing the TProcessID with the message.
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: 13554 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/src/TRefTable.cxx
File length: 13616 byte(s)
Diff to
previous 17542
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/src/TRefTable.cxx
File length: 13302 byte(s)
Diff to
previous 15038
-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
14844 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Apr 25 16:36:00 2006 UTC (8 years, 9 months ago) by
pcanal
Original Path:
trunk/cont/src/TRefTable.cxx
File length: 13999 byte(s)
Diff to
previous 14777
From Axel (using a good test case from Reiner Hause):
When resolving the ambiguity of reading a non-PID-enabled TRefTable, use
the file's last read PID, not the one at position [all-1].
With that, I get exactly the same results for explicit and auto-loading.
This patch is obviously binary compatible.
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/src/TRefTable.cxx
File length: 14097 byte(s)
Diff to
previous 14336
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
14336 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Mar 20 21:43:44 2006 UTC (8 years, 10 months ago) by
pcanal
Original Path:
trunk/cont/src/TRefTable.cxx
File length: 13721 byte(s)
Diff to
previous 14054
Reduce direct dependencies on TClass.h, TROOT.h and TStreamerInfo.h.
Warning: This means that some file that relied on the indirect
inclusion of these header file might now fail to compile with
an error message mention that gROOT is no known or that TClass,
TROOT or TStreamerInfo is incompletely defined. Simply add the
proper include directive.
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/src/TRefTable.cxx
File length: 13741 byte(s)
Diff to
previous 14013
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/src/TRefTable.cxx
File length: 6536 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/src/TRefTable.cxx
File length: 6256 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/src/TRefTable.cxx
File length: 4794 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.