// @(#)root/table:$Id$
// Author: Valery Fine(fine@bnl.gov)   03/12/99

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/
#ifndef ROOT_TTableIter
#define ROOT_TTableIter

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TTableIter - class iterator to loop over sorted TTable's             //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#include "TObject.h"

class TTableSorter;

class TTableIter : public TObject {
private:
   const TTableSorter *fTableSorter;
   Int_t  fIndx;
   Int_t  fTotalKeys;
   Int_t  fFirstIndx;
   TTableIter(const TTableIter &org); // Intentioanlly not implemented
   TTableIter &operator=(const TTableIter &org); // Intentioanlly not implemented
protected:
   TTableIter(){;}

public:
   TTableIter(const TTableSorter *table, Float_t  &keyvalue);
   TTableIter(const TTableSorter *table, Double_t &keyvalue);
   TTableIter(const TTableSorter *table, Int_t    &keyvalue);
   TTableIter(const TTableSorter *table, Long_t   &keyvalue);
   TTableIter(const TTableSorter *table, Short_t  &keyvalue);

   virtual ~TTableIter(){;}

   Int_t CountKey(Float_t &keyvalue);
   Int_t CountKey(Long_t &keyvalue);
   Int_t CountKey(Int_t &keyvalue);
   Int_t CountKey(Short_t &keyvalue);
   Int_t CountKey(Double_t &keyvalue);

   Int_t GetNRows() const;
   Int_t Next();
   Int_t Next(Int_t idx);
   Int_t Reset(Int_t indx=0);
   Int_t operator()();
   Int_t operator[](Int_t idx);
   ClassDef(TTableIter,0) // Iterator over "sorted" TTable objects
};

//_____________________________________________________________________
inline Int_t TTableIter::GetNRows() const { return fTotalKeys;}
//_____________________________________________________________________
inline Int_t TTableIter::operator()() { return Next();}

//_____________________________________________________________________
inline Int_t TTableIter::operator[](Int_t idx) { return Next(idx);}

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