Qore Programming Language  0.8.7
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
QoreFtpClient.h
1 /* -*- mode: c++; indent-tabs-mode: nil -*- */
2 /*
3  QoreFtpClient.h
4 
5  thread-safe Qore QoreFtpClient object
6 
7  Qore Programming Language
8 
9  Copyright 2003 - 2013 David Nichols
10 
11  This library is free software; you can redistribute it and/or
12  modify it under the terms of the GNU Lesser General Public
13  License as published by the Free Software Foundation; either
14  version 2.1 of the License, or (at your option) any later version.
15 
16  This library is distributed in the hope that it will be useful,
17  but WITHOUT ANY WARRANTY; without even the implied warranty of
18  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19  Lesser General Public License for more details.
20 
21  You should have received a copy of the GNU Lesser General Public
22  License along with this library; if not, write to the Free Software
23  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
24 */
25 
26 #ifndef _QORE_QOREFTPCLIENT_H
27 
28 #define _QORE_QOREFTPCLIENT_H
29 
30 #define DEFAULT_FTP_CONTROL_PORT 21
31 #define DEFAULT_FTP_DATA_PORT 20
32 
33 #define DEFAULT_USERNAME "anonymous"
34 #define DEFAULT_PASSWORD "qore@nohost.com"
35 
36 class FtpResp;
37 class Queue;
38 
40 
61 protected:
63  struct qore_ftp_private *priv;
64 
66  DLLLOCAL QoreFtpClient(const QoreFtpClient&);
67 
69  DLLLOCAL QoreFtpClient& operator=(const QoreFtpClient&);
70 
71 public:
73 
78  DLLEXPORT QoreFtpClient(const QoreString *url, ExceptionSink *xsink);
79 
81  DLLEXPORT QoreFtpClient();
82 
84  DLLEXPORT ~QoreFtpClient();
85 
87 
91  DLLEXPORT int connect(ExceptionSink *xsink);
92 
94 
97  DLLEXPORT int disconnect();
98 
100 
106  DLLEXPORT int cwd(const char *dir, ExceptionSink *xsink);
107 
109 
113  DLLEXPORT QoreStringNode *pwd(ExceptionSink *xsink);
114 
116 
122  DLLEXPORT int put(const char *localpath, const char *remotename, ExceptionSink *xsink);
123 
125 
134  DLLEXPORT int get(const char *remotepath, const char *localname, ExceptionSink *xsink);
135 
137 
144  DLLEXPORT int putData(const void *data, qore_size_t len, const char *remotename, ExceptionSink *xsink);
145 
147 
152  DLLEXPORT QoreStringNode *getAsString(const char *remotepath, ExceptionSink *xsink);
153 
155 
160  DLLEXPORT BinaryNode *getAsBinary(const char *remotepath, ExceptionSink *xsink);
161 
163 
169  DLLEXPORT int rename(const char *from, const char *to, ExceptionSink *xsink);
170 
172 
178  DLLEXPORT QoreStringNode *list(const char *path, bool long_list, ExceptionSink *xsink);
179 
181 
186  DLLEXPORT int del(const char *file, ExceptionSink *xsink);
187 
189 
194  DLLEXPORT int mkdir(const char *remotepath, ExceptionSink *xsink);
195 
197 
202  DLLEXPORT int rmdir(const char *remotepath, ExceptionSink *xsink);
203 
205  DLLEXPORT int getPort() const;
206 
208  DLLEXPORT const char *getUserName() const;
209 
211  DLLEXPORT const char *getPassword() const;
212 
214  DLLEXPORT const char *getHostName() const;
215 
217 
222  DLLEXPORT void setURL(const QoreString *url, ExceptionSink *xsink);
223 
225 
228  DLLEXPORT QoreStringNode *getURL() const;
229 
231  DLLEXPORT void setPort(int p);
232 
234  DLLEXPORT void setUserName(const char *u);
235 
237  DLLEXPORT void setPassword(const char *p);
238 
240  DLLEXPORT void setHostName(const char *h);
241 
243 
245  DLLEXPORT int setSecure();
246 
248 
250  DLLEXPORT int setInsecure();
251 
253 
257  DLLEXPORT int setInsecureData();
258 
260 
263  DLLEXPORT bool isSecure() const;
264 
266 
269  DLLEXPORT bool isDataSecure() const;
270 
272 
275  DLLEXPORT const char *getSSLCipherName() const;
276 
278 
281  DLLEXPORT const char *getSSLCipherVersion() const;
282 
284  DLLEXPORT long verifyPeerCertificate() const;
285 
287  DLLEXPORT void setModeAuto();
288 
290  DLLEXPORT void setModeEPSV();
291 
293  DLLEXPORT void setModePASV();
294 
296  DLLEXPORT void setModePORT();
297 
299  DLLLOCAL void setEventQueue(Queue *cbq, ExceptionSink *xsink);
300 
302  DLLLOCAL void setDataEventQueue(Queue *cbq, ExceptionSink *xsink);
303 
305  DLLLOCAL void setControlEventQueue(Queue *cbq, ExceptionSink *xsink);
306 
307  DLLLOCAL void cleanup(ExceptionSink *xsink);
308 };
309 
310 #endif // _QORE_OBJECTS_FTPCLIENT_H