#ifndef ROOT_TProofLog
#define ROOT_TProofLog
#ifndef ROOT_TDatime
#include "TDatime.h"
#endif
#ifndef ROOT_TNamed
#include "TNamed.h"
#endif
#ifndef ROOT_TQObject
#include "TQObject.h"
#endif
class TMacro;
class TProofLogElem;
class TProofMgr;
class TProofLog : public TNamed, public TQObject {
friend class TProofLogElem;
friend class TProofMgrLite;
friend class TXProofMgr;
private:
TProofMgr *fMgr;
void *fFILE;
TList *fElem;
TDatime fStartTime;
TProofLogElem *Add(const char *ord, const char *url);
public:
enum ELogLocationBit {
kLogToBox = BIT(16)
};
enum ERetrieveOpt { kLeading = 0x1, kTrailing = 0x2,
kAll = 0x3, kGrep = 0x4 };
TProofLog(const char *stag, const char *url, TProofMgr *mgr);
virtual ~TProofLog();
void Display(const char *ord = "*", Int_t from = -10, Int_t to = -1);
TList *GetListOfLogs() const { return fElem; }
Int_t Grep(const char *txt, Int_t from = 0);
void Print(Option_t *opt = 0) const;
void Prt(const char *what);
Int_t Retrieve(const char *ord = "*",
TProofLog::ERetrieveOpt opt = TProofLog::kTrailing,
const char *fname = 0, const char *pattern = 0);
Int_t Save(const char *ord = "*", const char *fname = 0, Option_t *opt="w");
TDatime StartTime() { return fStartTime; }
void SetLogToBox(Bool_t lgbox = kFALSE) { SetBit(kLogToBox, lgbox); }
Bool_t LogToBox() { return (TestBit(kLogToBox)) ? kTRUE : kFALSE; }
static void SetMaxTransferSize(Long64_t maxsz);
ClassDef(TProofLog,0)
};
class TProofLogElem : public TNamed {
private:
TProofLog *fLogger;
TMacro *fMacro;
Long64_t fSize;
Long64_t fFrom;
Long64_t fTo;
TString fRole;
static Long64_t fgMaxTransferSize;
public:
TProofLogElem(const char *ord, const char *url,
TProofLog *logger);
virtual ~TProofLogElem();
void Display(Int_t from = 0, Int_t to = -1);
TMacro *GetMacro() const { return fMacro; }
const char * GetRole() { return fRole.Data(); }
Int_t Grep(const char *txt, TString &res, Int_t from = 0);
Bool_t IsMaster() const { return (fRole == "master") ? kTRUE : kFALSE; }
Bool_t IsSubMaster() const { return (fRole == "submaster") ? kTRUE : kFALSE; }
Bool_t IsWorker() const { return (fRole == "worker") ? kTRUE : kFALSE; }
void Print(Option_t *opt = 0) const;
void Prt(const char *what);
Int_t Retrieve(TProofLog::ERetrieveOpt opt = TProofLog::kTrailing,
const char *pattern = 0);
static Long64_t GetMaxTransferSize();
static void SetMaxTransferSize(Long64_t maxsz);
ClassDef(TProofLogElem,0)
};
#endif