nanoftp.h.svn-base
上传用户:szjkjd
上传日期:2022-06-27
资源大小:8968k
文件大小:3k
源码类别:

浏览器

开发平台:

Visual C++

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