Logo ROOT  
Reference Guide
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
34{
35}
36
37////////////////////////////////////////////////////////////////////////////////
38/// Destructor.
39
41{
42}
43
44////////////////////////////////////////////////////////////////////////////////
45/// Add object at the beginning of the list.
46
48{
51}
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
61{
63 TListOfEnums::AddFirst(obj, opt);
64}
65
66////////////////////////////////////////////////////////////////////////////////
67/// Add object at the end of the list.
68
70{
73}
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
83{
85 TListOfEnums::AddLast(obj, opt);
86}
87
88////////////////////////////////////////////////////////////////////////////////
89/// Insert object at location idx in the list.
90
92{
94 TListOfEnums::AddAt(obj, idx);
95}
96
97////////////////////////////////////////////////////////////////////////////////
98/// Insert object after object after in the list.
99
101{
103 TListOfEnums::AddAfter(after, obj);
104}
105
106////////////////////////////////////////////////////////////////////////////////
107/// Insert object after object after in the list.
108
110{
112 TListOfEnums::AddAfter(after, obj);
113}
114
115////////////////////////////////////////////////////////////////////////////////
116/// Insert object before object before in the list.
117
119{
121 TListOfEnums::AddBefore(before, obj);
122}
123
124////////////////////////////////////////////////////////////////////////////////
125/// Insert object before object before in the list.
126
128{
130 TListOfEnums::AddBefore(before, obj);
131}
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
138{
141}
142
143////////////////////////////////////////////////////////////////////////////////
144/// Delete all TDataMember object files.
145
147{
150}
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
157{
160}
161
162
163////////////////////////////////////////////////////////////////////////////////
164
166{
168 return TListOfEnums::FindObject(obj);
169}
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
176{
179}
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
191{
192 if (!obj) return;
193
196}
197
198////////////////////////////////////////////////////////////////////////////////
199/// Remove object from the list.
200
202{
204 return TListOfEnums::Remove(obj);
205}
206
207////////////////////////////////////////////////////////////////////////////////
208/// Remove object via its objlink from the list.
209
211{
212 if (!lnk) return nullptr;
213
215 return TListOfEnums::Remove(lnk);
216}
217
218////////////////////////////////////////////////////////////////////////////////
219
221{
223 return new TListOfEnumsWithLockIter(this,dir);
224}
225
226////////////////////////////////////////////////////////////////////////////////
227
229{
231 return TListOfEnums::At(idx);
232}
233
234////////////////////////////////////////////////////////////////////////////////
235
237{
239 return TListOfEnums::After(obj);
240}
241
242////////////////////////////////////////////////////////////////////////////////
243
245{
247 return TListOfEnums::Before(obj);
248}
249
250////////////////////////////////////////////////////////////////////////////////
251
253{
255 return TListOfEnums::First();
256}
257
258////////////////////////////////////////////////////////////////////////////////
259
261{
264}
265
266////////////////////////////////////////////////////////////////////////////////
267
269{
271 return TListOfEnums::GetObjectRef(obj);
272}
273
274////////////////////////////////////////////////////////////////////////////////
275
277{
279 return TListOfEnums::Last();
280}
281
282////////////////////////////////////////////////////////////////////////////////
283
285{
287 return TListOfEnums::LastLink();
288}
289
290
291////////////////////////////////////////////////////////////////////////////////
292
294{
296 return TListOfEnums::GetLast();
297}
298
299////////////////////////////////////////////////////////////////////////////////
300
302{
304 return TListOfEnums::IndexOf(obj);
305}
306
307
308////////////////////////////////////////////////////////////////////////////////
309
311{
313 return TListOfEnums::GetSize();
314}
315
316/** \class TListOfEnumsWithLockIter
317Iterator for TListOfEnumsWithLock.
318*/
319
321
322////////////////////////////////////////////////////////////////////////////////
323
325TListIter(l,dir) {}
326
327////////////////////////////////////////////////////////////////////////////////
328
330{
332 return TListIter::Next();
333}
const char Option_t
Definition: RtypesCore.h:66
#define ClassImp(name)
Definition: Rtypes.h:375
Option_t Option_t option
char name[80]
Definition: TGX11.cxx:110
R__EXTERN TVirtualMutex * gInterpreterMutex
Definition: TInterpreter.h:46
#define R__LOCKGUARD(mutex)
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition: TClass.h:81
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
Definition: TCollection.h:184
The TEnum class implements the enum type.
Definition: TEnum.h:33
TObject * FindObject(const char *name) const override
Find object using its name.
Definition: THashList.cxx:262
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:1111
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...
Definition: TListOfEnums.h:33
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:330
TObject ** GetObjectRef(const TObject *obj) const override
Return address of pointer to obj.
Definition: TList.cxx:671
virtual TObjLink * LastLink() const
Definition: TList.h:105
TObject * Before(const TObject *obj) const override
Returns the object before object obj.
Definition: TList.cxx:371
TObject * Last() const override
Return the last object in the list. Returns 0 when list is empty.
Definition: TList.cxx:693
TObject * First() const override
Return the first object in the list. Returns 0 when list is empty.
Definition: TList.cxx:659
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:357
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