]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpExMapIterator.h
Replacement of AliMpIntPair object with algoritmic
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpExMapIterator.h
1 #ifndef ALIMPEXMAPITERATOR_H
2 #define ALIMPEXMAPITERATOR_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice                               */
6
7 // $Id$
8
9 /// \ingroup core
10 /// \class AliMpExMapIterator
11 /// \brief Implementation of TIterator for AliMpExMap
12 /// 
13 //  Author Laurent Aphecetche
14
15 #ifndef ROOT_TIterator
16 #  include "TIterator.h"
17 #endif
18
19 class AliMpExMap;
20 class TString;
21 class TExMapIter;
22
23 //_____________________________________________________________________________
24 class AliMpExMapIterator : public TIterator
25 {
26 public:
27   friend class AliMpExMap;
28
29   AliMpExMapIterator(const AliMpExMap& theMap);
30   AliMpExMapIterator(const AliMpExMapIterator& rhs);
31   AliMpExMapIterator& operator=(const AliMpExMapIterator& rhs);
32   AliMpExMapIterator& operator=(const TIterator& rhs);
33   
34   virtual ~AliMpExMapIterator();
35   
36   /// The returned object must not be deleted by the user.  
37
38   // Iterating without retrieving a key
39   virtual TObject* Next();
40
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);
45   
46   virtual void Reset(); 
47   
48   virtual const TCollection* GetCollection() const;
49
50 private:
51     
52     Bool_t Next(Long_t& index, TObject*& object);
53
54 private:
55   
56     TExMapIter* fIterator; ///< iterator we are wrapping
57
58   ClassDef(AliMpExMapIterator,0) // TIterator for AliMpExMap
59 };
60
61
62 #endif