// @(#)root/hbook:$Id$
// Author: Rene Brun   18/02/2002

/*************************************************************************
 * Copyright (C) 1995-2002, 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_THbookFile
#define ROOT_THbookFile


//////////////////////////////////////////////////////////////////////////
//                                                                      //
// THbookFile                                                           //
//                                                                      //
// ROOT interface to Hbook/PAW files                                    //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TFile
#include "TFile.h"
#endif


class TTreeFormula;

class THbookFile : public TNamed {

protected:
   Int_t         fLun;     //Fortran logical unit for this file
   Int_t         fLrecl;   //Record length in Hbook machine words
   TList        *fList;    //list of objects in memory
   TList        *fKeys;    //list of Hbook keys (Ids) on disk
   TString       fCurDir;  //name of current directory

   static Bool_t fgPawInit;
   static Int_t *fgLuns;

public:

   THbookFile();
   THbookFile(const char *fname, Int_t lrecl=1024);
   virtual ~THbookFile();
   virtual void      Browse(TBrowser *b);
   virtual Bool_t    cd(const char *dirname="");
   virtual void      Close(Option_t *option="");
   virtual TFile    *Convert2root(const char *rootname="", Int_t lrecl=0, Option_t *option=""); // *MENU*
   virtual TObject  *ConvertCWN(Int_t id);
   virtual TObject  *ConvertRWN(Int_t id);
   virtual TObject  *ConvertProfile(Int_t id);
   virtual TObject  *Convert1D(Int_t id);
   virtual TObject  *Convert2D(Int_t id);
           void      DeleteID(Int_t id);
   virtual TObject  *FindObject(const char *name) const;
   virtual TObject  *FindObject(const TObject *obj) const;
   TObject          *Get(Int_t id);
   const char       *GetCurDir() const {return fCurDir.Data();}
   Int_t             GetEntry(Int_t entry,Int_t id, Int_t atype, Float_t *x);
   Int_t             GetEntryBranch(Int_t entry,Int_t id);
   Long64_t          GetSize() const {return 0;}
   TList            *GetList() const {return fList;}
   TList            *GetListOfKeys() const { return fKeys; }
   void              InitLeaves(Int_t id, Int_t var, TTreeFormula *formula);
   Bool_t            IsFolder() const { return kTRUE; }
   virtual Bool_t    IsOpen() const;
   virtual void      ls(const char *path="") const;
   virtual void      SetBranchAddress(Int_t id, const char *bname, void *add);

   ClassDef(THbookFile,1)  //ROOT interface to Hbook/PAW files
};

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