18 #include <forward_list> 
   28 ClassImp(TListOfEnumsWithLock);
 
   32 TListOfEnumsWithLock::TListOfEnumsWithLock(TClass *cl ) :
 
   40 TListOfEnumsWithLock::~TListOfEnumsWithLock()
 
   47 void TListOfEnumsWithLock::AddFirst(TObject *obj)
 
   49    R__LOCKGUARD(gInterpreterMutex);
 
   50    TListOfEnums::AddFirst(obj);
 
   60 void TListOfEnumsWithLock::AddFirst(TObject *obj, Option_t *opt)
 
   62    R__LOCKGUARD(gInterpreterMutex);
 
   63    TListOfEnums::AddFirst(obj, opt);
 
   69 void TListOfEnumsWithLock::AddLast(TObject *obj)
 
   71    R__LOCKGUARD(gInterpreterMutex);
 
   72    TListOfEnums::AddLast(obj);
 
   82 void TListOfEnumsWithLock::AddLast(TObject *obj, Option_t *opt)
 
   84    R__LOCKGUARD(gInterpreterMutex);
 
   85    TListOfEnums::AddLast(obj, opt);
 
   91 void TListOfEnumsWithLock::AddAt(TObject *obj, Int_t idx)
 
   93    R__LOCKGUARD(gInterpreterMutex);
 
   94    TListOfEnums::AddAt(obj, idx);
 
  100 void TListOfEnumsWithLock::AddAfter(
const TObject *after, TObject *obj)
 
  102    R__LOCKGUARD(gInterpreterMutex);
 
  103    TListOfEnums::AddAfter(after, obj);
 
  109 void TListOfEnumsWithLock::AddAfter(TObjLink *after, TObject *obj)
 
  111    R__LOCKGUARD(gInterpreterMutex);
 
  112    TListOfEnums::AddAfter(after, obj);
 
  118 void TListOfEnumsWithLock::AddBefore(
const TObject *before, TObject *obj)
 
  120    R__LOCKGUARD(gInterpreterMutex);
 
  121    TListOfEnums::AddBefore(before, obj);
 
  127 void TListOfEnumsWithLock::AddBefore(TObjLink *before, TObject *obj)
 
  129    R__LOCKGUARD(gInterpreterMutex);
 
  130    TListOfEnums::AddBefore(before, obj);
 
  137 void TListOfEnumsWithLock::Clear(Option_t *option)
 
  139    R__LOCKGUARD(gInterpreterMutex);
 
  140    TListOfEnums::Clear(option);
 
  146 void TListOfEnumsWithLock::Delete(Option_t *option )
 
  148    R__LOCKGUARD(gInterpreterMutex);
 
  149    TListOfEnums::Delete(option);
 
  156 TObject *TListOfEnumsWithLock::FindObject(
const char *name)
 const 
  158    R__LOCKGUARD(gInterpreterMutex);
 
  159    TObject *result = TListOfEnums::FindObject(name);
 
  163       TInterpreter::DeclId_t decl;
 
  164       if (GetClass()) decl = gInterpreter->GetEnum(GetClass(), name);
 
  165       else        decl = gInterpreter->GetEnum(0, name);
 
  166       if (decl) result = 
const_cast<TListOfEnumsWithLock *
>(
this)->Get(decl, name);
 
  174 TObject* TListOfEnumsWithLock::FindObject(
const TObject* obj)
 const 
  176    R__LOCKGUARD(gInterpreterMutex);
 
  177    return TListOfEnums::FindObject(obj);
 
  184 TEnum *TListOfEnumsWithLock::GetObject(
const char *name)
 const 
  186    R__LOCKGUARD(gInterpreterMutex);
 
  187    return (TEnum*)THashList::FindObject(name);
 
  199 void TListOfEnumsWithLock::RecursiveRemove(TObject *obj)
 
  203    R__LOCKGUARD(gInterpreterMutex);
 
  204    TListOfEnums::RecursiveRemove(obj);
 
  210 TObject *TListOfEnumsWithLock::Remove(TObject *obj)
 
  212    R__LOCKGUARD(gInterpreterMutex);
 
  213    return TListOfEnums::Remove(obj);
 
  219 TObject *TListOfEnumsWithLock::Remove(TObjLink *lnk)
 
  223    R__LOCKGUARD(gInterpreterMutex);
 
  224    return TListOfEnums::Remove(lnk);
 
  229 TIterator* TListOfEnumsWithLock::MakeIterator(Bool_t dir )
 const 
  231    R__LOCKGUARD(gInterpreterMutex);
 
  232    return new TListOfEnumsWithLockIter(
this,dir);
 
  237 TObject* TListOfEnumsWithLock::At(Int_t idx)
 const 
  239    R__LOCKGUARD(gInterpreterMutex);
 
  240    return TListOfEnums::At(idx);
 
  245 TObject* TListOfEnumsWithLock::After(
const TObject *obj)
 const 
  247    R__LOCKGUARD(gInterpreterMutex);
 
  248    return TListOfEnums::After(obj);
 
  253 TObject* TListOfEnumsWithLock::Before(
const TObject *obj)
 const 
  255    R__LOCKGUARD(gInterpreterMutex);
 
  256    return TListOfEnums::Before(obj);
 
  261 TObject* TListOfEnumsWithLock::First()
 const 
  263    R__LOCKGUARD(gInterpreterMutex);
 
  264    return TListOfEnums::First();
 
  269 TObjLink* TListOfEnumsWithLock::FirstLink()
 const 
  271    R__LOCKGUARD(gInterpreterMutex);
 
  272    return TListOfEnums::FirstLink();
 
  277 TObject** TListOfEnumsWithLock::GetObjectRef(
const TObject *obj)
 const 
  279    R__LOCKGUARD(gInterpreterMutex);
 
  280    return TListOfEnums::GetObjectRef(obj);
 
  285 TObject* TListOfEnumsWithLock::Last()
 const 
  287    R__LOCKGUARD(gInterpreterMutex);
 
  288    return TListOfEnums::Last();
 
  293 TObjLink* TListOfEnumsWithLock::LastLink()
 const 
  295    R__LOCKGUARD(gInterpreterMutex);
 
  296    return TListOfEnums::LastLink();
 
  302 Int_t TListOfEnumsWithLock::GetLast()
 const 
  304    R__LOCKGUARD(gInterpreterMutex);
 
  305    return TListOfEnums::GetLast();
 
  310 Int_t TListOfEnumsWithLock::IndexOf(
const TObject *obj)
 const 
  312    R__LOCKGUARD(gInterpreterMutex);
 
  313    return TListOfEnums::IndexOf(obj);
 
  319 Int_t TListOfEnumsWithLock::GetSize()
 const 
  321    R__LOCKGUARD(gInterpreterMutex);
 
  322    return TListOfEnums::GetSize();
 
  329 ClassImp(TListOfEnumsWithLockIter);
 
  333 TListOfEnumsWithLockIter::TListOfEnumsWithLockIter(
const TListOfEnumsWithLock *l, Bool_t dir ):
 
  338 TObject *TListOfEnumsWithLockIter::Next()
 
  340    R__LOCKGUARD(gInterpreterMutex);
 
  341    return TListIter::Next();