nanoftp.h
上传用户:sy_wanhua
上传日期:2013-07-25
资源大小:3048k
文件大小:3k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

C/C++

  1. /*
  2.  * nanohttp.c: minimalist FTP implementation to fetch external subsets.
  3.  *
  4.  * See Copyright for the status of this software.
  5.  *
  6.  * Daniel.Veillard@w3.org
  7.  */
  8.  
  9. #ifndef __NANO_FTP_H__
  10. #define __NANO_FTP_H__
  11. #include <libxml/xmlversion.h>
  12. #ifdef LIBXML_FTP_ENABLED
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. /**
  17.  * ftpListCallback: 
  18.  * @userData:  user provided data for the callback
  19.  * @filename:  the file name (including "->" when links are shown)
  20.  * @attrib:  the attribute string
  21.  * @owner:  the owner string
  22.  * @group:  the group string
  23.  * @size:  the file size
  24.  * @links:  the link count
  25.  * @year:  the year
  26.  * @month:  the month
  27.  * @day:  the day
  28.  * @hour:  the hour
  29.  * @minute:  the minute
  30.  *
  31.  * A callback for the xmlNanoFTPList command
  32.  * Note that only one of year and day:minute are specified
  33.  */
  34. typedef void (*ftpListCallback) (void *userData,
  35.                          const char *filename, const char* attrib,
  36.                          const char *owner, const char *group,
  37.  unsigned long size, int links, int year,
  38.  const char *month, int day, int hour,
  39.  int minute);
  40. /**
  41.  * ftpDataCallback: 
  42.  * A callback for the xmlNanoFTPGet command
  43.  */
  44. typedef void (*ftpDataCallback) (void *userData, const char *data, int len);
  45. /*
  46.  * Init
  47.  */
  48. void xmlNanoFTPInit (void);
  49. void xmlNanoFTPCleanup (void);
  50. /*
  51.  * Creating/freeing contexts
  52.  */
  53. void * xmlNanoFTPNewCtxt (const char *URL);
  54. void xmlNanoFTPFreeCtxt (void * ctx);
  55. void *  xmlNanoFTPConnectTo (const char *server,
  56.  int port);
  57. /*
  58.  * Opening/closing session connections
  59.  */
  60. void *  xmlNanoFTPOpen (const char *URL);
  61. int xmlNanoFTPConnect (void *ctx);
  62. int xmlNanoFTPClose (void *ctx);
  63. int xmlNanoFTPQuit (void *ctx);
  64. void xmlNanoFTPScanProxy (const char *URL);
  65. void xmlNanoFTPProxy (const char *host,
  66.  int port,
  67.  const char *user,
  68.  const char *passwd,
  69.  int type);
  70. int xmlNanoFTPUpdateURL (void *ctx,
  71.  const char *URL);
  72. /*
  73.  * Rathern internal commands
  74.  */
  75. int xmlNanoFTPGetResponse (void *ctx);
  76. int xmlNanoFTPCheckResponse (void *ctx);
  77. /*
  78.  * CD/DIR/GET handlers
  79.  */
  80. int xmlNanoFTPCwd (void *ctx,
  81.  char *directory);
  82. int xmlNanoFTPGetConnection (void *ctx);
  83. int xmlNanoFTPCloseConnection(void *ctx);
  84. int xmlNanoFTPList (void *ctx,
  85.  ftpListCallback callback,
  86.  void *userData,
  87.  char *filename);
  88. int xmlNanoFTPGetSocket (void *ctx,
  89.  const char *filename);
  90. int xmlNanoFTPGet (void *ctx,
  91.  ftpDataCallback callback,
  92.  void *userData,
  93.  const char *filename);
  94. int xmlNanoFTPRead (void *ctx,
  95.  void *dest,
  96.  int len);
  97. #ifdef __cplusplus
  98. }
  99. #endif /* LIBXML_FTP_ENABLED */
  100. #endif
  101. #endif /* __NANO_FTP_H__ */