ROOT  6.06/09
Reference Guide
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
TRefArray Class Reference

An array of references to TObjects.

The array expands automatically when objects are added (shrinking can be done by hand using Expand() )

The TRefArray can be filled with:

array.Add(obj)
array.AddAt(obj,i)
but not array[i] = obj !!!

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:

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 this 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../....)

When a TRefArray is Streamed, only the pointer unique id is written, not the referenced object. TRefArray may be assigned to different branches of one Tree or several Trees. The branch containing the TRefArray can be read before or after the array (eg TClonesArray, STL vector,..) of the referenced objects.

See an example in $ROOTSYS/test/Event.h

RESTRICTIONS when using TRefArray

Use an array of TRef when one of the above restrictions is met.

The number of TRef handled by a single process id is limited to 16777215 (see TRef for more detail). When the TProcessID is full (has seen 16777215 objects), we switch to new one TProcessID maximum 65535 including the TProcessIDs read from file). However TRefArray can not switch to new TProcessID if they already contain objects.

When the TProcessID has been switched due to overflow and an new object is added to an existing, empty TRefArray, you will see:

Warning in <TRefArray::AddAtAndExpand>: The ProcessID for the 0x5f83819e8 has been switched to ProcessID4/6c89f37e-8259-11e2-9717-166ee183beef:4

If the TRefArray was not empty, you will see:

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 objects.

When running out of TProcessIds, you will see:

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.

Definition at line 43 of file TRefArray.h.

Public Types

typedef TRefArrayIter Iterator_t
 
- Public Types inherited from TCollection
enum  { kInitCapacity = 16, kInitHashTableCapacity = 17 }
 
- Public Types inherited from TObject
enum  EStatusBits {
  kCanDelete = BIT(0), kMustCleanup = BIT(3), kObjInCanvas = BIT(3), kIsReferenced = BIT(4),
  kHasUUID = BIT(5), kCannotPick = BIT(6), kNoContextMenu = BIT(8), kInvalidObject = BIT(13)
}
 
enum  { kIsOnHeap = 0x01000000, kNotDeleted = 0x02000000, kZombie = 0x04000000, kBitMask = 0x00ffffff }
 
enum  { kSingleKey = BIT(0), kOverwrite = BIT(1), kWriteDelete = BIT(2) }
 

Public Member Functions

 TRefArray (TProcessID *pid=0)
 
 TRefArray (Int_t s, TProcessID *pid)
 Create an object array. More...
 
 TRefArray (Int_t s, Int_t lowerBound=0, TProcessID *pid=0)
 Create an object array. More...
 
 TRefArray (const TRefArray &a)
 Create a copy of TRefArray a. More...
 
TRefArrayoperator= (const TRefArray &a)
 Assignment operator. More...
 
virtual ~TRefArray ()
 Usual destructor (The object pointed to by the array are never deleted). More...
 
virtual void Clear (Option_t *option="")
 Remove all objects from the array. More...
 
virtual void Compress ()
 Remove empty slots from array. More...
 
virtual void Delete (Option_t *option="")
 Remove all objects from the array and free the internal memory. More...
 
virtual void Expand (Int_t newSize)
 Expand or shrink the array to newSize elements. More...
 
Int_t GetEntries () const
 Return the number of objects in array (i.e. More...
 
Int_t GetEntriesFast () const
 
Int_t GetLast () const
 Return index of last object in array. More...
 
TObject ** GetObjectRef (const TObject *obj) const
 Return address of pointer obj. More...
 
TProcessIDGetPID () const
 
UInt_t GetUID (Int_t at) const
 Return UID of element at. More...
 
Bool_t IsEmpty () const
 
TIteratorMakeIterator (Bool_t dir=kIterForward) const
 Returns an array iterator. More...
 
void Add (TObject *obj)
 
virtual void AddFirst (TObject *obj)
 Add object in the first slot of the array. More...
 
virtual void AddLast (TObject *obj)
 Add object in the next empty slot in the array. More...
 
virtual void AddAt (TObject *obj, Int_t idx)
 Add object at position ids. More...
 
virtual void AddAtAndExpand (TObject *obj, Int_t idx)
 Add object at position idx. More...
 
virtual Int_t AddAtFree (TObject *obj)
 Return the position of the new object. More...
 
virtual void AddAfter (const TObject *after, TObject *obj)
 Add object in the slot after object after. More...
 
virtual void AddBefore (const TObject *before, TObject *obj)
 Add object in the slot before object before. More...
 
virtual TObjectRemoveAt (Int_t idx)
 Remove object at index idx. More...
 
virtual TObjectRemove (TObject *obj)
 Remove object from array. More...
 
TObjectAt (Int_t idx) const
 
TObjectBefore (const TObject *obj) const
 Return the object before obj. Returns 0 if obj is first object. More...
 
TObjectAfter (const TObject *obj) const
 Return the object after obj. Returns 0 if obj is last object. More...
 
TObjectFirst () const
 Return the object in the first slot. More...
 
TObjectLast () const
 Return the object in the last filled slot. Returns 0 if no entries. More...
 
virtual TObjectoperator[] (Int_t i) const
 
Int_t LowerBound () const
 
Int_t IndexOf (const TObject *obj) const
 
void SetLast (Int_t last)
 Set index of last object in array, effectively truncating the array. More...
 
virtual void Sort (Int_t upto=kMaxInt)
 If objects in array are sortable (i.e. More...
 
virtual Int_t BinarySearch (TObject *obj, Int_t upto=kMaxInt)
 Find object using a binary search. More...
 
- Public Member Functions inherited from TSeqCollection
virtual ~TSeqCollection ()
 
virtual void RemoveFirst ()
 
virtual void RemoveLast ()
 
virtual void RemoveAfter (TObject *after)
 
virtual void RemoveBefore (TObject *before)
 
Int_t LastIndex () const
 
virtual Bool_t IsSorted () const
 
void UnSort ()
 
Long64_t Merge (TCollection *list)
 Merge this collection with all collections coming in the input list. More...
 
- Public Member Functions inherited from TCollection
virtual ~TCollection ()
 
void AddVector (TObject *obj1,...)
 Add all arguments to the collection. More...
 
virtual void AddAll (const TCollection *col)
 
Bool_t AssertClass (TClass *cl) const
 Make sure all objects in this collection inherit from class cl. More...
 
void Browse (TBrowser *b)
 Browse this collection (called by TBrowser). More...
 
Int_t Capacity () const
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an collection using the Streamer facility. More...
 
Int_t Compare (const TObject *obj) const
 Compare two TCollection objects. More...
 
Bool_t Contains (const char *name) const
 
Bool_t Contains (const TObject *obj) const
 
virtual void Draw (Option_t *option="")
 Draw all objects in this collection. More...
 
virtual void Dump () const
 Dump all objects in this collection. More...
 
virtual TObjectFindObject (const char *name) const
 Find an object in this collection using its name. More...
 
TObjectoperator() (const char *name) const
 Find an object in this collection by name. More...
 
virtual TObjectFindObject (const TObject *obj) const
 Find an object in this collection using the object's IsEqual() member function. More...
 
virtual const char * GetName () const
 Return name of this collection. More...
 
virtual Int_t GetSize () const
 
virtual Int_t GrowBy (Int_t delta) const
 Increase the collection's capacity by delta slots. More...
 
ULong_t Hash () const
 Return hash value for this object. More...
 
Bool_t IsArgNull (const char *where, const TObject *obj) const
 Returns true if object is a null pointer. More...
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More...
 
Bool_t IsOwner () const
 
Bool_t IsSortable () const
 
virtual void ls (Option_t *option="") const
 List (ls) all objects in this collection. More...
 
virtual TIteratorMakeReverseIterator () const
 
virtual void Paint (Option_t *option="")
 Paint all objects in this collection. More...
 
virtual void Print (Option_t *option="") const
 Default print for collections, calls Print(option, 1). More...
 
virtual void Print (Option_t *option, Int_t recurse) const
 Print the collection header and its elements. More...
 
virtual void Print (Option_t *option, const char *wildcard, Int_t recurse=1) const
 Print the collection header and its elements that match the wildcard. More...
 
virtual void Print (Option_t *option, TPRegexp &regexp, Int_t recurse=1) const
 Print the collection header and its elements that match the regexp. More...
 
virtual void RecursiveRemove (TObject *obj)
 Remove object from this collection and recursively remove the object from all other objects (and collections). More...
 
virtual void RemoveAll (TCollection *col)
 Remove all objects in collection col from this collection. More...
 
void RemoveAll ()
 
void SetCurrentCollection ()
 Set this collection to be the globally accesible collection. More...
 
void SetName (const char *name)
 
virtual void SetOwner (Bool_t enable=kTRUE)
 Set whether this collection is the owner (enable==true) of its content. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0)
 Write all objects in this collection. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
 Write all objects in this collection. More...
 
TIter begin () const
 
TIter end () const
 
- Public Member Functions inherited from TObject
 TObject ()
 
 TObject (const TObject &object)
 TObject copy ctor. More...
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator. More...
 
virtual ~TObject ()
 TObject destructor. More...
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad. More...
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs. More...
 
virtual void Copy (TObject &object) const
 Copy this to obj. More...
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object. More...
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs. More...
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current pad. More...
 
virtual void Execute (const char *method, const char *params, Int_t *error=0)
 Execute method on this object with the given parameter string, e.g. More...
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 Execute method on this object with parameters stored in the TObjArray. More...
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py). More...
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object. More...
 
virtual UInt_t GetUniqueID () const
 Return the unique object id. More...
 
virtual const char * GetIconName () const
 Returns mime type name of object. More...
 
virtual Option_tGetOption () const
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual const char * GetTitle () const
 Returns title of object. More...
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out. More...
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname". More...
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl. More...
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas. More...
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory). More...
 
Bool_t IsOnHeap () const
 
Bool_t IsZombie () const
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification. More...
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list. More...
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory. More...
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename. More...
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out". More...
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object. More...
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id. More...
 
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. More...
 
voidoperator new (size_t sz)
 
voidoperator new[] (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz, void *vp)
 
void operator delete (void *ptr)
 Operator delete. More...
 
void operator delete[] (void *ptr)
 Operator delete []. More...
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f. More...
 
void SetBit (UInt_t f)
 
void ResetBit (UInt_t f)
 
Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
void InvertBit (UInt_t f)
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message. More...
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message. More...
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message. More...
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message. More...
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract. More...
 
void MayNotUse (const char *method) const
 Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). More...
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete. More...
 

Protected Member Functions

Bool_t BoundsOk (const char *where, Int_t at) const
 
void Init (Int_t s, Int_t lowerBound)
 Initialize a TRefArray. More...
 
Bool_t OutOfBoundsError (const char *where, Int_t i) const
 Generate an out-of-bounds error. Always returns false. More...
 
Int_t GetAbsLast () const
 Return absolute index to last object in array. More...
 
TObjectGetFromTable (Int_t idx) const
 the reference may be in the TRefTable More...
 
Bool_t GetObjectUID (Int_t &uid, TObject *obj, const char *methodname)
 Private/static function, check for validity of pid. More...
 
- Protected Member Functions inherited from TSeqCollection
 TSeqCollection ()
 
virtual void Changed ()
 
- Protected Member Functions inherited from TCollection
 TCollection ()
 
virtual void PrintCollectionHeader (Option_t *option) const
 Print the collection header. More...
 
virtual const char * GetCollectionEntryName (TObject *entry) const
 For given collection entry return the string that is used to identify the object and, potentially, perform wildcard/regexp filtering on. More...
 
virtual void PrintCollectionEntry (TObject *entry, Option_t *option, Int_t recurse) const
 Print the collection entry. More...
 
- Protected Member Functions inherited from TObject
void MakeZombie ()
 
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 

Protected Attributes

TProcessIDfPID
 
UInt_tfUIDs
 
Int_t fLowerBound
 
Int_t fLast
 
- Protected Attributes inherited from TSeqCollection
Bool_t fSorted
 
- Protected Attributes inherited from TCollection
TString fName
 
Int_t fSize
 

Friends

class TRefArrayIter
 

Additional Inherited Members

- Static Public Member Functions inherited from TSeqCollection
static Int_t ObjCompare (TObject *a, TObject *b)
 Compare to objects in the collection. Use member Compare() of object a. More...
 
static void QSort (TObject **a, Int_t first, Int_t last)
 Sort array of TObject pointers using a quicksort algorithm. More...
 
static void QSort (TObject **a, TObject **b, Int_t first, Int_t last)
 
static void QSort (TObject **a, Int_t nBs, TObject ***b, Int_t first, Int_t last)
 Sort array a of TObject pointers using a quicksort algorithm. More...
 
- Static Public Member Functions inherited from TCollection
static TCollectionGetCurrentCollection ()
 Return the globally accessible collection. More...
 
static void StartGarbageCollection ()
 Set up for garbage collection. More...
 
static void GarbageCollect (TObject *obj)
 Add to the list of things to be cleaned up. More...
 
static void EmptyGarbageCollection ()
 Do the garbage collection. More...
 
- Static Public Member Functions inherited from TObject
static Long_t GetDtorOnly ()
 Return destructor only flag. More...
 
static void SetDtorOnly (void *obj)
 Set destructor only flag. More...
 
static Bool_t GetObjectStat ()
 Get status of object stat flag. More...
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable. More...
 
- Protected Types inherited from TCollection
enum  { kIsOwner = BIT(14) }
 

#include <TRefArray.h>

+ Inheritance diagram for TRefArray:
+ Collaboration diagram for TRefArray:

Member Typedef Documentation

Definition at line 61 of file TRefArray.h.

Constructor & Destructor Documentation

TRefArray::TRefArray ( TProcessID pid = 0)
TRefArray::TRefArray ( Int_t  s,
TProcessID pid 
)

Create an object array.

Using s one can set the array size and lowerBound can be used to set the array lowerbound index (default is 0).

Definition at line 124 of file TRefArray.cxx.

TRefArray::TRefArray ( Int_t  s,
Int_t  lowerBound = 0,
TProcessID pid = 0 
)

Create an object array.

Using s one can set the array size and lowerBound can be used to set the array lowerbound index (default is 0).

Definition at line 141 of file TRefArray.cxx.

TRefArray::TRefArray ( const TRefArray a)

Create a copy of TRefArray a.

Definition at line 156 of file TRefArray.cxx.

TRefArray::~TRefArray ( )
virtual

Usual destructor (The object pointed to by the array are never deleted).

Definition at line 196 of file TRefArray.cxx.

Member Function Documentation

void TRefArray::Add ( TObject obj)
inlinevirtual

Reimplemented from TSeqCollection.

Definition at line 84 of file TRefArray.h.

Referenced by TFoam::MakeActiveList().

void TRefArray::AddAfter ( const TObject after,
TObject obj 
)
virtual

Add object in the slot after object after.

If after=0 add object in the last empty slot. Note that this will overwrite any object that might have already been in this slot. For insertion semantics use either a TList or a TOrdCollection.

Implements TSeqCollection.

Definition at line 317 of file TRefArray.cxx.

void TRefArray::AddAt ( TObject obj,
Int_t  idx 
)
virtual

Add object at position ids.

Give an error when idx is out of bounds (i.e. the array is not expanded).

Implements TSeqCollection.

Definition at line 358 of file TRefArray.cxx.

Referenced by AddBefore(), TPointSet3D::CopyIds(), and TPointSet3D::SetPointId().

void TRefArray::AddAtAndExpand ( TObject obj,
Int_t  idx 
)
virtual

Add object at position idx.

If idx is larger than the current size of the array, expand the array (double its size).

Definition at line 335 of file TRefArray.cxx.

Referenced by AddAfter(), AddLast(), and TEveDigitSet::DigitId().

Int_t TRefArray::AddAtFree ( TObject obj)
virtual

Return the position of the new object.

Find the first empty cell or AddLast if there is no empty cell

Definition at line 376 of file TRefArray.cxx.

void TRefArray::AddBefore ( const TObject before,
TObject obj 
)
virtual

Add object in the slot before object before.

If before=0 add object in the first slot. Note that this will overwrite any object that might have already been in this slot. For insertion semantics use either a TList or a TOrdCollection.

Implements TSeqCollection.

Definition at line 293 of file TRefArray.cxx.

void TRefArray::AddFirst ( TObject obj)
virtual

Add object in the first slot of the array.

This will overwrite the first element that might have been there. To have insertion semantics use either a TList or a TOrdCollection.

Implements TSeqCollection.

Definition at line 266 of file TRefArray.cxx.

Referenced by AddBefore().

void TRefArray::AddLast ( TObject obj)
virtual

Add object in the next empty slot in the array.

Expand the array if necessary.

Implements TSeqCollection.

Definition at line 282 of file TRefArray.cxx.

Referenced by Add(), AddAfter(), and AddAtFree().

TObject * TRefArray::After ( const TObject obj) const
virtual

Return the object after obj. Returns 0 if obj is last object.

Implements TSeqCollection.

Definition at line 400 of file TRefArray.cxx.

TObject * TRefArray::At ( Int_t  idx) const
inlinevirtual
TObject * TRefArray::Before ( const TObject obj) const
virtual

Return the object before obj. Returns 0 if obj is first object.

Implements TSeqCollection.

Definition at line 413 of file TRefArray.cxx.

Int_t TRefArray::BinarySearch ( TObject obj,
Int_t  upto = kMaxInt 
)
virtual

Find object using a binary search.

Array must first have been sorted. Search can be limited by setting upto to desired index.

Definition at line 807 of file TRefArray.cxx.

Bool_t TRefArray::BoundsOk ( const char *  where,
Int_t  at 
) const
inlineprotected

Definition at line 163 of file TRefArray.h.

Referenced by AddAt(), At(), GetUID(), operator[](), RemoveAt(), and SetLast().

void TRefArray::Clear ( Option_t option = "")
virtual

Remove all objects from the array.

Implements TCollection.

Definition at line 426 of file TRefArray.cxx.

void TRefArray::Compress ( )
virtual

Remove empty slots from array.

Definition at line 438 of file TRefArray.cxx.

void TRefArray::Delete ( Option_t option = "")
virtual

Remove all objects from the array and free the internal memory.

Implements TCollection.

Definition at line 457 of file TRefArray.cxx.

void TRefArray::Expand ( Int_t  newSize)
virtual

Expand or shrink the array to newSize elements.

Definition at line 473 of file TRefArray.cxx.

Referenced by AddAtAndExpand(), TPointSet3D::ClearIds(), TPointSet3D::CopyIds(), TEveDigitSet::ReleaseIds(), and TPointSet3D::SetPointId().

TObject * TRefArray::First ( ) const
virtual

Return the object in the first slot.

Implements TSeqCollection.

Definition at line 565 of file TRefArray.cxx.

Int_t TRefArray::GetAbsLast ( ) const
protected

Return absolute index to last object in array.

Returns -1 in case array is empty.

Definition at line 602 of file TRefArray.cxx.

Referenced by AddAt(), AddAtAndExpand(), AddAtFree(), AddLast(), GetEntriesFast(), GetLast(), GetObjectUID(), IsEmpty(), and Last().

Int_t TRefArray::GetEntries ( ) const
virtual

Return the number of objects in array (i.e.

number of non-empty slots). Attention: use this method ONLY if you want to know the number of non-empty slots. This function loops over the complete array and is therefore very slow when applied in a loop. Most of the time you better use GetLast()+1.

Reimplemented from TCollection.

Definition at line 588 of file TRefArray.cxx.

Int_t TRefArray::GetEntriesFast ( ) const
inline

Definition at line 74 of file TRefArray.h.

Referenced by TRefArrayProxy::GetCounterValue().

TObject * TRefArray::GetFromTable ( Int_t  idx) const
protected

the reference may be in the TRefTable

Definition at line 498 of file TRefArray.cxx.

Referenced by At(), and operator[]().

Int_t TRefArray::GetLast ( ) const
virtual

Return index of last object in array.

Returns lowerBound-1 in case array is empty.

Reimplemented from TSeqCollection.

Definition at line 622 of file TRefArray.cxx.

Referenced by AddAtFree().

TObject ** TRefArray::GetObjectRef ( const TObject obj) const
virtual

Return address of pointer obj.

Implements TCollection.

Definition at line 630 of file TRefArray.cxx.

Bool_t TRefArray::GetObjectUID ( Int_t uid,
TObject obj,
const char *  methodname 
)
protected

Private/static function, check for validity of pid.

Definition at line 207 of file TRefArray.cxx.

Referenced by AddAt(), AddAtAndExpand(), AddAtFree(), and AddFirst().

TProcessID* TRefArray::GetPID ( ) const
inline

Definition at line 79 of file TRefArray.h.

UInt_t TRefArray::GetUID ( Int_t  at) const

Return UID of element at.

Definition at line 640 of file TRefArray.cxx.

Int_t TRefArray::IndexOf ( const TObject obj) const
virtual
  • obj != 0 Return index of object in array. Returns lowerBound-1 in case array doesn't contain the obj.
  • obj == 0 Return the index of the first empty slot. Returns lowerBound-1 in case array doesn't contain any empty slot.

Reimplemented from TSeqCollection.

Definition at line 658 of file TRefArray.cxx.

Referenced by AddAfter(), AddBefore(), After(), Before(), and Remove().

void TRefArray::Init ( Int_t  s,
Int_t  lowerBound 
)
protected

Initialize a TRefArray.

Definition at line 680 of file TRefArray.cxx.

Referenced by operator=(), and TRefArray().

Bool_t TRefArray::IsEmpty ( ) const
inlinevirtual

Reimplemented from TCollection.

Definition at line 81 of file TRefArray.h.

TObject * TRefArray::Last ( ) const
virtual

Return the object in the last filled slot. Returns 0 if no entries.

Implements TSeqCollection.

Definition at line 573 of file TRefArray.cxx.

Referenced by AddAtFree().

Int_t TRefArray::LowerBound ( ) const
inline

Definition at line 101 of file TRefArray.h.

Referenced by TRefArrayIter::Next().

TIterator * TRefArray::MakeIterator ( Bool_t  dir = kIterForward) const
virtual

Returns an array iterator.

Implements TCollection.

Definition at line 703 of file TRefArray.cxx.

TRefArray & TRefArray::operator= ( const TRefArray a)

Assignment operator.

Definition at line 172 of file TRefArray.cxx.

TObject * TRefArray::operator[] ( Int_t  i) const
inlinevirtual

Definition at line 170 of file TRefArray.h.

Bool_t TRefArray::OutOfBoundsError ( const char *  where,
Int_t  i 
) const
protected

Generate an out-of-bounds error. Always returns false.

Definition at line 711 of file TRefArray.cxx.

Referenced by BoundsOk().

TObject * TRefArray::Remove ( TObject obj)
virtual

Remove object from array.

Implements TCollection.

Definition at line 745 of file TRefArray.cxx.

TObject * TRefArray::RemoveAt ( Int_t  idx)
virtual

Remove object at index idx.

Reimplemented from TSeqCollection.

Definition at line 720 of file TRefArray.cxx.

void TRefArray::SetLast ( Int_t  last)

Set index of last object in array, effectively truncating the array.

Use carefully since whenever last position has to be recalculated, e.g. after a Remove() or Sort() it will be reset to the last non-empty slot. If last is -2 this will force the recalculation of the last used slot.

Definition at line 771 of file TRefArray.cxx.

void TRefArray::Sort ( Int_t  upto = kMaxInt)
virtual

If objects in array are sortable (i.e.

IsSortable() returns true for all objects) then sort array.

Definition at line 783 of file TRefArray.cxx.

Friends And Related Function Documentation

friend class TRefArrayIter
friend

Definition at line 45 of file TRefArray.h.

Referenced by MakeIterator().

Member Data Documentation

Int_t TRefArray::fLast
protected
Int_t TRefArray::fLowerBound
protected
TProcessID* TRefArray::fPID
protected
UInt_t* TRefArray::fUIDs
protected

The documentation for this class was generated from the following files: