[root] / trunk / core / cont / inc / TRefArray.h Repository:
ViewVC logotype

Log of /trunk/core/cont/inc/TRefArray.h

Parent Directory Parent Directory


Links to HEAD: (view) (download) (as text) (annotate)
Sticky Revision:

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 32781 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 26 13:06:14 2010 UTC (4 years, 10 months ago) by pcanal
File length: 7133 byte(s)
Diff to previous 32775
Fix icc warning

Revision 32775 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 26 02:18:33 2010 UTC (4 years, 10 months ago) by pcanal
File length: 7101 byte(s)
Diff to previous 23530
Be quite little Weffc++, be very quiet

Revision 23530 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Apr 24 16:22:51 2008 UTC (6 years, 9 months ago) by rdm
File length: 6954 byte(s)
Diff to previous 23198
From Anar:
iterator of TRefArray objects can be now used with std::for_each, std::find_if,
std::count_if and the like.

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 20882 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 19 11:31:26 2007 UTC (7 years, 2 months ago) by rdm
Original Path: trunk/cont/inc/TRefArray.h
File length: 6241 byte(s)
Diff to previous 19826
Set property svn:eol-style LF on all source and Makefiles. This should avoid
problems with Win32 line endings ending up in the repository. All MS tools
support LF eols fine.

Revision 19826 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:56:11 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/cont/inc/TRefArray.h
File length: 6241 byte(s)
Diff to previous 19825
imported svn:keywords Id property

Revision 19825 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:49:10 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/cont/inc/TRefArray.h
File length: 6290 byte(s)
Diff to previous 17670
remove :$ from tag line

Revision 17670 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Feb 3 18:52:34 2007 UTC (7 years, 11 months ago) by brun
Original Path: trunk/cont/inc/TRefArray.h
File length: 6300 byte(s)
Diff to previous 16507
Use forward declaration of TSystem

Revision 16507 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Oct 11 10:26:23 2006 UTC (8 years, 3 months ago) by rdm
Original Path: trunk/cont/inc/TRefArray.h
File length: 6380 byte(s)
Diff to previous 11431
From Federico:
fixes for the -effc++ g++ option.

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 10520 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Nov 12 21:51:18 2004 UTC (10 years, 2 months ago) by brun
Original Path: trunk/cont/inc/TRefArray.h
File length: 6115 byte(s)
Diff to previous 5160
Implement a sugestion from Eddy Offermann: add constness to
the following functions of the collection classes
AddAfter, AddBefore, After, Before

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 5022 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 29 09:22:29 2002 UTC (12 years, 5 months ago) by rdm
Original Path: trunk/cont/inc/TRefArray.h
File length: 6103 byte(s)
Diff to previous 4664
made argument of GetObjectRef() a const TObject*. Idem for TMap::GetValue().
Suggestion by Axel.

Revision 4664 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 4 19:51:14 2002 UTC (12 years, 7 months ago) by brun
Original Path: trunk/cont/inc/TRefArray.h
File length: 6097 byte(s)
Diff to previous 4595
Add two new getter functions:
   TProcessID      *GetPID() const {return fPID;}
   UInt_t           GetUID(Int_t at) const;

Revision 4595 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat May 25 21:00:36 2002 UTC (12 years, 8 months ago) by brun
Original Path: trunk/cont/inc/TRefArray.h
File length: 6003 byte(s)
Diff to previous 4420
Implemnt:
 -    virtual TObject *operator[](Int_t i) const;
 -    TRefArrayIter::next

Revision 4420 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 30 16:49:07 2002 UTC (12 years, 8 months ago) by brun
Original Path: trunk/cont/inc/TRefArray.h
File length: 5878 byte(s)
Diff to previous 3298
Remove obsolete function TRefArray::UncheckedAt

Revision 3298 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Nov 28 14:51:43 2001 UTC (13 years, 1 month ago) by brun
Original Path: trunk/cont/inc/TRefArray.h
File length: 5955 byte(s)
Diff to previous 3046
Changes to be in phase with the new version of TRef.

Revision 3046 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 16 17:27:35 2001 UTC (13 years, 3 months ago) by rdm
Original Path: trunk/cont/inc/TRefArray.h
File length: 6286 byte(s)
Diff to previous 2986
At() was not taking fLowerBound into account.

Revision 2986 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 5 16:38:04 2001 UTC (13 years, 3 months ago) by brun
Original Path: trunk/cont/inc/TRefArray.h
File length: 6464 byte(s)
Diff to previous 2979
New version of TRefArray with:
  - additional protections
  - store object address directly in fUIDs instead of address - gSystem
  - Delete interface functions MakeUID and MakeObject

Revision 2979 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Oct 4 19:26:42 2001 UTC (13 years, 3 months ago) by brun
Original Path: trunk/cont/inc/TRefArray.h
File length: 6578 byte(s)
Diff to previous 2965
TRefArray now operational. Examples coming in the next few days.

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.

  Diffs between and
  Type of Diff should be a

Sort log by:

Subversion Admin
ViewVC Help
Powered by ViewVC 1.0.9