Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TListOfEnumsWithLock.cxx
Go to the documentation of this file.
1// @(#)root/cont
2// Author: Bianca-Cristina Cristescu February 2014
3
4/*************************************************************************
5 * Copyright (C) 1995-2013, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12/** \class TListOfEnumsWithLock
13A collection of TEnum objects designed for fast access given a
14DeclId_t and for keep track of TEnum that were described
15unloaded enum.
16*/
17
18#include <forward_list>
19
21#include "TClass.h"
22#include "TExMap.h"
23#include "TEnum.h"
24#include "TGlobal.h"
25#include "TInterpreter.h"
26#include "TVirtualMutex.h"
27
29
30////////////////////////////////////////////////////////////////////////////////
31
36
37////////////////////////////////////////////////////////////////////////////////
38/// Destructor.
39
43
44////////////////////////////////////////////////////////////////////////////////
45/// Add object at the beginning of the list.
46
52
53////////////////////////////////////////////////////////////////////////////////
54/// Add object at the beginning of the list and also store option.
55/// Storing an option is useful when one wants to change the behaviour
56/// of an object a little without having to create a complete new
57/// copy of the object. This feature is used, for example, by the Draw()
58/// method. It allows the same object to be drawn in different ways.
59
65
66////////////////////////////////////////////////////////////////////////////////
67/// Add object at the end of the list.
68
74
75////////////////////////////////////////////////////////////////////////////////
76/// Add object at the end of the list and also store option.
77/// Storing an option is useful when one wants to change the behaviour
78/// of an object a little without having to create a complete new
79/// copy of the object. This feature is used, for example, by the Draw()
80/// method. It allows the same object to be drawn in different ways.
81
87
88////////////////////////////////////////////////////////////////////////////////
89/// Insert object at location idx in the list.
90
96
97////////////////////////////////////////////////////////////////////////////////
98/// Insert object after object after in the list.
99
105
106////////////////////////////////////////////////////////////////////////////////
107/// Insert object after object after in the list.
108
114
115////////////////////////////////////////////////////////////////////////////////
116/// Insert object before object before in the list.
117
123
124////////////////////////////////////////////////////////////////////////////////
125/// Insert object before object before in the list.
126
132
133////////////////////////////////////////////////////////////////////////////////
134/// Remove all objects from the list. Does not delete the objects unless
135/// the THashList is the owner (set via SetOwner()).
136
142
143////////////////////////////////////////////////////////////////////////////////
144/// Delete all TDataMember object files.
145
151
152////////////////////////////////////////////////////////////////////////////////
153/// Specialize FindObject to do search for the
154/// a enum just by name or create it if its not already in the list
155
161
162
163////////////////////////////////////////////////////////////////////////////////
164
170
171////////////////////////////////////////////////////////////////////////////////
172/// Return an object from the list of enums *if and only if* is has already
173/// been loaded in the list. This is an internal routine.
174
180
181////////////////////////////////////////////////////////////////////////////////
182/// Remove object from this collection and recursively remove the object
183/// from all other objects (and collections).
184/// This function overrides TCollection::RecursiveRemove that calls
185/// the Remove function. THashList::Remove cannot be called because
186/// it uses the hash value of the hash table. This hash value
187/// is not available anymore when RecursiveRemove is called from
188/// the TObject destructor.
189
197
198////////////////////////////////////////////////////////////////////////////////
199/// Remove object from the list.
200
206
207////////////////////////////////////////////////////////////////////////////////
208/// Remove object via its objlink from the list.
209
211{
212 if (!lnk) return nullptr;
213
216}
217
218////////////////////////////////////////////////////////////////////////////////
219
225
226////////////////////////////////////////////////////////////////////////////////
227
233
234////////////////////////////////////////////////////////////////////////////////
235
241
242////////////////////////////////////////////////////////////////////////////////
243
249
250////////////////////////////////////////////////////////////////////////////////
251
257
258////////////////////////////////////////////////////////////////////////////////
259
265
266////////////////////////////////////////////////////////////////////////////////
267
273
274////////////////////////////////////////////////////////////////////////////////
275
281
282////////////////////////////////////////////////////////////////////////////////
283
289
290
291////////////////////////////////////////////////////////////////////////////////
292
298
299////////////////////////////////////////////////////////////////////////////////
300
306
307
308////////////////////////////////////////////////////////////////////////////////
309
315
316/** \class TListOfEnumsWithLockIter
317Iterator for TListOfEnumsWithLock.
318*/
319
321
322////////////////////////////////////////////////////////////////////////////////
323
326
327////////////////////////////////////////////////////////////////////////////////
328
const char Option_t
Definition RtypesCore.h:66
#define ClassImp(name)
Definition Rtypes.h:382
Option_t Option_t option
char name[80]
Definition TGX11.cxx:110
R__EXTERN TVirtualMutex * gInterpreterMutex
#define R__LOCKGUARD(mutex)
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition TClass.h:84
virtual TObject ** GetObjectRef(const TObject *obj) const =0
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
The TEnum class implements the enum type.
Definition TEnum.h:33
TObject * FindObject(const char *name) const override
Find object using its name.
Iterator abstract base class.
Definition TIterator.h:30
Iterator of linked list.
Definition TList.h:191
TObject * Next() override
Return next object in the list. Returns 0 when no more objects in list.
Definition TList.cxx:1109
Iterator for TListOfEnumsWithLock.
TListOfEnumsWithLockIter(const TListOfEnumsWithLock *l, Bool_t dir=kIterForward)
TObject * Next() override
Return next object in the list. Returns 0 when no more objects in list.
A collection of TEnum objects designed for fast access given a DeclId_t and for keep track of TEnum t...
TObject * At(Int_t idx) const override
Returns the object at position idx. Returns 0 if idx is out of range.
TObject * Last() const override
Return the last object in the list. Returns 0 when list is empty.
TIterator * MakeIterator(Bool_t dir=kIterForward) const override
Return a list iterator.
TEnum * GetObject(const char *) const override
Return an object from the list of enums if and only if is has already been loaded in the list.
void AddBefore(const TObject *before, TObject *obj) override
Insert object before object before in the list.
TObject * FindObject(const TObject *obj) const override
Find object using its hash value (returned by its Hash() member).
TObjLink * LastLink() const override
Int_t GetSize() const override
Return the capacity of the collection, i.e.
TObject * First() const override
Return the first object in the list. Returns 0 when list is empty.
void Delete(Option_t *option="") override
Delete all TDataMember object files.
TObject * Before(const TObject *obj) const override
Returns the object before object obj.
void AddFirst(TObject *obj) override
Add object at the beginning of the list.
TObject * Remove(TObject *obj) override
Remove object from the list.
void AddAfter(const TObject *after, TObject *obj) override
Insert object after object after in the list.
Int_t GetLast() const override
Returns index of last object in collection.
void AddAt(TObject *obj, Int_t idx) override
Insert object at location idx in the list.
~TListOfEnumsWithLock() override
Destructor.
void AddLast(TObject *obj) override
Add object at the end of the list.
void Clear(Option_t *option) override
Remove all objects from the list.
TObject ** GetObjectRef(const TObject *obj) const override
Return address of pointer to obj.
TObjLink * FirstLink() const override
TListOfEnumsWithLock(const TListOfEnumsWithLock &)=delete
Int_t IndexOf(const TObject *obj) const override
Return index of object in collection.
void RecursiveRemove(TObject *obj) override
Remove object from this collection and recursively remove the object from all other objects (and coll...
TObject * After(const TObject *obj) const override
Returns the object after object obj.
A collection of TEnum objects designed for fast access given a DeclId_t and for keep track of TEnum t...
void AddBefore(const TObject *before, TObject *obj) override
Insert object before object before in the list.
void Delete(Option_t *option="") override
Delete all TDataMember object files.
void AddAt(TObject *obj, Int_t idx) override
Insert object at location idx in the list.
TObject * FindObject(const char *) const override
Specialize FindObject to do search for the a enum just by name or create it if its not already in the...
void AddAfter(const TObject *after, TObject *obj) override
Insert object after object after in the list.
TObject * Remove(TObject *obj) override
Remove object from the list.
void AddLast(TObject *obj) override
Add object at the end of the list.
void RecursiveRemove(TObject *obj) override
Remove object from this collection and recursively remove the object from all other objects (and coll...
void AddFirst(TObject *obj) override
Add object at the beginning of the list.
void Clear(Option_t *option) override
Remove all objects from the list.
TObject * After(const TObject *obj) const override
Returns the object after object obj.
Definition TList.cxx:328
virtual TObjLink * LastLink() const
Definition TList.h:105
TObject * Before(const TObject *obj) const override
Returns the object before object obj.
Definition TList.cxx:369
TObject * Last() const override
Return the last object in the list. Returns 0 when list is empty.
Definition TList.cxx:691
TObject * First() const override
Return the first object in the list. Returns 0 when list is empty.
Definition TList.cxx:657
virtual TObjLink * FirstLink() const
Definition TList.h:102
TObject * At(Int_t idx) const override
Returns the object at position idx. Returns 0 if idx is out of range.
Definition TList.cxx:355
Mother of all ROOT objects.
Definition TObject.h:41
virtual Int_t IndexOf(const TObject *obj) const
Return index of object in collection.
virtual Int_t GetLast() const
Returns index of last object in collection.
TLine l
Definition textangle.C:4