#ifndef ROO_LINKED_LIST
#define ROO_LINKED_LIST
#include "TObject.h"
#include "RooLinkedListElem.h"
#include "RooHashTable.h"
class RooLinkedListIter ;
class TIterator ;
class RooLinkedList : public TObject {
public:
  
  RooLinkedList(Int_t htsize=0) ;
  
  RooLinkedList(const RooLinkedList& other) ;
  
  RooLinkedList& operator=(const RooLinkedList& other) ;
  Int_t getHashTableSize() const {
    return _htableName ? _htableName->size() : 0 ;
  }
  void setHashTableSize(Int_t size) ;
  
  virtual ~RooLinkedList() ;
  Int_t GetSize() const { return _size ; }
  virtual void Add(TObject* arg) { Add(arg,1) ; }
  virtual Bool_t Remove(TObject* arg) ;
  TObject* At(Int_t index) const ;
  Bool_t Replace(const TObject* oldArg, const TObject* newArg) ;
  TIterator* MakeIterator(Bool_t dir=kTRUE) const ;
  RooLinkedListIter iterator(Bool_t dir=kTRUE) const ;
  void Clear(Option_t *o=0) ;
  void Delete(Option_t *o=0) ;
  TObject* find(const char* name) const ;
  TObject* FindObject(const char* name) const ; 
  TObject* FindObject(const TObject* obj) const ;
  Int_t IndexOf(const TObject* arg) const ;
  TObject* First() const {
    return _first?_first->_arg:0 ;
  }
  void Print(const char* opt) const ;
  void Sort(Bool_t ascend) ;
protected:  
  friend class RooLinkedListIter ;
  virtual void Add(TObject* arg, Int_t refCount) ;
  void swapWithNext(RooLinkedListElem* elem) ;
  RooLinkedListElem* findLink(const TObject* arg) const ;
    
  Int_t _hashThresh ;          
  Int_t _size ;                
  RooLinkedListElem*  _first ; 
  RooLinkedListElem*  _last ;  
  RooHashTable*       _htableName ; 
  RooHashTable*       _htableLink ; 
  ClassDef(RooLinkedList,1) 
};
#endif
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.