// @(#)root/tree:$Id$
// Author: Rene Brun   05/07/2004

/*************************************************************************
 * Copyright (C) 1995-2004, 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_TVirtualIndex
#define ROOT_TVirtualIndex


//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TVirtualIndex                                                        //
//                                                                      //
// Abstract interface for Tree Index                                    //
//                                                                      //
//////////////////////////////////////////////////////////////////////////


#ifndef ROOT_TNamed
#include "TNamed.h"
#endif

class TTree;

class TVirtualIndex : public TNamed {

protected:
   TTree         *fTree;          //! pointer to Tree

public:
   TVirtualIndex();
   virtual               ~TVirtualIndex();
   virtual void           Append(const TVirtualIndex *,Bool_t delaySort = kFALSE) = 0;
   virtual Long64_t       GetEntryNumberFriend(const TTree * /*parent*/) = 0;
   virtual Long64_t       GetEntryNumberWithIndex(Long64_t major, Long64_t minor) const = 0;
   virtual Long64_t       GetEntryNumberWithBestIndex(Long64_t major, Long64_t minor) const = 0;
   virtual const char    *GetMajorName()    const = 0;
   virtual const char    *GetMinorName()    const = 0;
   virtual Long64_t       GetN()            const = 0;
   virtual TTree         *GetTree()         const {return fTree;}
   virtual void           UpdateFormulaLeaves(const TTree *parent) = 0;
   virtual void           SetTree(const TTree *T) = 0;

   ClassDef(TVirtualIndex,1);  //Abstract interface for Tree Index
};

#endif

 TVirtualIndex.h:1
 TVirtualIndex.h:2
 TVirtualIndex.h:3
 TVirtualIndex.h:4
 TVirtualIndex.h:5
 TVirtualIndex.h:6
 TVirtualIndex.h:7
 TVirtualIndex.h:8
 TVirtualIndex.h:9
 TVirtualIndex.h:10
 TVirtualIndex.h:11
 TVirtualIndex.h:12
 TVirtualIndex.h:13
 TVirtualIndex.h:14
 TVirtualIndex.h:15
 TVirtualIndex.h:16
 TVirtualIndex.h:17
 TVirtualIndex.h:18
 TVirtualIndex.h:19
 TVirtualIndex.h:20
 TVirtualIndex.h:21
 TVirtualIndex.h:22
 TVirtualIndex.h:23
 TVirtualIndex.h:24
 TVirtualIndex.h:25
 TVirtualIndex.h:26
 TVirtualIndex.h:27
 TVirtualIndex.h:28
 TVirtualIndex.h:29
 TVirtualIndex.h:30
 TVirtualIndex.h:31
 TVirtualIndex.h:32
 TVirtualIndex.h:33
 TVirtualIndex.h:34
 TVirtualIndex.h:35
 TVirtualIndex.h:36
 TVirtualIndex.h:37
 TVirtualIndex.h:38
 TVirtualIndex.h:39
 TVirtualIndex.h:40
 TVirtualIndex.h:41
 TVirtualIndex.h:42
 TVirtualIndex.h:43
 TVirtualIndex.h:44
 TVirtualIndex.h:45
 TVirtualIndex.h:46
 TVirtualIndex.h:47
 TVirtualIndex.h:48
 TVirtualIndex.h:49
 TVirtualIndex.h:50
 TVirtualIndex.h:51
 TVirtualIndex.h:52
 TVirtualIndex.h:53
 TVirtualIndex.h:54