ROOT logo
/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
*                                                                        *
* Author: The ALICE Off-line Project.                                    *
* Contributors are mentioned in the code where appropriate.              *
*                                                                        *
* Permission to use, copy, modify and distribute this software and its   *
* documentation strictly for non-commercial purposes is hereby granted   *
* without fee, provided that the above copyright notice appears in all   *
* copies and that both the copyright notice and this permission notice   *
* appear in the supporting documentation. The authors make no claims     *
* about the suitability of this software for any purpose. It is          *
* provided "as is" without express or implied warranty.                  *
**************************************************************************/

// $Id$

#include "AliMUON2DMapIterator.h"

//-----------------------------------------------------------------------------
/// \class AliMUON2DMapIterator
/// Implementation of TIterator for 2Dmaps
/// 
/// A simple implementation of VDataIterator for 2Dmaps.
///
/// \author Laurent Aphecetche
//-----------------------------------------------------------------------------

#include "AliMpExMap.h"
#include "AliMpExMapIterator.h"
#include "AliLog.h"

/// \cond CLASSIMP
ClassImp(AliMUON2DMapIterator)
/// \endcond

//_____________________________________________________________________________
AliMUON2DMapIterator::AliMUON2DMapIterator(const AliMpExMap& theMap)
: TIterator(),
fkMap(&theMap),
fIter1(theMap.CreateIterator()),
fIter2(NextIterator())
{
  /// default ctor
  Reset();
}

//_____________________________________________________________________________
AliMUON2DMapIterator& 
AliMUON2DMapIterator::operator=(const TIterator& /*rhs*/)
{
  // overriden operator= (imposed by Root's definition of TIterator::operator= ?)
  
  AliFatalGeneral("operator=(TIterator&)",""); // as in copy ctor
  return *this;
}

//_____________________________________________________________________________
AliMUON2DMapIterator::~AliMUON2DMapIterator()
{
  /// dtor
  delete fIter1;
  delete fIter2;
}

//_____________________________________________________________________________
const TCollection* 
AliMUON2DMapIterator::GetCollection() const
{
  /// Return 0 as we're not really dealing with a Root TCollection...
  return 0x0;
}

//_____________________________________________________________________________
TIterator*
AliMUON2DMapIterator::NextIterator()
{
  /// Get next map (from fIter1) and create an iterator to it
  
  AliMpExMap* m = static_cast<AliMpExMap*>(fIter1->Next());

  if (!m) return 0x0;
  
  return m->CreateIterator();
}

//_____________________________________________________________________________
TObject*
AliMUON2DMapIterator::Next()
{
  /// return next object
  
  if (!fIter2) return 0x0;

  TObject* o = fIter2->Next();
  
  if (!o)
  {
    delete fIter2;
    fIter2 = NextIterator();
    return Next();
  }
  
  return o;
}

//_____________________________________________________________________________
void
AliMUON2DMapIterator::Reset()
{
  /// rewind the iterator
  
  delete fIter2;
  fIter1->Reset();
  fIter2 = NextIterator();
}

 AliMUON2DMapIterator.cxx:1
 AliMUON2DMapIterator.cxx:2
 AliMUON2DMapIterator.cxx:3
 AliMUON2DMapIterator.cxx:4
 AliMUON2DMapIterator.cxx:5
 AliMUON2DMapIterator.cxx:6
 AliMUON2DMapIterator.cxx:7
 AliMUON2DMapIterator.cxx:8
 AliMUON2DMapIterator.cxx:9
 AliMUON2DMapIterator.cxx:10
 AliMUON2DMapIterator.cxx:11
 AliMUON2DMapIterator.cxx:12
 AliMUON2DMapIterator.cxx:13
 AliMUON2DMapIterator.cxx:14
 AliMUON2DMapIterator.cxx:15
 AliMUON2DMapIterator.cxx:16
 AliMUON2DMapIterator.cxx:17
 AliMUON2DMapIterator.cxx:18
 AliMUON2DMapIterator.cxx:19
 AliMUON2DMapIterator.cxx:20
 AliMUON2DMapIterator.cxx:21
 AliMUON2DMapIterator.cxx:22
 AliMUON2DMapIterator.cxx:23
 AliMUON2DMapIterator.cxx:24
 AliMUON2DMapIterator.cxx:25
 AliMUON2DMapIterator.cxx:26
 AliMUON2DMapIterator.cxx:27
 AliMUON2DMapIterator.cxx:28
 AliMUON2DMapIterator.cxx:29
 AliMUON2DMapIterator.cxx:30
 AliMUON2DMapIterator.cxx:31
 AliMUON2DMapIterator.cxx:32
 AliMUON2DMapIterator.cxx:33
 AliMUON2DMapIterator.cxx:34
 AliMUON2DMapIterator.cxx:35
 AliMUON2DMapIterator.cxx:36
 AliMUON2DMapIterator.cxx:37
 AliMUON2DMapIterator.cxx:38
 AliMUON2DMapIterator.cxx:39
 AliMUON2DMapIterator.cxx:40
 AliMUON2DMapIterator.cxx:41
 AliMUON2DMapIterator.cxx:42
 AliMUON2DMapIterator.cxx:43
 AliMUON2DMapIterator.cxx:44
 AliMUON2DMapIterator.cxx:45
 AliMUON2DMapIterator.cxx:46
 AliMUON2DMapIterator.cxx:47
 AliMUON2DMapIterator.cxx:48
 AliMUON2DMapIterator.cxx:49
 AliMUON2DMapIterator.cxx:50
 AliMUON2DMapIterator.cxx:51
 AliMUON2DMapIterator.cxx:52
 AliMUON2DMapIterator.cxx:53
 AliMUON2DMapIterator.cxx:54
 AliMUON2DMapIterator.cxx:55
 AliMUON2DMapIterator.cxx:56
 AliMUON2DMapIterator.cxx:57
 AliMUON2DMapIterator.cxx:58
 AliMUON2DMapIterator.cxx:59
 AliMUON2DMapIterator.cxx:60
 AliMUON2DMapIterator.cxx:61
 AliMUON2DMapIterator.cxx:62
 AliMUON2DMapIterator.cxx:63
 AliMUON2DMapIterator.cxx:64
 AliMUON2DMapIterator.cxx:65
 AliMUON2DMapIterator.cxx:66
 AliMUON2DMapIterator.cxx:67
 AliMUON2DMapIterator.cxx:68
 AliMUON2DMapIterator.cxx:69
 AliMUON2DMapIterator.cxx:70
 AliMUON2DMapIterator.cxx:71
 AliMUON2DMapIterator.cxx:72
 AliMUON2DMapIterator.cxx:73
 AliMUON2DMapIterator.cxx:74
 AliMUON2DMapIterator.cxx:75
 AliMUON2DMapIterator.cxx:76
 AliMUON2DMapIterator.cxx:77
 AliMUON2DMapIterator.cxx:78
 AliMUON2DMapIterator.cxx:79
 AliMUON2DMapIterator.cxx:80
 AliMUON2DMapIterator.cxx:81
 AliMUON2DMapIterator.cxx:82
 AliMUON2DMapIterator.cxx:83
 AliMUON2DMapIterator.cxx:84
 AliMUON2DMapIterator.cxx:85
 AliMUON2DMapIterator.cxx:86
 AliMUON2DMapIterator.cxx:87
 AliMUON2DMapIterator.cxx:88
 AliMUON2DMapIterator.cxx:89
 AliMUON2DMapIterator.cxx:90
 AliMUON2DMapIterator.cxx:91
 AliMUON2DMapIterator.cxx:92
 AliMUON2DMapIterator.cxx:93
 AliMUON2DMapIterator.cxx:94
 AliMUON2DMapIterator.cxx:95
 AliMUON2DMapIterator.cxx:96
 AliMUON2DMapIterator.cxx:97
 AliMUON2DMapIterator.cxx:98
 AliMUON2DMapIterator.cxx:99
 AliMUON2DMapIterator.cxx:100
 AliMUON2DMapIterator.cxx:101
 AliMUON2DMapIterator.cxx:102
 AliMUON2DMapIterator.cxx:103
 AliMUON2DMapIterator.cxx:104
 AliMUON2DMapIterator.cxx:105
 AliMUON2DMapIterator.cxx:106
 AliMUON2DMapIterator.cxx:107
 AliMUON2DMapIterator.cxx:108
 AliMUON2DMapIterator.cxx:109
 AliMUON2DMapIterator.cxx:110
 AliMUON2DMapIterator.cxx:111
 AliMUON2DMapIterator.cxx:112
 AliMUON2DMapIterator.cxx:113
 AliMUON2DMapIterator.cxx:114
 AliMUON2DMapIterator.cxx:115
 AliMUON2DMapIterator.cxx:116
 AliMUON2DMapIterator.cxx:117