ROOT logo
#ifndef ALIMPEXMAPITERATOR_H
#define ALIMPEXMAPITERATOR_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice                               */

// $Id$

/// \ingroup core
/// \class AliMpExMapIterator
/// \brief Implementation of TIterator for AliMpExMap
/// 
//  Author Laurent Aphecetche

#ifndef ROOT_TIterator
#  include "TIterator.h"
#endif

class AliMpExMap;
class TString;
class TExMapIter;

//_____________________________________________________________________________
class AliMpExMapIterator : public TIterator
{
  friend class AliMpExMap;

public:
  AliMpExMapIterator(const AliMpExMap& theMap);
  AliMpExMapIterator(const AliMpExMapIterator& rhs);
  AliMpExMapIterator& operator=(const AliMpExMapIterator& rhs);
  AliMpExMapIterator& operator=(const TIterator& rhs);
  
  virtual ~AliMpExMapIterator();
  
  /// The returned object must not be deleted by the user.  

  // Iterating without retrieving a key
  virtual TObject* Next();

  // Iterating with retrieving a key
  TObject*  Next(Int_t& key);
  TObject*  Next(Int_t& keyFirst, Int_t& keySecond);
  TObject*  Next(TString& key);
  
  virtual void Reset(); 
  
  virtual const TCollection* GetCollection() const;

private:
#if (defined(ROOT_VERSION_CODE) && ROOT_VERSION_CODE >= 334082) || \
  (defined(ROOT_SVN_REVISION) && ROOT_SVN_REVISION >= 29598) 
  // ROOT_VERSION_CODE = 334082 corresponds to Root version 5.25/02
  // ROOT_SVN_REVISION is not defined in Root versions after moving in git
  typedef Long64_t Index_t;
#else    
  typedef Long_t Index_t;
#endif    
  Bool_t Next(Index_t& index, TObject*& object);
  
  TExMapIter* fIterator; ///< iterator we are wrapping

  ClassDef(AliMpExMapIterator,0) // TIterator for AliMpExMap
};


#endif
 AliMpExMapIterator.h:1
 AliMpExMapIterator.h:2
 AliMpExMapIterator.h:3
 AliMpExMapIterator.h:4
 AliMpExMapIterator.h:5
 AliMpExMapIterator.h:6
 AliMpExMapIterator.h:7
 AliMpExMapIterator.h:8
 AliMpExMapIterator.h:9
 AliMpExMapIterator.h:10
 AliMpExMapIterator.h:11
 AliMpExMapIterator.h:12
 AliMpExMapIterator.h:13
 AliMpExMapIterator.h:14
 AliMpExMapIterator.h:15
 AliMpExMapIterator.h:16
 AliMpExMapIterator.h:17
 AliMpExMapIterator.h:18
 AliMpExMapIterator.h:19
 AliMpExMapIterator.h:20
 AliMpExMapIterator.h:21
 AliMpExMapIterator.h:22
 AliMpExMapIterator.h:23
 AliMpExMapIterator.h:24
 AliMpExMapIterator.h:25
 AliMpExMapIterator.h:26
 AliMpExMapIterator.h:27
 AliMpExMapIterator.h:28
 AliMpExMapIterator.h:29
 AliMpExMapIterator.h:30
 AliMpExMapIterator.h:31
 AliMpExMapIterator.h:32
 AliMpExMapIterator.h:33
 AliMpExMapIterator.h:34
 AliMpExMapIterator.h:35
 AliMpExMapIterator.h:36
 AliMpExMapIterator.h:37
 AliMpExMapIterator.h:38
 AliMpExMapIterator.h:39
 AliMpExMapIterator.h:40
 AliMpExMapIterator.h:41
 AliMpExMapIterator.h:42
 AliMpExMapIterator.h:43
 AliMpExMapIterator.h:44
 AliMpExMapIterator.h:45
 AliMpExMapIterator.h:46
 AliMpExMapIterator.h:47
 AliMpExMapIterator.h:48
 AliMpExMapIterator.h:49
 AliMpExMapIterator.h:50
 AliMpExMapIterator.h:51
 AliMpExMapIterator.h:52
 AliMpExMapIterator.h:53
 AliMpExMapIterator.h:54
 AliMpExMapIterator.h:55
 AliMpExMapIterator.h:56
 AliMpExMapIterator.h:57
 AliMpExMapIterator.h:58
 AliMpExMapIterator.h:59
 AliMpExMapIterator.h:60
 AliMpExMapIterator.h:61
 AliMpExMapIterator.h:62
 AliMpExMapIterator.h:63
 AliMpExMapIterator.h:64
 AliMpExMapIterator.h:65
 AliMpExMapIterator.h:66
 AliMpExMapIterator.h:67