/* */ #ifndef _D_FTP_CONNECTION_H_ #define _D_FTP_CONNECTION_H_ #include "Socket.h" #include "Option.h" #include "Logger.h" #include "Segment.h" #include "Request.h" #include "common.h" #include using namespace std; class FtpConnection { private: int cuid; SocketHandle socket; const Request* req; const Option* option; const Logger* logger; string strbuf; int getStatus(const string& response) const; bool isEndOfResponse(int status, const string& response) const; bool bulkReceiveResponse(pair& response); public: FtpConnection(int cuid, const SocketHandle& socket, const Request* req, const Option* op); ~FtpConnection(); void sendUser() const; void sendPass() const; void sendType() const; void sendCwd() const; void sendSize() const; void sendPasv() const; SocketHandle sendPort() const; void sendRest(const Segment& segment) const; void sendRetr() const; int receiveResponse(); int receiveSizeResponse(long long int& size); int receivePasvResponse(pair& dest); }; #endif // _D_FTP_CONNECTION_H_