36 while ((ob = next())) {
37 if (ob->
IsEqual(obj))
return idx;
58 if (
a == 0 &&
b == 0)
return 0;
60 if (
b == 0)
return -1;
78 while (last -
first > 1) {
100 if (j -
first < last - (j + 1)) {
126 static int depth = 0;
127 if (depth == 0 && nBs > 0) tmp2 =
new TObject*[nBs];
130 while (last -
first > 1) {
138 tmp1 =
a[i];
for(k=0;k<nBs;k++) tmp2[k] =
b[k][i];
139 a[i] =
a[j];
for(k=0;k<nBs;k++)
b[k][i] =
b[k][j];
140 a[j] = tmp1;
for(k=0;k<nBs;k++)
b[k][j] = tmp2[k];
146 tmp1 =
a[
first];
for(k=0;k<nBs;k++) tmp2[k] =
b[k][
first];
148 a[j] = tmp1;
for(k=0;k<nBs;k++)
b[k][j] = tmp2[k];
149 if (j -
first < last - (j + 1)) {
159 if (depth == 0 && nBs > 0)
delete [] tmp2;
189 Warning(
"Merge",
"list is empty - nothing to merge");
193 Warning(
"Merge",
"input list is empty - nothing to merge with");
196 TIter nextobject(
this);
197 TIter nextlist(list);
206 while ((
object = nextobject())) {
226 while ((collcrt = nextlist())) {
228 Error(
"Merge",
"some objects in the input list are not collections - merging aborted");
240 Warning(
"Merge",
"object of type %s (position %d in list) not found in list %d. Continuing...",
241 object->ClassName(), indobj, indcoll);
253 if (
object->IsA() != objtomerge->IsA()) {
254 Error(
"Merge",
"object of type %s at index %d not matching object of type %s in input list",
261 templist->
Add(objtomerge);
265 if (!notmergeable && IsA())
268 notmergeable->
Add(objtomerge);
270 Warning(
"Merge",
"temp list for non mergeable objects not created!");
283 if (notmergeable && notmergeable->
GetSize() > 0) {
284 TIter nxnm(notmergeable);
286 while ((onm = nxnm())) {
Add(onm->
Clone()); }
R__EXTERN TVirtualMutex * gCollectionMutex
#define R__LOCKGUARD2(mutex)
Collection abstract base class.
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
virtual Bool_t IsEmpty() const
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
Method or function calling interface.
Bool_t IsValid() const
Return true if the method call has been properly initialized and is usable.
void Execute(const char *, const char *, int *=0)
Execute method on this object with the given parameter string, e.g.
void InitWithPrototype(TClass *cl, const char *method, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch)
Initialize the method invocation environment.
void SetParam(Long_t l)
Add a long method parameter.
Mother of all ROOT objects.
virtual Bool_t IsEqual(const TObject *obj) const
Default equal comparison (objects are equal if they have the same address in memory).
virtual TObject * Clone(const char *newname="") const
Make a clone of an object using the Streamer facility.
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Sequenceable collection abstract base class.
virtual Int_t IndexOf(const TObject *obj) const
Return index of object in collection.
virtual TObject * Last() const =0
static void QSort(TObject **a, Int_t first, Int_t last)
Sort array of TObject pointers using a quicksort algorithm.
virtual void Add(TObject *obj)
Long64_t Merge(TCollection *list)
Merge this collection with all collections coming in the input list.
virtual Int_t GetLast() const
Returns index of last object in collection.
static Int_t ObjCompare(TObject *a, TObject *b)
Compare to objects in the collection. Use member Compare() of object a.