Line data Source code
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 : friend class AliMpExMap;
27 :
28 : public:
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 : #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;
56 : #else
57 : typedef Long_t Index_t;
58 : #endif
59 : Bool_t Next(Index_t& index, TObject*& object);
60 :
61 : TExMapIter* fIterator; ///< iterator we are wrapping
62 :
63 18 : ClassDef(AliMpExMapIterator,0) // TIterator for AliMpExMap
64 : };
65 :
66 :
67 : #endif
|