AliRoot Core  a565103 (a565103)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliMpExMapIterator.cxx
Go to the documentation of this file.
1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15 
16 // $Id$
17 
18 //-----------------------------------------------------------------------------
19 // Class AliMpExMapIterator
20 // ------------------------
21 // Implementation of TIterator for AliMpExMap
22 // Author: Laurent Aphecetche
23 //-----------------------------------------------------------------------------
24 
25 #include "AliMpExMapIterator.h"
26 #include "AliMpExMap.h"
27 
28 #include "AliLog.h"
29 
30 #include <TClass.h>
31 #include <TExMap.h>
32 #include <TString.h>
33 
37 
38 //_____________________________________________________________________________
40 : TIterator(),
41  fIterator(new TExMapIter(&(theMap.fMap)))
42 {
44 }
45 
46 //_____________________________________________________________________________
48 : TIterator(rhs),
49  fIterator(rhs.fIterator)
50 {
52 }
53 
54 //_____________________________________________________________________________
57 {
59 
60  if ( this != &rhs )
61  {
62  fIterator = rhs.fIterator;
63  }
64  return *this;
65 }
66 
67 //_____________________________________________________________________________
69 AliMpExMapIterator::operator=(const TIterator& rhs)
70 {
72 
73  if ( this != &rhs && rhs.IsA() == AliMpExMapIterator::Class() )
74  {
75  const AliMpExMapIterator& rhs1 = static_cast<const AliMpExMapIterator&>(rhs);
76  fIterator = rhs1.fIterator;
77  }
78  return *this;
79 }
80 
81 //_____________________________________________________________________________
83 {
85 
86  delete fIterator;
87 }
88 
89 //_____________________________________________________________________________
90 Bool_t
91 AliMpExMapIterator::Next(Index_t& index, TObject*& object)
92 {
94 
95  Index_t value = 0;
96 
97  object = 0;
98 
99  Bool_t rv = fIterator->Next(index,value);
100 
101  if ( rv )
102  {
103  object = reinterpret_cast<TObject*> (value);
104  }
105 
106  return rv;
107 }
108 
109 //_____________________________________________________________________________
110 TObject*
112 {
115  Index_t dummy;
116  TObject* o(0x0);
117  Next(dummy,o);
118  return o;
119 }
120 
121 //_____________________________________________________________________________
122 TObject*
124 {
127 
128  TObject* o;
129  Index_t index;
130  Next(index,o);
131  key = (Int_t)(index);
132  return o;
133 }
134 
135 //_____________________________________________________________________________
136 TObject*
137 AliMpExMapIterator::Next(Int_t& keyFirst, Int_t& keySecond)
138 {
141  Index_t index;
142  TObject* o(0x0);
143  Next(index,o);
144  keyFirst = AliMpExMap::GetPairFirst(index);
145  keySecond = AliMpExMap::GetPairSecond(index);
146  return o;
147 }
148 
149 //_____________________________________________________________________________
150 TObject*
152 {
155  Index_t index;
156  TObject* o(0x0);
157  Next(index,o);
158  key = AliMpExMap::GetString(index);
159  return o;
160 }
161 
162 //_____________________________________________________________________________
163 void
165 {
167 
168  fIterator->Reset();
169 }
170 
171 //_____________________________________________________________________________
172 const TCollection*
174 {
176 
177  return 0x0;
178 }
AliMpExMapIterator & operator=(const AliMpExMapIterator &rhs)
TExMapIter * fIterator
iterator we are wrapping
ClassImp(TPCGenInfo)
Definition: AliTPCCmpNG.C:254
virtual TObject * Next()
The returned object must not be deleted by the user.
virtual const TCollection * GetCollection() const
AliMpExMapIterator(const AliMpExMap &theMap)
static Int_t GetPairSecond(Long_t index)
Definition: AliMpExMap.cxx:191
static TString GetString(Long_t index)
Definition: AliMpExMap.cxx:86
Implementation of TIterator for AliMpExMap.
Helper class making Root persistent TExMap.
Definition: AliMpExMap.h:28
static Int_t GetPairFirst(Long_t index)
Definition: AliMpExMap.cxx:183