1 #ifndef ALIMPEXMAPITERATOR_H
2 #define ALIMPEXMAPITERATOR_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 /// \class AliMpExMapIterator
11 /// \brief Implementation of TIterator for AliMpExMap
13 // Author Laurent Aphecetche
15 #ifndef ROOT_TIterator
16 # include "TIterator.h"
23 //_____________________________________________________________________________
24 class AliMpExMapIterator : public TIterator
26 friend class AliMpExMap;
29 AliMpExMapIterator(const AliMpExMap& theMap);
30 AliMpExMapIterator(const AliMpExMapIterator& rhs);
31 AliMpExMapIterator& operator=(const AliMpExMapIterator& rhs);
32 AliMpExMapIterator& operator=(const TIterator& rhs);
34 virtual ~AliMpExMapIterator();
36 /// The returned object must not be deleted by the user.
38 // Iterating without retrieving a key
39 virtual TObject* Next();
41 // Iterating with retrieving a key
42 TObject* Next(Int_t& key);
43 TObject* Next(Int_t& keyFirst, Int_t& keySecond);
44 TObject* Next(TString& key);
48 virtual const TCollection* GetCollection() const;
51 #if (defined(ROOT_VERSION_CODE) && ROOT_VERSION_CODE >= 334082) || \
52 (defined(ROOT_SVN_REVISION) && ROOT_SVN_REVISION >= 29598)
53 // ROOT_VERSION_CODE = 334082 corresponds to Root version 5.25/02
54 // ROOT_SVN_REVISION is not defined in Root versions after moving in git
55 typedef Long64_t Index_t;
57 typedef Long_t Index_t;
59 Bool_t Next(Index_t& index, TObject*& object);
61 TExMapIter* fIterator; ///< iterator we are wrapping
63 ClassDef(AliMpExMapIterator,0) // TIterator for AliMpExMap