#ifndef _FTP_INTERPRETER_HPP_ #define _FTP_INTERPRETER_HPP_ #ifndef _COMMON_STRING_HPP_ #include #endif #ifndef _DISPLAY_EDITWINDOW_HPP_ #include #endif #ifndef _PARSE_TABLE_HPP_ #include #endif #ifndef _PARSE_SCAN_HPP_ #include #endif #ifndef _PARSE_PARSE_HPP_ #include #endif #ifndef _PARSE_ASSEMBLER_HPP_ #include #endif #ifndef _FTP_FTPCLIENT_HPP_ #include #endif #ifndef _FTP_RESINC_HPP_ #include #endif #ifndef _THREAD_MONITOR_HPP_ #include #endif class FTPInterpreter : private FTPClient, private Assembler { public: FTPInterpreter(void); virtual ~FTPInterpreter(); void interpretFile(const String &pathFileName); void interpretLine(const String &lineString); void setDisplay(Monitor &editMonitor); protected: virtual void message(const String &lineString); virtual void message(Block &lineStrings); private: void setText(const String &lineString); void setText(Block &lineStrings); void symbolLoad(void); void interpret(FileMap &srcMap); void appendHandler(const String &localPathFileName,const String &remotePathFileName); void remotehelpHandler(const String &remoteHelpTopic); void literalHandler(const String &literalString); void mdeleteHandler(const String ¶mString); void deleteHandler(const String &pathFileName); void openHandler(const String &hostName); void openHandler(const String &hostName,const String &userName,const String &password); void dirHandler(const String ¶mString); void lsHandler(const String ¶mString); void mdirHandler(const String &pathDirectory); void putHandler(const String &pathFileName); void sendHandler(const String &pathFileName); void typeHandler(const String ¶mString); void getHandler(const String &pathFileName); void mgetHandler(const String ¶mString); void mkdirHandler(const String &pathDirectory); void mlsHandler(const String &pathDirectory); void quoteHandler(const String &commandString); void recvHandler(const String &pathFileName); void userHandler(const String &userInfo); void cdHandler(const String &pathDirectory); void mputHandler(const String &pathFileName); void renameHandler(const String &oldPathFileName,const String &newPathFileName); void lcdHandler(const String &pathDirectory); void rmdirHandler(const String &pathDirectory); void disconnectHandler(void); void asciiHandler(void); void debugHandler(void); void promptHandler(void); void pwdHandler(void); void quitHandler(void); void statusHandler(void); void traceHandler(void); void bellHandler(void); void binaryHandler(void); void byeHandler(void); void globHandler(void); void hashHandler(void); void verboseHandler(void); void helpHandler(void); void closeHandler(void); String mNotConnected; String mNotLoggedIn; Monitor *mlpEditMonitor; Table mSymbolTable; }; inline FTPInterpreter::~FTPInterpreter() { } inline void FTPInterpreter::setDisplay(Monitor &editMonitor) { mlpEditMonitor=&editMonitor; mlpEditMonitor->enter(); (*mlpEditMonitor)->setText(STRING_VERSIONMSG); mlpEditMonitor->leave(); } inline void FTPInterpreter::setText(const String &lineString) { if(!mlpEditMonitor)return; mlpEditMonitor->enter(); (*mlpEditMonitor)->setText(lineString); mlpEditMonitor->leave(); } #endif