Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/root/TListOfEnumsWithLock.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 // @(#)root/cont
0002 // Author: Bianca-Cristina Cristescu February 2014
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2013, Rene Brun and Fons Rademakers.               *
0006  * All rights reserved.                                                  *
0007  *                                                                       *
0008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0010  *************************************************************************/
0011 
0012 #ifndef ROOT_TListOfEnumsWithLock
0013 #define ROOT_TListOfEnumsWithLock
0014 
0015 //////////////////////////////////////////////////////////////////////////
0016 //                                                                      //
0017 // TListOfEnumsWithLock                                                         //
0018 //                                                                      //
0019 // A collection of TEnum objects designed for fast access given a       //
0020 // DeclId_t and for keep track of TEnum that were described             //
0021 // unloaded enum.                                                       //
0022 //                                                                      //
0023 //////////////////////////////////////////////////////////////////////////
0024 
0025 #include "TListOfEnums.h"
0026 
0027 class TExMap;
0028 class TEnum;
0029 
0030 class TListOfEnumsWithLock : public TListOfEnums
0031 {
0032 private:
0033    typedef TDictionary::DeclId_t DeclId_t;
0034 
0035    TListOfEnumsWithLock(const TListOfEnumsWithLock&) = delete;
0036    TListOfEnumsWithLock& operator=(const TListOfEnumsWithLock&) = delete;
0037 
0038 public:
0039 
0040    TListOfEnumsWithLock(TClass *cl = nullptr);
0041    ~TListOfEnumsWithLock() override;
0042 
0043    TEnum *GetObject(const char*) const override;
0044 
0045    void Clear(Option_t *option) override;
0046    void Delete(Option_t *option="") override;
0047 
0048    TObject   *FindObject(const TObject* obj) const override;
0049    TObject   *FindObject(const char *name) const override;
0050    TIterator *MakeIterator(Bool_t dir = kIterForward) const override;
0051 
0052    TObject   *At(Int_t idx) const override;
0053    TObject   *After(const TObject *obj) const override;
0054    TObject   *Before(const TObject *obj) const override;
0055    TObject   *First() const override;
0056    TObjLink  *FirstLink() const override;
0057    TObject  **GetObjectRef(const TObject *obj) const override;
0058    TObject   *Last() const override;
0059    TObjLink  *LastLink() const override;
0060 
0061    Int_t      GetLast() const override;
0062    Int_t      IndexOf(const TObject *obj) const override;
0063 
0064    Int_t      GetSize() const override;
0065 
0066    void       AddFirst(TObject *obj) override;
0067    void       AddFirst(TObject *obj, Option_t *opt) override;
0068    void       AddLast(TObject *obj) override;
0069    void       AddLast(TObject *obj, Option_t *opt) override;
0070    void       AddAt(TObject *obj, Int_t idx) override;
0071    void       AddAfter(const TObject *after, TObject *obj) override;
0072    void       AddAfter(TObjLink *after, TObject *obj) override;
0073    void       AddBefore(const TObject *before, TObject *obj) override;
0074    void       AddBefore(TObjLink *before, TObject *obj) override;
0075 
0076    void       RecursiveRemove(TObject *obj) override;
0077    TObject   *Remove(TObject *obj) override;
0078    TObject   *Remove(TObjLink *lnk) override;
0079 
0080    ClassDefOverride(TListOfEnumsWithLock,2);  // List of TDataMembers for a class
0081 };
0082 
0083 
0084 //////////////////////////////////////////////////////////////////////////
0085 //                                                                      //
0086 // TListOfEnumsWithLockIter                                             //
0087 //                                                                      //
0088 // Iterator of TListOfEnumsWithLock.                                    //
0089 //                                                                      //
0090 //////////////////////////////////////////////////////////////////////////
0091 class TListOfEnumsWithLockIter : public TListIter
0092 {
0093  public:
0094    TListOfEnumsWithLockIter(const TListOfEnumsWithLock *l, Bool_t dir = kIterForward);
0095 
0096    using TListIter::operator=;
0097 
0098    TObject *Next() override;
0099 
0100    ClassDefOverride(TListOfEnumsWithLockIter,0)
0101 };
0102 
0103 #endif // ROOT_TListOfEnumsWithLock