// @(#)root/cont:$Id$ // Author: Fons Rademakers 13/08/95 /************************************************************************* * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * * All rights reserved. * * * * For the licensing terms see $ROOTSYS/LICENSE. * * For the list of contributors see $ROOTSYS/README/CREDITS. * *************************************************************************/ #ifndef ROOT_TIterator #define ROOT_TIterator ////////////////////////////////////////////////////////////////////////// // // // TIterator // // // // Iterator abstract base class. This base class provides the interface // // for collection iterators. // // // ////////////////////////////////////////////////////////////////////////// #ifndef ROOT_Rtypes #include "Rtypes.h" #endif class TCollection; class TObject; class TIterator { protected: TIterator() { } TIterator(const TIterator &) { } public: virtual TIterator &operator=(const TIterator &) { return *this; } virtual ~TIterator() { } virtual const TCollection *GetCollection() const = 0; virtual Option_t *GetOption() const { return ""; } virtual TObject *Next() = 0; virtual void Reset() = 0; TObject *operator()() { return Next(); } virtual Bool_t operator!=(const TIterator &) const; Bool_t operator==(const TIterator & other) const { return !(*this != other); } virtual TObject *operator*() const; ClassDef(TIterator,0) //Iterator abstract base class }; #endif