set eol-style:native
[reactos.git] / reactos / lib / libxml2 / include / libxml / nanoftp.h
1 /*
2 * Summary: minimal FTP implementation
3 * Description: minimal FTP implementation allowing to fetch resources
4 * like external subset.
5 *
6 * Copy: See Copyright for the status of this software.
7 *
8 * Author: Daniel Veillard
9 */
10
11 #ifndef __NANO_FTP_H__
12 #define __NANO_FTP_H__
13
14 #include <libxml/xmlversion.h>
15
16 #ifdef LIBXML_FTP_ENABLED
17
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21
22 /**
23 * ftpListCallback:
24 * @userData: user provided data for the callback
25 * @filename: the file name (including "->" when links are shown)
26 * @attrib: the attribute string
27 * @owner: the owner string
28 * @group: the group string
29 * @size: the file size
30 * @links: the link count
31 * @year: the year
32 * @month: the month
33 * @day: the day
34 * @hour: the hour
35 * @minute: the minute
36 *
37 * A callback for the xmlNanoFTPList command.
38 * Note that only one of year and day:minute are specified.
39 */
40 typedef void (*ftpListCallback) (void *userData,
41 const char *filename, const char *attrib,
42 const char *owner, const char *group,
43 unsigned long size, int links, int year,
44 const char *month, int day, int hour,
45 int minute);
46 /**
47 * ftpDataCallback:
48 * @userData: the user provided context
49 * @data: the data received
50 * @len: its size in bytes
51 *
52 * A callback for the xmlNanoFTPGet command.
53 */
54 typedef void (*ftpDataCallback) (void *userData,
55 const char *data,
56 int len);
57
58 /*
59 * Init
60 */
61 XMLPUBFUN void XMLCALL
62 xmlNanoFTPInit (void);
63 XMLPUBFUN void XMLCALL
64 xmlNanoFTPCleanup (void);
65
66 /*
67 * Creating/freeing contexts.
68 */
69 XMLPUBFUN void * XMLCALL
70 xmlNanoFTPNewCtxt (const char *URL);
71 XMLPUBFUN void XMLCALL
72 xmlNanoFTPFreeCtxt (void * ctx);
73 XMLPUBFUN void * XMLCALL
74 xmlNanoFTPConnectTo (const char *server,
75 int port);
76 /*
77 * Opening/closing session connections.
78 */
79 XMLPUBFUN void * XMLCALL
80 xmlNanoFTPOpen (const char *URL);
81 XMLPUBFUN int XMLCALL
82 xmlNanoFTPConnect (void *ctx);
83 XMLPUBFUN int XMLCALL
84 xmlNanoFTPClose (void *ctx);
85 XMLPUBFUN int XMLCALL
86 xmlNanoFTPQuit (void *ctx);
87 XMLPUBFUN void XMLCALL
88 xmlNanoFTPScanProxy (const char *URL);
89 XMLPUBFUN void XMLCALL
90 xmlNanoFTPProxy (const char *host,
91 int port,
92 const char *user,
93 const char *passwd,
94 int type);
95 XMLPUBFUN int XMLCALL
96 xmlNanoFTPUpdateURL (void *ctx,
97 const char *URL);
98
99 /*
100 * Rather internal commands.
101 */
102 XMLPUBFUN int XMLCALL
103 xmlNanoFTPGetResponse (void *ctx);
104 XMLPUBFUN int XMLCALL
105 xmlNanoFTPCheckResponse (void *ctx);
106
107 /*
108 * CD/DIR/GET handlers.
109 */
110 XMLPUBFUN int XMLCALL
111 xmlNanoFTPCwd (void *ctx,
112 const char *directory);
113 XMLPUBFUN int XMLCALL
114 xmlNanoFTPDele (void *ctx,
115 const char *file);
116
117 XMLPUBFUN int XMLCALL
118 xmlNanoFTPGetConnection (void *ctx);
119 XMLPUBFUN int XMLCALL
120 xmlNanoFTPCloseConnection(void *ctx);
121 XMLPUBFUN int XMLCALL
122 xmlNanoFTPList (void *ctx,
123 ftpListCallback callback,
124 void *userData,
125 const char *filename);
126 XMLPUBFUN int XMLCALL
127 xmlNanoFTPGetSocket (void *ctx,
128 const char *filename);
129 XMLPUBFUN int XMLCALL
130 xmlNanoFTPGet (void *ctx,
131 ftpDataCallback callback,
132 void *userData,
133 const char *filename);
134 XMLPUBFUN int XMLCALL
135 xmlNanoFTPRead (void *ctx,
136 void *dest,
137 int len);
138
139 #ifdef __cplusplus
140 }
141 #endif
142 #endif /* LIBXML_FTP_ENABLED */
143 #endif /* __NANO_FTP_H__ */