//+SEQ,CopyRight,T=NOINCLUDE. #ifndef ROOT_TInterpreter #define ROOT_TInterpreter ////////////////////////////////////////////////////////////////////////// // // // TInterpreter // // // // This class defines an abstract interface to a generic command line // // interpreter. // // // ////////////////////////////////////////////////////////////////////////// #ifndef ROOT_TNamed //*KEEP,TNamed. #include "TNamed.h" //*KEND. #endif #ifdef WIN32 # ifndef ROOT_TWin32HookViaThread #include "TWin32HookViaThread.h" # endif #endif class TClass; class TFunction; class TMethod; class TObjArray; class TInterpreter : #ifdef WIN32 protected TWin32HookViaThread, #endif public TNamed { protected: virtual void Execute(TMethod *method, TObjArray *params) = 0; public: TInterpreter() { } // for Dictionary TInterpreter(const char *name, const char *title = "Generic Interpreter"); virtual ~TInterpreter() { } virtual void ClearFileBusy() = 0; virtual void EndOfLineAction() = 0; virtual Int_t GetMore() const = 0; virtual char *GetPrompt() = 0; virtual const char *GetSharedLibs() = 0; virtual const char *GetIncludePath() = 0; virtual Int_t InitializeDictionaries() = 0; virtual void LoadMacro(const char *filename) = 0; virtual Int_t ProcessLine(const char *line) = 0; virtual Int_t ProcessLineSynch(const char *line) = 0; virtual void PrintIntro() = 0; virtual void Reset() = 0; virtual void ResetAll() = 0; virtual void ResetGlobals() = 0; virtual void RewindDictionary() = 0; virtual Int_t DeleteGlobal(void *obj) = 0; virtual void SaveContext() = 0; virtual void SaveGlobalsContext() = 0; virtual void UpdateListOfGlobals() = 0; virtual void UpdateListOfGlobalFunctions() = 0; virtual void UpdateListOfTypes() = 0; virtual void SetClassInfo(TClass *cl) = 0; virtual Long_t Calc(const char *line) = 0; virtual void CreateListOfBaseClasses(TClass *cl) = 0; virtual void CreateListOfDataMembers(TClass *cl) = 0; virtual void CreateListOfMethods(TClass *cl) = 0; virtual void CreateListOfMethodArgs(TFunction *m) = 0; virtual void *GetInterfaceMethod(TClass *cl, Text_t *method, Text_t *params) = 0; virtual void *GetInterfaceMethodWithPrototype(TClass *cl, Text_t *method, Text_t *proto) = 0; virtual void Execute(const Text_t *function, const Text_t *params) = 0; virtual void Execute(TObject *obj, TClass *cl, const Text_t *method, const Text_t *params) = 0; virtual void Execute(TObject *obj, TClass *cl, TMethod *method, TObjArray *params) = 0; virtual Int_t ExecuteMacro(const char *filename) = 0; virtual const char *TypeName(const char *s) = 0; ClassDef(TInterpreter,0) //ABC defining interface to generic interpreter }; R__EXTERN TInterpreter *gInterpreter; #endif