xref: /haiku/src/apps/codycam/SpawningUploadClient.h (revision 586cf6aebac7723ffbea3d68e56f42eba323bcc2)
142b2e5d5SFrançois Revol #ifndef SPAWNING_UPLOAD_CLIENT_H
242b2e5d5SFrançois Revol #define SPAWNING_UPLOAD_CLIENT_H
342b2e5d5SFrançois Revol 
442b2e5d5SFrançois Revol #include "FileUploadClient.h"
542b2e5d5SFrançois Revol 
642b2e5d5SFrançois Revol #include <OS.h>
742b2e5d5SFrançois Revol #include <stdio.h>
842b2e5d5SFrançois Revol #include <string>
942b2e5d5SFrançois Revol 
1042b2e5d5SFrançois Revol 
1142b2e5d5SFrançois Revol class SpawningUploadClient : public FileUploadClient {
1242b2e5d5SFrançois Revol 	public:
1342b2e5d5SFrançois Revol 		SpawningUploadClient();
1442b2e5d5SFrançois Revol virtual	~SpawningUploadClient();
1542b2e5d5SFrançois Revol 
1642b2e5d5SFrançois Revol virtual bool	Connect(const string& server, const string& login,
1742b2e5d5SFrançois Revol 						const string& passwd);
1842b2e5d5SFrançois Revol 
1942b2e5d5SFrançois Revol virtual bool	PutFile(const string& local, const string& remote,
2042b2e5d5SFrançois Revol 						ftp_mode mode = binary_mode);
2142b2e5d5SFrançois Revol 
2242b2e5d5SFrançois Revol virtual bool	GetFile(const string& remote, const string& local,
2342b2e5d5SFrançois Revol 						ftp_mode mode = binary_mode);
2442b2e5d5SFrançois Revol 
2542b2e5d5SFrançois Revol virtual bool	MoveFile(const string& oldPath, const string& newPath);
2642b2e5d5SFrançois Revol virtual bool	ChangeDir(const string& dir);
2742b2e5d5SFrançois Revol virtual bool	PrintWorkingDir(string& dir);
2842b2e5d5SFrançois Revol virtual bool	ListDirContents(string& listing);
2942b2e5d5SFrançois Revol virtual bool	Chmod(const string& path, const string& mod);
3042b2e5d5SFrançois Revol 
3142b2e5d5SFrançois Revol virtual void	SetPassive(bool on);
3242b2e5d5SFrançois Revol 
3342b2e5d5SFrançois Revol protected:
3442b2e5d5SFrançois Revol status_t		SetCommandLine(const char *command);
3542b2e5d5SFrançois Revol ssize_t			SendCommand(const char *cmd);
3642b2e5d5SFrançois Revol ssize_t			ReadReply(BString *to);
3742b2e5d5SFrançois Revol virtual status_t	ParseReply();
38*586cf6aeSFrançois Revol int				getpty(char *pty, char *tty);
3942b2e5d5SFrançois Revol 
4042b2e5d5SFrançois Revol int				InputPipe() const { return fPty; };
4142b2e5d5SFrançois Revol int				OutputPipe() const { return fPty; };
4242b2e5d5SFrançois Revol 
4342b2e5d5SFrançois Revol private:
4442b2e5d5SFrançois Revol bool			SpawnCommand();
4542b2e5d5SFrançois Revol string			fCommand;
4642b2e5d5SFrançois Revol pid_t			fCommandPid;
4742b2e5d5SFrançois Revol int				fPty;
4842b2e5d5SFrançois Revol };
4942b2e5d5SFrançois Revol 
5042b2e5d5SFrançois Revol #endif	// SPAWNING_UPLOAD_CLIENT_H
51