Logo ROOT  
Reference Guide
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);
Mother of all ROOT objects.
Definition: TObject.h:41

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 );
An array of references to TObjects.
Definition: TRefArray.h:33

For example, if 'obj' is an instance that was created in the different process and you do:

static TProcessID * GetProcessWithUID(const TObject *obj)
static function returning a pointer to TProcessID with its pid encoded in the highest byte of obj->Ge...
Definition: TProcessID.cxx:297

Then

array.Add(obj);

is correct (obj comes from the process the array is pointed to while

TObject *nobj = new TObject;
array.Add(nobj);
TObject()
TObject constructor.
Definition: TObject.h:256

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../....)
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Definition: TObject.cxx:963
Double_t x[n]
Definition: legend1.C:17

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

  • Elements in a TRefArray cannot point to a TFile or TDirectory.
  • All elements of a TRefArray must be set in the same process, In particular, one cannot modify some elements of the array in a different process.

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
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
Definition: TObject.cxx:949

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.
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t points

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.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void when
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
Definition: TObject.cxx:991
A TProcessID identifies a ROOT job in a unique way in time and space.
Definition: TProcessID.h:74
Persistent Reference link to a TObject A TRef is a lightweight object pointing to any TObject.
Definition: TRef.h:32
const T Maximum(const T &lhs, const T &rhs)
maximum.
Definition: Functions.h:86

Definition at line 33 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  {
  kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 ,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = (1ULL << ( 0 )) , kOverwrite = (1ULL << ( 1 )) , kWriteDelete = (1ULL << ( 2 )) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = (1ULL << ( 3 )) }
 
enum  EStatusBits {
  kCanDelete = (1ULL << ( 0 )) , kMustCleanup = (1ULL << ( 3 )) , kIsReferenced = (1ULL << ( 4 )) , kHasUUID = (1ULL << ( 5 )) ,
  kCannotPick = (1ULL << ( 6 )) , kNoContextMenu = (1ULL << ( 8 )) , kInvalidObject = (1ULL << ( 13 ))
}
 

Public Member Functions

 TRefArray (const TRefArray &a)
 Create a copy of TRefArray a. More...
 
 TRefArray (Int_t s, Int_t lowerBound=0, TProcessID *pid=nullptr)
 Create an object array. More...
 
 TRefArray (Int_t s, TProcessID *pid)
 Create an object array. More...
 
 TRefArray (TProcessID *pid=nullptr)
 default constructor More...
 
virtual ~TRefArray ()
 Usual destructor (The object pointed to by the array are never deleted). More...
 
void Add (TObject *obj) override
 
void AddAfter (const TObject *after, TObject *obj) override
 Add object in the slot after object after. More...
 
void AddAt (TObject *obj, Int_t idx) override
 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...
 
void AddBefore (const TObject *before, TObject *obj) override
 Add object in the slot before object before. More...
 
void AddFirst (TObject *obj) override
 Add object in the first slot of the array. More...
 
void AddLast (TObject *obj) override
 Add object in the next empty slot in the array. More...
 
TObjectAfter (const TObject *obj) const override
 Return the object after obj. Returns 0 if obj is last object. More...
 
TObjectAt (Int_t idx) const override
 
TObjectBefore (const TObject *obj) const override
 Return the object before obj. Returns 0 if obj is first object. More...
 
virtual Int_t BinarySearch (TObject *obj, Int_t upto=kMaxInt)
 Find object using a binary search. More...
 
void Clear (Option_t *option="") override
 Remove all objects from the array. More...
 
virtual void Compress ()
 Remove empty slots from array. More...
 
void Delete (Option_t *option="") override
 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...
 
TObjectFirst () const override
 Return the object in the first slot. More...
 
Int_t GetEntries () const override
 Return the number of objects in array (i.e. More...
 
Int_t GetEntriesFast () const
 
Int_t GetLast () const override
 Return index of last object in array. More...
 
TObject ** GetObjectRef (const TObject *obj) const override
 Return address of pointer obj. More...
 
TProcessIDGetPID () const
 
UInt_t GetUID (Int_t at) const
 Return UID of element at. More...
 
Int_t IndexOf (const TObject *obj) const override
 
TClassIsA () const override
 
Bool_t IsEmpty () const override
 
TObjectLast () const override
 Return the object in the last filled slot. Returns 0 if no entries. More...
 
Int_t LowerBound () const
 
TIteratorMakeIterator (Bool_t dir=kIterForward) const override
 Returns an array iterator. More...
 
TRefArrayoperator= (const TRefArray &a)
 Assignment operator. More...
 
virtual TObjectoperator[] (Int_t i) const
 
TObjectRemove (TObject *obj) override
 Remove object from array. More...
 
TObjectRemoveAt (Int_t idx) override
 Remove object at index idx. More...
 
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...
 
void Streamer (TBuffer &) override
 Stream all objects in the array to or from the I/O buffer. More...
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- Public Member Functions inherited from TSeqCollection
virtual ~TSeqCollection ()
 
void Add (TObject *obj) override
 
virtual void AddAfter (const TObject *after, TObject *obj)=0
 
virtual void AddAt (TObject *obj, Int_t idx)=0
 
virtual void AddBefore (const TObject *before, TObject *obj)=0
 
virtual void AddFirst (TObject *obj)=0
 
virtual void AddLast (TObject *obj)=0
 
virtual TObjectAfter (const TObject *obj) const =0
 
virtual TObjectAt (Int_t idx) const =0
 
virtual TObjectBefore (const TObject *obj) const =0
 
virtual TObjectFirst () const =0
 
virtual Int_t GetLast () const
 Returns index of last object in collection. More...
 
virtual Int_t IndexOf (const TObject *obj) const
 Return index of object in collection. More...
 
TClassIsA () const override
 
virtual Bool_t IsSorted () const
 
virtual TObjectLast () const =0
 
Int_t LastIndex () const
 
Long64_t Merge (TCollection *list)
 Merge this collection with all collections coming in the input list. More...
 
virtual void RemoveAfter (TObject *after)
 
virtual TObjectRemoveAt (Int_t idx)
 
virtual void RemoveBefore (TObject *before)
 
virtual void RemoveFirst ()
 
virtual void RemoveLast ()
 
void Streamer (TBuffer &) override
 Stream all objects in the collection to or from the I/O buffer. More...
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
void UnSort ()
 
- Public Member Functions inherited from TCollection
virtual ~TCollection ()
 TNamed destructor. More...
 
virtual void Add (TObject *obj)=0
 
virtual void AddAll (const TCollection *col)
 Add all objects from collection col to this collection. More...
 
void AddVector (TObject *obj1,...)
 Add all arguments to the collection. More...
 
Bool_t AssertClass (TClass *cl) const
 Make sure all objects in this collection inherit from class cl. More...
 
TIter begin () const
 
void Browse (TBrowser *b) override
 Browse this collection (called by TBrowser). More...
 
Int_t Capacity () const
 
void Clear (Option_t *option="") override=0
 
TObjectClone (const char *newname="") const override
 Make a clone of an collection using the Streamer facility. More...
 
Int_t Compare (const TObject *obj) const override
 Compare two TCollection objects. More...
 
Bool_t Contains (const char *name) const
 
Bool_t Contains (const TObject *obj) const
 
void Delete (Option_t *option="") override=0
 Delete this object. More...
 
void Draw (Option_t *option="") override
 Draw all objects in this collection. More...
 
void Dump () const override
 Dump all objects in this collection. More...
 
TIter end () const
 
TObjectFindObject (const char *name) const override
 Find an object in this collection using its name. More...
 
TObjectFindObject (const TObject *obj) const override
 Find an object in this collection using the object's IsEqual() member function. More...
 
virtual Int_t GetEntries () const
 
const char * GetName () const override
 Return name of this collection. More...
 
virtual TObject ** GetObjectRef (const TObject *obj) const =0
 
virtual Int_t GetSize () const
 Return the capacity of the collection, i.e. More...
 
virtual Int_t GrowBy (Int_t delta) const
 Increase the collection's capacity by delta slots. More...
 
ULong_t Hash () const override
 Return hash value for this object. More...
 
TClassIsA () const override
 
Bool_t IsArgNull (const char *where, const TObject *obj) const
 Returns true if object is a null pointer. More...
 
virtual Bool_t IsEmpty () const
 
Bool_t IsFolder () const override
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More...
 
Bool_t IsOwner () const
 
Bool_t IsSortable () const override
 
R__ALWAYS_INLINE Bool_t IsUsingRWLock () const
 
void ls (Option_t *option="") const override
 List (ls) all objects in this collection. More...
 
virtual TIteratorMakeIterator (Bool_t dir=kIterForward) const =0
 
virtual TIteratorMakeReverseIterator () const
 
Bool_t Notify () override
 'Notify' all objects in this collection. More...
 
TObjectoperator() (const char *name) const
 Find an object in this collection by name. More...
 
void Paint (Option_t *option="") override
 Paint all objects in this collection. 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, Int_t recurse) const
 Print the collection header and its elements. 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...
 
void Print (Option_t *option="") const override
 Default print for collections, calls Print(option, 1). More...
 
void RecursiveRemove (TObject *obj) override
 Remove object from this collection and recursively remove the object from all other objects (and collections). More...
 
virtual TObjectRemove (TObject *obj)=0
 
void RemoveAll ()
 
virtual void RemoveAll (TCollection *col)
 Remove all objects in collection col from this collection. More...
 
void SetCurrentCollection ()
 Set this collection to be the globally accessible 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...
 
void Streamer (TBuffer &) override
 Stream all objects in the collection to or from the I/O buffer. More...
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
virtual bool UseRWLock (Bool_t enable=true)
 Set this collection to use a RW lock upon access, making it thread safe. More...
 
Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const override
 Write all objects in this collection. More...
 
Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) override
 Write all objects in this collection. More...
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor. More...
 
 TObject (const TObject &object)
 TObject copy ctor. More...
 
virtual ~TObject ()
 TObject destructor. 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...
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad. More...
 
virtual void Browse (TBrowser *b)
 Browse object. May be overridden for another default action. More...
 
ULong_t CheckedHash ()
 Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. More...
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs. More...
 
virtual void Clear (Option_t *="")
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility. More...
 
virtual Int_t Compare (const TObject *obj) const
 Compare abstract method. More...
 
virtual void Copy (TObject &object) const
 Copy this to obj. More...
 
virtual void Delete (Option_t *option="")
 Delete this object. More...
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object. More...
 
virtual void Draw (Option_t *option="")
 Default Draw method for all objects. 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 selected pad for instance with: gROOT->SetSelectedPad(gPad). More...
 
virtual void Dump () const
 Dump contents of object on stdout. More...
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message. More...
 
virtual void Execute (const char *method, const char *params, Int_t *error=nullptr)
 Execute method on this object with the given parameter string, e.g. More...
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr)
 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 void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message. More...
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes. More...
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes. More...
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object. More...
 
virtual const char * GetIconName () const
 Returns mime type name of object. More...
 
virtual const char * GetName () const
 Returns name of object. More...
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual Option_tGetOption () const
 
virtual const char * GetTitle () const
 Returns title of object. More...
 
virtual UInt_t GetUniqueID () const
 Return the unique object id. More...
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out. More...
 
virtual ULong_t Hash () const
 Return hash value for this object. More...
 
Bool_t HasInconsistentHash () const
 Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. More...
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message. 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...
 
void InvertBit (UInt_t f)
 
virtual TClassIsA () const
 
Bool_t IsDestructed () const
 IsDestructed. More...
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory). More...
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More...
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
virtual Bool_t IsSortable () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
virtual void ls (Option_t *option="") const
 The ls function lists the contents of a class on stdout. 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...
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification. More...
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete. More...
 
void operator delete (void *ptr)
 Operator delete. More...
 
void operator delete[] (void *ptr)
 Operator delete []. More...
 
void * operator new (size_t sz)
 
void * operator new (size_t sz, void *vp)
 
void * operator new[] (size_t sz)
 
void * operator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator. More...
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself. More...
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list. More...
 
virtual void Print (Option_t *option="") const
 This method must be overridden when a class wants to print itself. More...
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory. More...
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list. More...
 
void ResetBit (UInt_t f)
 
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...
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f. 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 Streamer (TBuffer &)
 Stream an object of class TObject. More...
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
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...
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message. More...
 
virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory. More...
 
virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory. More...
 

Static Public Member Functions

static TClassClass ()
 
static const char * Class_Name ()
 
static Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TSeqCollection
static TClassClass ()
 
static const char * Class_Name ()
 
static Version_t Class_Version ()
 
static const char * DeclFileName ()
 
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, Int_t nBs, TObject ***b, Int_t first, Int_t last)
 Sort array a of TObject pointers using a quicksort algorithm. More...
 
static void QSort (TObject **a, TObject **b, Int_t first, Int_t last)
 
- Static Public Member Functions inherited from TCollection
static TClassClass ()
 
static const char * Class_Name ()
 
static Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static void EmptyGarbageCollection ()
 Do the garbage collection. More...
 
static void GarbageCollect (TObject *obj)
 Add to the list of things to be cleaned up. More...
 
static TCollectionGetCurrentCollection ()
 Return the globally accessible collection. More...
 
static void StartGarbageCollection ()
 Set up for garbage collection. More...
 
- Static Public Member Functions inherited from TObject
static TClassClass ()
 
static const char * Class_Name ()
 
static Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static Longptr_t GetDtorOnly ()
 Return destructor only flag. More...
 
static Bool_t GetObjectStat ()
 Get status of object stat flag. More...
 
static void SetDtorOnly (void *obj)
 Set destructor only flag. More...
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable. More...
 

Protected Member Functions

Bool_t BoundsOk (const char *where, Int_t at) const
 
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...
 
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...
 
- Protected Member Functions inherited from TSeqCollection
 TSeqCollection ()
 
virtual void Changed ()
 
- Protected Member Functions inherited from TCollection
 TCollection ()
 
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...
 
virtual void PrintCollectionHeader (Option_t *option) const
 Print the collection header. More...
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 
void MakeZombie ()
 

Protected Attributes

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

Friends

class TRefArrayIter
 

Additional Inherited Members

- Protected Types inherited from TCollection
enum  EStatusBits { kIsOwner = (1ULL << ( 14 )) , kUseRWLock = (1ULL << ( 16 )) }
 
- Protected Types inherited from TObject
enum  { kOnlyPrepStep = (1ULL << ( 3 )) }
 

#include <TRefArray.h>

Inheritance diagram for TRefArray:
[legend]

Member Typedef Documentation

◆ Iterator_t

Definition at line 51 of file TRefArray.h.

Constructor & Destructor Documentation

◆ TRefArray() [1/4]

TRefArray::TRefArray ( TProcessID pid = nullptr)

default constructor

Definition at line 109 of file TRefArray.cxx.

◆ TRefArray() [2/4]

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() [3/4]

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

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 142 of file TRefArray.cxx.

◆ TRefArray() [4/4]

TRefArray::TRefArray ( const TRefArray a)

Create a copy of TRefArray a.

Definition at line 158 of file TRefArray.cxx.

◆ ~TRefArray()

TRefArray::~TRefArray ( )
virtual

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

Definition at line 197 of file TRefArray.cxx.

Member Function Documentation

◆ Add()

void TRefArray::Add ( TObject obj)
inlineoverridevirtual

Implements TCollection.

Definition at line 74 of file TRefArray.h.

◆ AddAfter()

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

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 318 of file TRefArray.cxx.

◆ AddAt()

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

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 359 of file TRefArray.cxx.

◆ AddAtAndExpand()

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 336 of file TRefArray.cxx.

◆ AddAtFree()

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 377 of file TRefArray.cxx.

◆ AddBefore()

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

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 294 of file TRefArray.cxx.

◆ AddFirst()

void TRefArray::AddFirst ( TObject obj)
overridevirtual

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 267 of file TRefArray.cxx.

◆ AddLast()

void TRefArray::AddLast ( TObject obj)
overridevirtual

Add object in the next empty slot in the array.

Expand the array if necessary.

Implements TSeqCollection.

Definition at line 283 of file TRefArray.cxx.

◆ After()

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

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

Implements TSeqCollection.

Definition at line 401 of file TRefArray.cxx.

◆ At()

TObject * TRefArray::At ( Int_t  idx) const
inlineoverridevirtual

Implements TSeqCollection.

Definition at line 178 of file TRefArray.h.

◆ Before()

TObject * TRefArray::Before ( const TObject obj) const
overridevirtual

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

Implements TSeqCollection.

Definition at line 414 of file TRefArray.cxx.

◆ BinarySearch()

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 812 of file TRefArray.cxx.

◆ BoundsOk()

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

Definition at line 157 of file TRefArray.h.

◆ Class()

static TClass * TRefArray::Class ( )
static
Returns
TClass describing this class

◆ Class_Name()

static const char * TRefArray::Class_Name ( )
static
Returns
Name of this class

◆ Class_Version()

static Version_t TRefArray::Class_Version ( )
inlinestatic
Returns
Version of this class

Definition at line 98 of file TRefArray.h.

◆ Clear()

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

Remove all objects from the array.

Implements TCollection.

Definition at line 427 of file TRefArray.cxx.

◆ Compress()

void TRefArray::Compress ( )
virtual

Remove empty slots from array.

Definition at line 439 of file TRefArray.cxx.

◆ DeclFileName()

static const char * TRefArray::DeclFileName ( )
inlinestatic
Returns
Name of the file containing the class declaration

Definition at line 98 of file TRefArray.h.

◆ Delete()

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

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

Implements TCollection.

Definition at line 458 of file TRefArray.cxx.

◆ Expand()

void TRefArray::Expand ( Int_t  newSize)
virtual

Expand or shrink the array to newSize elements.

Definition at line 474 of file TRefArray.cxx.

◆ First()

TObject * TRefArray::First ( ) const
overridevirtual

Return the object in the first slot.

Implements TSeqCollection.

Definition at line 569 of file TRefArray.cxx.

◆ GetAbsLast()

Int_t TRefArray::GetAbsLast ( ) const
protected

Return absolute index to last object in array.

Returns -1 in case array is empty.

Definition at line 606 of file TRefArray.cxx.

◆ GetEntries()

Int_t TRefArray::GetEntries ( ) const
overridevirtual

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 592 of file TRefArray.cxx.

◆ GetEntriesFast()

Int_t TRefArray::GetEntriesFast ( ) const
inline

Definition at line 64 of file TRefArray.h.

◆ GetFromTable()

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

the reference may be in the TRefTable

Definition at line 502 of file TRefArray.cxx.

◆ GetLast()

Int_t TRefArray::GetLast ( ) const
overridevirtual

Return index of last object in array.

Returns lowerBound-1 in case array is empty.

Reimplemented from TSeqCollection.

Definition at line 626 of file TRefArray.cxx.

◆ GetObjectRef()

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

Return address of pointer obj.

Implements TCollection.

Definition at line 634 of file TRefArray.cxx.

◆ GetObjectUID()

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

Private/static function, check for validity of pid.

Definition at line 208 of file TRefArray.cxx.

◆ GetPID()

TProcessID * TRefArray::GetPID ( ) const
inline

Definition at line 69 of file TRefArray.h.

◆ GetUID()

UInt_t TRefArray::GetUID ( Int_t  at) const

Return UID of element at.

Definition at line 644 of file TRefArray.cxx.

◆ IndexOf()

Int_t TRefArray::IndexOf ( const TObject obj) const
overridevirtual
  • 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 662 of file TRefArray.cxx.

◆ Init()

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

Initialize a TRefArray.

Definition at line 684 of file TRefArray.cxx.

◆ IsA()

TClass * TRefArray::IsA ( ) const
inlineoverridevirtual
Returns
TClass describing current object

Reimplemented from TCollection.

Definition at line 98 of file TRefArray.h.

◆ IsEmpty()

Bool_t TRefArray::IsEmpty ( ) const
inlineoverridevirtual

Reimplemented from TCollection.

Definition at line 71 of file TRefArray.h.

◆ Last()

TObject * TRefArray::Last ( ) const
overridevirtual

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

Implements TSeqCollection.

Definition at line 577 of file TRefArray.cxx.

◆ LowerBound()

Int_t TRefArray::LowerBound ( ) const
inline

Definition at line 91 of file TRefArray.h.

◆ MakeIterator()

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

Returns an array iterator.

Implements TCollection.

Definition at line 708 of file TRefArray.cxx.

◆ operator=()

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

Assignment operator.

Definition at line 175 of file TRefArray.cxx.

◆ operator[]()

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

Definition at line 164 of file TRefArray.h.

◆ OutOfBoundsError()

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

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

Definition at line 716 of file TRefArray.cxx.

◆ Remove()

TObject * TRefArray::Remove ( TObject obj)
overridevirtual

Remove object from array.

Implements TCollection.

Definition at line 750 of file TRefArray.cxx.

◆ RemoveAt()

TObject * TRefArray::RemoveAt ( Int_t  idx)
overridevirtual

Remove object at index idx.

Reimplemented from TSeqCollection.

Definition at line 725 of file TRefArray.cxx.

◆ SetLast()

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 776 of file TRefArray.cxx.

◆ Sort()

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 788 of file TRefArray.cxx.

◆ Streamer()

void TRefArray::Streamer ( TBuffer R__b)
overridevirtual

Stream all objects in the array to or from the I/O buffer.

Reimplemented from TCollection.

Definition at line 516 of file TRefArray.cxx.

◆ StreamerNVirtual()

void TRefArray::StreamerNVirtual ( TBuffer ClassDef_StreamerNVirtual_b)
inline

Definition at line 98 of file TRefArray.h.

Friends And Related Function Documentation

◆ TRefArrayIter

friend class TRefArrayIter
friend

Definition at line 35 of file TRefArray.h.

Member Data Documentation

◆ fLast

Int_t TRefArray::fLast
protected

Definition at line 41 of file TRefArray.h.

◆ fLowerBound

Int_t TRefArray::fLowerBound
protected

Definition at line 40 of file TRefArray.h.

◆ fPID

TProcessID* TRefArray::fPID
protected

Definition at line 38 of file TRefArray.h.

◆ fUIDs

UInt_t* TRefArray::fUIDs
protected

Definition at line 39 of file TRefArray.h.


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