1/*
2 * Copyright 1998-1999 Be, Inc. All Rights Reserved.
3 * Copyright 2003-2019 Haiku, Inc. All rights reserved.
4 * Distributed under the terms of the MIT License.
5 */
6#ifndef SFTP_CLIENT_H
7#define SFTP_CLIENT_H
8
9
10#include <stdio.h>
11#include <string>
12
13#include <Catalog.h>
14#include <File.h>
15#include <Locale.h>
16
17#include "SpawningUploadClient.h"
18
19
20#undef B_TRANSLATION_CONTEXT
21#define B_TRANSLATION_CONTEXT "SftpClient"
22
23
24using std::string;
25
26
27class SftpClient : public SpawningUploadClient {
28public:
29								SftpClient();
30	virtual						~SftpClient();
31
32	virtual	bool				Connect(const string& server,
33									const string& login,
34									const string& passwd);
35
36			bool				PutFile(const string& local,
37									const string& remote,
38									ftp_mode mode = binary_mode);
39
40			bool				GetFile(const string& remote,
41									const string& local,
42									ftp_mode mode = binary_mode);
43
44			bool				MoveFile(const string& oldPath,
45									const string& newPath);
46			bool				ChangeDir(const string& dir);
47			bool				PrintWorkingDir(string& dir);
48			bool				ListDirContents(string& listing);
49			bool				Chmod(const string& path, const string& mod);
50
51			void				SetPassive(bool on);
52
53private:
54			const char*			_GetLongReadText() const;
55			const char*			_GetReadText() const;
56			const char*			_GetReplyText() const;
57};
58
59#endif	// SFTP_CLIENT_H
60