00001 #include <efltk/Fl_String.h>
00002 #include <efltk/Fl_String_List.h>
00003 #include <efltk/Fl_Data_Source.h>
00004 #include <efltk/Fl_Socket.h>
00005
00006 class FL_API Fl_FTP_Socket : public Fl_Socket {
00007 Fl_String_List m_response;
00008 public:
00009 Fl_FTP_Socket();
00010 ~Fl_FTP_Socket();
00011
00012
00013 virtual void open(Fl_String hostName="", int port=0);
00014
00015 const Fl_String_List& response() const { return m_response; }
00016 const Fl_String_List& login(Fl_String user,Fl_String password);
00017 const Fl_String_List& command(Fl_String cmd);
00018
00019 const Fl_String_List& get_response();
00020 };
00021
00022 class FL_API Fl_FTP_Connect {
00023 protected:
00024 Fl_FTP_Socket m_commandSocket;
00025 Fl_FTP_Socket m_dataSocket;
00026 Fl_String m_user;
00027 Fl_String m_password;
00028 Fl_String m_host;
00029 int m_port;
00030 bool m_passive;
00031 protected:
00032 void open_data_port();
00033 void command(Fl_String cmd);
00034 void get_list(Fl_String cmd,Fl_String_List& list);
00035 public:
00036 Fl_FTP_Connect();
00037 ~Fl_FTP_Connect();
00038
00039 void passive(bool p) { m_passive = p; }
00040 bool passive() const { return m_passive; }
00041
00042 void user(Fl_String u) { m_user = u; }
00043 Fl_String user() const { return m_user; }
00044
00045 void password(Fl_String p) { m_password = p; }
00046 Fl_String password() const { return m_password; }
00047
00048 void host(Fl_String hostName,int portNumber=21);
00049
00050 void open();
00051 void close();
00052
00053 const Fl_String_List& response() const { return m_commandSocket.response(); }
00054
00055 bool active() const { return m_commandSocket.active(); }
00056
00057
00058 void cmd_quit();
00059 void cmd_type(char type);
00060 void cmd_cd(Fl_String dir);
00061 void cmd_pwd();
00062
00063 void cmd_list(Fl_String_List& result);
00064 void cmd_nlst(Fl_String_List& result);
00065
00066 void cmd_retr(Fl_String fileName);
00067 void cmd_store(Fl_String fileName);
00068 };