File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / include / libxml / nanoftp.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Sun Jun 15 19:53:38 2014 UTC (10 years, 2 months ago) by misho
Branches: libxml2, MAIN
CVS tags: v2_9_1p0, v2_9_1, HEAD
libxml2 2.9.1

    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: #undef  INVALID_SOCKET
   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>