source: NonGTP/FCollada/libxml/nanoftp.h @ 964

Revision 964, 3.3 KB checked in by igarcia, 18 years ago (diff)
Line 
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
19extern "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 */
40typedef 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 */
54typedef void (*ftpDataCallback) (void *userData,
55                                 const char *data,
56                                 int len);
57
58/*
59 * Init
60 */
61XMLPUBFUN void XMLCALL
62        xmlNanoFTPInit          (void);
63XMLPUBFUN void XMLCALL 
64        xmlNanoFTPCleanup       (void);
65
66/*
67 * Creating/freeing contexts.
68 */
69XMLPUBFUN void * XMLCALL       
70        xmlNanoFTPNewCtxt       (const char *URL);
71XMLPUBFUN void XMLCALL 
72        xmlNanoFTPFreeCtxt      (void * ctx);
73XMLPUBFUN void * XMLCALL       
74        xmlNanoFTPConnectTo     (const char *server,
75                                 int port);
76/*
77 * Opening/closing session connections.
78 */
79XMLPUBFUN void * XMLCALL       
80        xmlNanoFTPOpen          (const char *URL);
81XMLPUBFUN int XMLCALL   
82        xmlNanoFTPConnect       (void *ctx);
83XMLPUBFUN int XMLCALL   
84        xmlNanoFTPClose         (void *ctx);
85XMLPUBFUN int XMLCALL   
86        xmlNanoFTPQuit          (void *ctx);
87XMLPUBFUN void XMLCALL 
88        xmlNanoFTPScanProxy     (const char *URL);
89XMLPUBFUN void XMLCALL 
90        xmlNanoFTPProxy         (const char *host,
91                                 int port,
92                                 const char *user,
93                                 const char *passwd,
94                                 int type);
95XMLPUBFUN int XMLCALL   
96        xmlNanoFTPUpdateURL     (void *ctx,
97                                 const char *URL);
98
99/*
100 * Rather internal commands.
101 */
102XMLPUBFUN int XMLCALL   
103        xmlNanoFTPGetResponse   (void *ctx);
104XMLPUBFUN int XMLCALL   
105        xmlNanoFTPCheckResponse (void *ctx);
106
107/*
108 * CD/DIR/GET handlers.
109 */
110XMLPUBFUN int XMLCALL   
111        xmlNanoFTPCwd           (void *ctx,
112                                 const char *directory);
113XMLPUBFUN int XMLCALL   
114        xmlNanoFTPDele          (void *ctx,
115                                 const char *file);
116
117XMLPUBFUN int XMLCALL   
118        xmlNanoFTPGetConnection (void *ctx);
119XMLPUBFUN int XMLCALL   
120        xmlNanoFTPCloseConnection(void *ctx);
121XMLPUBFUN int XMLCALL   
122        xmlNanoFTPList          (void *ctx,
123                                 ftpListCallback callback,
124                                 void *userData,
125                                 const char *filename);
126XMLPUBFUN int XMLCALL   
127        xmlNanoFTPGetSocket     (void *ctx,
128                                 const char *filename);
129XMLPUBFUN int XMLCALL   
130        xmlNanoFTPGet           (void *ctx,
131                                 ftpDataCallback callback,
132                                 void *userData,
133                                 const char *filename);
134XMLPUBFUN 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__ */
Note: See TracBrowser for help on using the repository browser.