LTKCPP-- LLRP Toolkit C Plus Plus Library
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 
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);
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__ */