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

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

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