Log of /trunk/core/base/inc/TProcessID.h
Parent Directory
Revision
26606 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Dec 2 20:36:09 2008 UTC (6 years, 1 month ago) by
pcanal
File length: 3094 byte(s)
Diff to
previous 23058
Following Igor Smirnov analysis fix several memory leaks, add checks for null pointer dereference, fix or add copy constructor and assignment operator when applicable, make the copy constructor and assignment operator private when the objects are not intended to be copiable.
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: 2941 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
17506 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jan 25 11:49:33 2007 UTC (8 years ago) by
brun
Original Path:
trunk/base/inc/TProcessID.h
File length: 3090 byte(s)
Diff to
previous 16507
-Remove the static functions: ReadProcessID and WriteProcessID.
These two functions have been moved to TVirtualIO and TFileIO.
-Implement new functions;
void CheckInit()
static TProcessID *GetPID();
static TObjArray *GetPIDs();
With these changes TProcessID is now independent of the I/O sub-system.
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/base/inc/TProcessID.h
File length: 3047 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
11001 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jan 28 05:45:41 2005 UTC (9 years, 11 months ago) by
brun
Original Path:
trunk/base/inc/TProcessID.h
File length: 2963 byte(s)
Diff to
previous 6988
From Philippe:
This patch solved a problem due to the fact that TObject's fUniqueID can
only hold a 8 bits ProccessID identifier (in addition to storing a 24 bits
object ID). However we support 65535 distinct ProcsssID identifiers per
file. Before this patch, for a file containing more than 255 distcint
ProcessID, the
TRef using the later ProcessID would be unable to find their references.
Specifically, fUniqueID can now store the ProcessID indentifier 0 through
254. When more identifiers
are used, then instead of store the identifier in the 8 higher bit of
fUniqueID we store in a table (TProcessID::fgObjPIDs) linking addresses to
pids.
Revision
4282 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 1 17:19:13 2002 UTC (12 years, 9 months ago) by
brun
Original Path:
trunk/base/inc/TProcessID.h
File length: 2784 byte(s)
Diff to
previous 3845
Several changes in the handling of TRef to support the following use case:
An array of objects is written to a file but the TRefs
referencing these objects are not written to the file.
In a next session, these objects are read in memory
and new TRefs point to these objects and are written
to a separate file. In a third session both files
are connected.
To get this scenario working, one must use a dummy TRef
set to all objects that can be referenced in the next session.
Revision
3845 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Feb 3 16:13:40 2002 UTC (12 years, 11 months ago) by
brun
Original Path:
trunk/base/inc/TProcessID.h
File length: 2730 byte(s)
Diff to
previous 3346
Add new static function GetSessionProcessID return the current
session TProcessID.
Rewrite the function ReadProcessID in order to store the right pid
in the list of the files pids in case the pid is already existing
in other files.
Revision
3346 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Dec 2 15:11:32 2001 UTC (13 years, 1 month ago) by
brun
Original Path:
trunk/base/inc/TProcessID.h
File length: 2684 byte(s)
Diff to
previous 3294
Many functions previously in TRef moved to TProcessID.
The first time a referenced or referencing object is written to a file,
the corresponding TProcessID is also written.
The ObjectCounter fgNumber also moved to TProcessID.
Revision
3294 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Nov 28 14:47:03 2001 UTC (13 years, 1 month ago) by
brun
Original Path:
trunk/base/inc/TProcessID.h
File length: 2175 byte(s)
Diff to
previous 2904
Backward incompatible change of TProcessID. The new version supports
the new versions of TRef and TRefArray.
Instead of using a TExMap to store the pointers to the referenced objects,
a simple and faster TObjArray is created. Each array element points directly
to the referenced object. The array index corresponds to the fUniqueID
of the referenced object.
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.