Log of /trunk/core/cont/inc/TRefArray.h
Parent Directory
Revision
48798 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Mar 1 21:04:47 2013 UTC (22 months, 3 weeks ago) by
pcanal
File length: 7684 byte(s)
Diff to
previous 43515
Import revision 48797 from the v5-34-00 patch branch:
Avoid silent failure when reaching the maximum amount of TRef. When a
TProcessID is full (has seen 16777215 objects), we switch to new one TProcessID
(maximum 65535 including the TProcessIDs read from file). TRefArray can not
switch to new TProcessID if they already contain objects.
Some of the new warning/errors:
Warning in <TRefArray::AddAtAndExpand>: The ProcessID for the 0x5f83819e8 has been switched to ProcessID4/6c89f37e-8259-11e2-9717-166ee183beef:4
Error in <TRefArray::AddAtAndExpand>: The object at %p can not be registered in the process the TRefArray points to (pid = ProcessID4/6c89f37e-8259-11e2-9717-166ee183beef) because the ProcessID has too many objects and the TRefArray already contains other objecs.
Warning in <TProcessID::AddProcessID>: Maximum number of TProcessID (65535) is almost reached (one left). TRef will stop being functional when the limit is reached.
....
Fatal in <TProcessID::AddProcessID>: Maximum number of TProcessID (65535) has been reached. TRef are not longer functional.
Revision
43515 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Mar 27 21:15:53 2012 UTC (2 years, 9 months ago) by
pcanal
File length: 7603 byte(s)
Diff to
previous 40584
Fix coding convention R.RN7 (Avoid the raw C types 'long', 'unsigned long', 'long double', 'bool', 'long long' and 'unsigned long long'.)
Revision
40584 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Aug 14 02:56:29 2011 UTC (3 years, 5 months ago) by
pcanal
File length: 7603 byte(s)
Diff to
previous 34744
Apply to TRefArray::operator[] and TRefArray::At the same protection as in revision 5761 for TRef::GetObject
to protect against the case where fPID points to
a deleted processID using the new function TProcessID::IsValid.
In TProcessID::Cleanup, set fgPIDs to zero to avoid using the array after its deletion;
use this information in TProcessID::IsValid.
This fixes the issues 84017 an 84018 in Savannah.
Revision
34744 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Aug 7 06:16:36 2010 UTC (4 years, 5 months ago) by
brun
File length: 7507 byte(s)
Diff to
previous 32781
From Artur Szostak:
There is a mechanism in GCC 4.6.0 that will allow one to effectively prevent the false positive warnings for -Weffc++ from appearing in software that builds against ROOT, with the -Weffc++ flag set, such as AliRoot. I propose using the mechanism, which will make the development in AliRoot much more pleasant.
Revision
23198 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 14 09:23:08 2008 UTC (6 years, 9 months ago) by
rdm
File length: 6591 byte(s)
Diff to
previous 23059
From Anar and me:
The background is the following. While working on the PROOF code I found
that enumerating TList is an inconvenient and a long operation, I had to
write the same code all over the place and make duplications. I tried
to use STD algorithms with it, namely std::for_each, and failed.
I therefore decided to enable std::for_each algorithm for ROOT
Containers/Iterators by making as few as possible changes, without rewriting
iterators at all. Now with only two simple lines of code one is able to
iterate through a container:
TIter iter(&list);
for_each(iter.Begin(), TIter::End(), SEnumFunctor());
or
for_each(iter.Begin(), inter_end, SEnumFunctor());
where iter_end could be an iterator to a middle of the container.
After I had changed Iterators so that they could be used with std::for_each,
I decided to go further and did some more changes. As a result,
- I have updated CINT implementation of some algorithms (they look now
more or less better in terms of the standard),
- TList and TObjArray can be now used with std::for_each, std::find_if,
std::count_if (probably with some more algorithms. I've listed here
only what has been *checked* by me). Other containers will be supported
in a next patch.
- A test program has been added: $ROOTSYS/test/stressIterators.cxx
- A tutorial macro has been added: $ROOTSYS/tutorials/cont/TListAndSTL.C
Patch has been verified on Linux, MacOS X, Solaris 10 i386 and Windows.
Revision
23059 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Apr 8 22:02:41 2008 UTC (6 years, 9 months ago) by
pcanal
File length: 6321 byte(s)
Diff to
previous 22961
The array elements can be retrieved with:
TObject *obj = array.At(i);
By default the TRefArray 'points' to the current process and can only
receive object that have been created in this process.
To point the TRefArray to a different process do:
TRefArray array( processId );
For example, if 'obj' is an instance that was created in the different
process and you do:
TRefArray array( TProcessID::GetProcessWithUID( obj ) );
Then
array.Add(obj);
is correct (obj comes from the process the array is pointed to
while
TObject *nobj = new TObject;
array.Add(nobj);
is incorrect since 'nobj' was created in a different process than the
one the array is pointed to. In thi case you will see error message:
Error in <TRefArray::AddAtAndExpand>: The object at 0x... is not registered in the process the TRefArray point to (pid = ProcessID../....)
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: 6241 byte(s)
Diff to
previous 20882
move the directories:
base clib cont meta metautils newdelete pcre rint thread unix utils
winnt zip
under the new core meta directory.
Revision
11431 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Mar 26 07:02:14 2005 UTC (9 years, 10 months ago) by
brun
Original Path:
trunk/cont/inc/TRefArray.h
File length: 6297 byte(s)
Diff to
previous 10520
From Philippe:
Fix for a problem reported by Reiner Hauser
I have a root file with a TBranchRef in it, to support
autoloading objects referenced via a TRef. This seems to work
fine with a single TRef in an object, but not the references
in a TRefArray.
Revision
5160 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Aug 20 15:17:36 2002 UTC (12 years, 5 months ago) by
brun
Original Path:
trunk/cont/inc/TRefArray.h
File length: 6089 byte(s)
Diff to
previous 5022
Implement a default constructor with no arguments. This constructor
does not allocate the internal array of UUIDs.
The other constructor (previous default constructor) has only one optional
argument.
Modify logic in TRefArray::Init to not call new if fSize is null.
Revision
2965 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Added
Wed Oct 3 19:55:27 2001 UTC (13 years, 3 months ago) by
brun
Original Path:
trunk/cont/inc/TRefArray.h
File length: 6330 byte(s)
First version of TRefArray (not yet fully operational). Mainly to test portability of code.
For more details on TRefArray, see comments in TRefArray.cxx.
The TRefArray is expected to play an important role in ROOT I/O and Trees.
The main advantage of TRefArray (see also TRef class) is to allow arrays
of references to TObjects in different I/O transactions without writing
the referenced objects each time.
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.