Imported Upstream version 0.18.1.1
[platform/upstream/gettext.git] / gnulib-local / lib / libxml / nanoftp.in.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__ */