#ifndef __TMrbTail_h__
#define __TMrbTail_h__
namespace std {} using namespace std;
#include <cstdlib>
#include <iostream>
#include <sstream>
#include <iomanip>
#include <fstream>
#include "TMrbNamedX.h"
#include "TMrbLogger.h"
class TMrbTail: public TMrbNamedX {
public:
enum EMrbTailOut { kMrbTailOutUndef = 0,
kMrbTailOutLogger,
kMrbTailOutStdio,
kMrbTailOutSlot
};
public:
TMrbTail() {};
TMrbTail(const Char_t * TailName, const Char_t * TailFile);
TMrbTail(const Char_t * TailName, FILE * TailStrm);
virtual ~TMrbTail() {};
Bool_t SetOutput(TMrbLogger * Logger);
Bool_t SetOutput(ostream & Stdout, ostream & StdErr);
Bool_t SetOutput(const Char_t * RecvName, TObject * Recv, const Char_t * Slot);
inline TFileHandler * GetFH() { return(fFH); };
void Start();
void HandleInput();
inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };
protected:
void Setup();
void ToLogger(TString & Text);
void ToStdio(TString & Text);
protected:
TString fTailFile;
FILE * fStrm;
Bool_t fStopIt;
TFileHandler * fFH;
EMrbTailOut fOutputMode;
TMrbLogger * fLogger;
ostream * fStdout;
ostream * fStderr;
TMrbNamedX fRecv;
ClassDef(TMrbTail, 1)
};
#endif