Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TListOfEnumsWithLock.h
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 #ifndef ROOT_TListOfEnumsWithLock
13 #define ROOT_TListOfEnumsWithLock
14 
15 //////////////////////////////////////////////////////////////////////////
16 // //
17 // TListOfEnumsWithLock //
18 // //
19 // A collection of TEnum objects designed for fast access given a //
20 // DeclId_t and for keep track of TEnum that were described //
21 // unloaded enum. //
22 // //
23 //////////////////////////////////////////////////////////////////////////
24 
25 #include "TListOfEnums.h"
26 
27 class TExMap;
28 class TEnum;
29 
30 class TListOfEnumsWithLock : public TListOfEnums
31 {
32 private:
33  typedef TDictionary::DeclId_t DeclId_t;
34 
35  TListOfEnumsWithLock(const TListOfEnumsWithLock&) = delete;
36  TListOfEnumsWithLock& operator=(const TListOfEnumsWithLock&) = delete;
37 
38 public:
39 
40  TListOfEnumsWithLock(TClass *cl = 0);
41  ~TListOfEnumsWithLock() override;
42 
43  TEnum *GetObject(const char*) const override;
44 
45  void Clear(Option_t *option) override;
46  void Delete(Option_t *option="") override;
47 
48  TObject *FindObject(const TObject* obj) const override;
49  TObject *FindObject(const char *name) const override;
50  TIterator *MakeIterator(Bool_t dir = kIterForward) const override;
51 
52  TObject *At(Int_t idx) const override;
53  TObject *After(const TObject *obj) const override;
54  TObject *Before(const TObject *obj) const override;
55  TObject *First() const override;
56  TObjLink *FirstLink() const override;
57  TObject **GetObjectRef(const TObject *obj) const override;
58  TObject *Last() const override;
59  TObjLink *LastLink() const override;
60 
61  Int_t GetLast() const override;
62  Int_t IndexOf(const TObject *obj) const override;
63 
64  Int_t GetSize() const override;
65 
66  void AddFirst(TObject *obj) override;
67  void AddFirst(TObject *obj, Option_t *opt) override;
68  void AddLast(TObject *obj) override;
69  void AddLast(TObject *obj, Option_t *opt) override;
70  void AddAt(TObject *obj, Int_t idx) override;
71  void AddAfter(const TObject *after, TObject *obj) override;
72  void AddAfter(TObjLink *after, TObject *obj) override;
73  void AddBefore(const TObject *before, TObject *obj) override;
74  void AddBefore(TObjLink *before, TObject *obj) override;
75 
76  void RecursiveRemove(TObject *obj) override;
77  TObject *Remove(TObject *obj) override;
78  TObject *Remove(TObjLink *lnk) override;
79 
80  ClassDefOverride(TListOfEnumsWithLock,2); // List of TDataMembers for a class
81 };
82 
83 
84 //////////////////////////////////////////////////////////////////////////
85 // //
86 // TListOfEnumsWithLockIter //
87 // //
88 // Iterator of TListOfEnumsWithLock. //
89 // //
90 //////////////////////////////////////////////////////////////////////////
91 class TListOfEnumsWithLockIter : public TListIter
92 {
93  public:
94  TListOfEnumsWithLockIter(const TListOfEnumsWithLock *l, Bool_t dir = kIterForward);
95 
96  using TListIter::operator=;
97 
98  TObject *Next();
99 
100  ClassDef(TListOfEnumsWithLockIter,0)
101 };
102 
103 #endif // ROOT_TListOfEnumsWithLock