Annotation of embedaddon/libxml2/include/libxml/nanoftp.h, revision 1.1.1.2

1.1       misho       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: /* Needed for portability to Windows 64 bits */
                     19: #if defined(__MINGW32__) || defined(_WIN32_WCE)
                     20: #include <winsock2.h>
                     21: #else
                     22: /**
                     23:  * SOCKET:
                     24:  *
                     25:  * macro used to provide portability of code to windows sockets
                     26:  */
                     27: #define SOCKET int
                     28: /**
                     29:  * INVALID_SOCKET:
                     30:  *
                     31:  * macro used to provide portability of code to windows sockets
                     32:  * the value to be used when the socket is not valid
                     33:  */
1.1.1.2 ! misho      34: #undef  INVALID_SOCKET
1.1       misho      35: #define INVALID_SOCKET (-1)
                     36: #endif
                     37: 
                     38: #ifdef __cplusplus
                     39: extern "C" {
                     40: #endif
                     41: 
                     42: /**
                     43:  * ftpListCallback:
                     44:  * @userData:  user provided data for the callback
                     45:  * @filename:  the file name (including "->" when links are shown)
                     46:  * @attrib:  the attribute string
                     47:  * @owner:  the owner string
                     48:  * @group:  the group string
                     49:  * @size:  the file size
                     50:  * @links:  the link count
                     51:  * @year:  the year
                     52:  * @month:  the month
                     53:  * @day:  the day
                     54:  * @hour:  the hour
                     55:  * @minute:  the minute
                     56:  *
                     57:  * A callback for the xmlNanoFTPList command.
                     58:  * Note that only one of year and day:minute are specified.
                     59:  */
                     60: typedef void (*ftpListCallback) (void *userData,
                     61:                                 const char *filename, const char *attrib,
                     62:                                 const char *owner, const char *group,
                     63:                                 unsigned long size, int links, int year,
                     64:                                 const char *month, int day, int hour,
                     65:                                 int minute);
                     66: /**
                     67:  * ftpDataCallback:
                     68:  * @userData: the user provided context
                     69:  * @data: the data received
                     70:  * @len: its size in bytes
                     71:  *
                     72:  * A callback for the xmlNanoFTPGet command.
                     73:  */
                     74: typedef void (*ftpDataCallback) (void *userData,
                     75:                                 const char *data,
                     76:                                 int len);
                     77: 
                     78: /*
                     79:  * Init
                     80:  */
                     81: XMLPUBFUN void XMLCALL
                     82:        xmlNanoFTPInit          (void);
                     83: XMLPUBFUN void XMLCALL
                     84:        xmlNanoFTPCleanup       (void);
                     85: 
                     86: /*
                     87:  * Creating/freeing contexts.
                     88:  */
                     89: XMLPUBFUN void * XMLCALL
                     90:        xmlNanoFTPNewCtxt       (const char *URL);
                     91: XMLPUBFUN void XMLCALL
                     92:        xmlNanoFTPFreeCtxt      (void * ctx);
                     93: XMLPUBFUN void * XMLCALL
                     94:        xmlNanoFTPConnectTo     (const char *server,
                     95:                                 int port);
                     96: /*
                     97:  * Opening/closing session connections.
                     98:  */
                     99: XMLPUBFUN void * XMLCALL
                    100:        xmlNanoFTPOpen          (const char *URL);
                    101: XMLPUBFUN int XMLCALL
                    102:        xmlNanoFTPConnect       (void *ctx);
                    103: XMLPUBFUN int XMLCALL
                    104:        xmlNanoFTPClose         (void *ctx);
                    105: XMLPUBFUN int XMLCALL
                    106:        xmlNanoFTPQuit          (void *ctx);
                    107: XMLPUBFUN void XMLCALL
                    108:        xmlNanoFTPScanProxy     (const char *URL);
                    109: XMLPUBFUN void XMLCALL
                    110:        xmlNanoFTPProxy         (const char *host,
                    111:                                 int port,
                    112:                                 const char *user,
                    113:                                 const char *passwd,
                    114:                                 int type);
                    115: XMLPUBFUN int XMLCALL
                    116:        xmlNanoFTPUpdateURL     (void *ctx,
                    117:                                 const char *URL);
                    118: 
                    119: /*
                    120:  * Rather internal commands.
                    121:  */
                    122: XMLPUBFUN int XMLCALL
                    123:        xmlNanoFTPGetResponse   (void *ctx);
                    124: XMLPUBFUN int XMLCALL
                    125:        xmlNanoFTPCheckResponse (void *ctx);
                    126: 
                    127: /*
                    128:  * CD/DIR/GET handlers.
                    129:  */
                    130: XMLPUBFUN int XMLCALL
                    131:        xmlNanoFTPCwd           (void *ctx,
                    132:                                 const char *directory);
                    133: XMLPUBFUN int XMLCALL
                    134:        xmlNanoFTPDele          (void *ctx,
                    135:                                 const char *file);
                    136: 
                    137: XMLPUBFUN SOCKET XMLCALL
                    138:        xmlNanoFTPGetConnection (void *ctx);
                    139: XMLPUBFUN int XMLCALL
                    140:        xmlNanoFTPCloseConnection(void *ctx);
                    141: XMLPUBFUN int XMLCALL
                    142:        xmlNanoFTPList          (void *ctx,
                    143:                                 ftpListCallback callback,
                    144:                                 void *userData,
                    145:                                 const char *filename);
                    146: XMLPUBFUN SOCKET XMLCALL
                    147:        xmlNanoFTPGetSocket     (void *ctx,
                    148:                                 const char *filename);
                    149: XMLPUBFUN int XMLCALL
                    150:        xmlNanoFTPGet           (void *ctx,
                    151:                                 ftpDataCallback callback,
                    152:                                 void *userData,
                    153:                                 const char *filename);
                    154: XMLPUBFUN int XMLCALL
                    155:        xmlNanoFTPRead          (void *ctx,
                    156:                                 void *dest,
                    157:                                 int len);
                    158: 
                    159: #ifdef __cplusplus
                    160: }
                    161: #endif
                    162: #endif /* LIBXML_FTP_ENABLED */
                    163: #endif /* __NANO_FTP_H__ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>