// @(#)root/rint:$Id$
// Author: Rene Brun   17/02/95

/*************************************************************************
 * Copyright (C) 1995-2000, 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_TRint
#define ROOT_TRint

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// Rint                                                                 //
//                                                                      //
// Rint is the ROOT Interactive Interface. It allows interactive access //
// to the ROOT system via a C++ interpreter.                            //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TApplication
#include "TApplication.h"
#endif
#ifndef ROOT_TString
#include "TString.h"
#endif

class TFileHandler;


class TRint : public TApplication {

private:
   Int_t         fNcmd;               // command history number
   TString       fDefaultPrompt;      // default prompt: "root [%d] "
   char          fPrompt[64];         // interpreter prompt
   Bool_t        fInterrupt;          // if true macro execution will be stopped
   Bool_t        fCaughtException;    // TRint just caught an exception or signal
   TFileHandler *fInputHandler;       // terminal input handler

   TRint(const TRint&);               // not implemented
   TRint& operator=(const TRint&);    // not implemented

   void    ExecLogon();
   Long_t  ProcessRemote(const char *line, Int_t *error = 0);
   Long_t  ProcessLineNr(const char* filestem, const char *line, Int_t *error = 0);

public:
   TRint(const char *appClassName, int *argc, char **argv,
         void *options = 0, int numOptions = 0, Bool_t noLogo = kFALSE);
   virtual             ~TRint();
   virtual char       *GetPrompt();
   virtual const char *SetPrompt(const char *newPrompt);
   virtual void        SetEchoMode(Bool_t mode);
   virtual void        HandleException(Int_t sig);
   virtual Bool_t      HandleTermInput();
   virtual void        PrintLogo(Bool_t lite = kFALSE);
   virtual void        Run(Bool_t retrn = kFALSE);
   virtual void        Terminate(int status);
           void        Interrupt() { fInterrupt = kTRUE; }
   virtual Int_t       TabCompletionHook(char *buf, int *pLoc, std::ostream& out);

   ClassDef(TRint,0);  //ROOT Interactive Application Interface
};

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