#ifndef __TMrbLofData_h__
#define __TMrbLofData_h__
#include "Rtypes.h"
#include "TString.h"
#include "TSystem.h"
#include "TNamed.h"
class TMrbLofData: public TNamed {
public:
TMrbLofData() {};
TMrbLofData(const Char_t * Name, Int_t NofEntries, Int_t EntrySize);
~TMrbLofData() { if (fData) delete [] fData; };
Bool_t Reset(Bool_t ClearFlag = kFALSE);
Bool_t Fill(Int_t Index = -1, const Char_t Data = 0);
Char_t * At(Int_t Index) const;
Char_t * Next(Bool_t ClearFlag = kFALSE);
void Clear(const Option_t * Option) { TObject::Clear(Option); };
Bool_t Clear(Int_t Index = -1);
Bool_t Clear(Char_t * Address);
Char_t * FindEmpty(Char_t * After = NULL) const;
Char_t * FindNonEmpty(Char_t * After = NULL) const;
Int_t GetIndex(Char_t * Addr) const;
virtual Bool_t IsEmpty(Char_t * Addr) const;
virtual Bool_t IsEmpty(Int_t Index) const;
void Print(Option_t * Option) const { TObject::Print(Option); }
void Print(ostream & Out, Char_t * Addr = NULL, Bool_t NonEmpty = kFALSE) const;
void Print(ostream & Out, Int_t Index, Bool_t NonEmpty = kFALSE) const;
inline void Print(Char_t * Addr = NULL, Bool_t NonEmpty = kFALSE) const { Print(cout, Addr, NonEmpty); };
inline void Print(Int_t Index, Bool_t NonEmpty = kFALSE) const { Print(cout, Index, NonEmpty); };
inline Int_t GetNofEntries() const { return(fNofEntries); };
inline Int_t GetEntrySize() const { return(fEntrySize); };
inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };
protected:
Int_t fNofEntries;
Int_t fEntrySize;
Char_t * fData;
Int_t fCurIndex;
ClassDef(TMrbLofData, 1)
};
#endif