nanoftp.inc 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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. {$IFDEF LIBXML_FTP_ENABLED}
  11. {$IFDEF TYPE}
  12. (**
  13. * ftpListCallback:
  14. * @userData: user provided data for the callback
  15. * @filename: the file name (including "->" when links are shown)
  16. * @attrib: the attribute string
  17. * @owner: the owner string
  18. * @group: the group string
  19. * @size: the file size
  20. * @links: the link count
  21. * @year: the year
  22. * @month: the month
  23. * @day: the day
  24. * @hour: the hour
  25. * @minute: the minute
  26. *
  27. * A callback for the xmlNanoFTPList command.
  28. * Note that only one of year and day:minute are specified.
  29. *)
  30. ftpListCallback = procedure(userData: pointer; filename, attrib, owner, group: pchar; size: culong; links, year: cint; month: pchar; day, hour, minute: cint); EXTDECL;
  31. (**
  32. * ftpDataCallback:
  33. * @userData: the user provided context
  34. * @data: the data received
  35. * @len: its size in bytes
  36. *
  37. * A callback for the xmlNanoFTPGet command.
  38. *)
  39. ftpDataCallback = procedure(userData: pointer; data: pchar; len: cint); EXTDECL;
  40. {$ENDIF}
  41. {$IFDEF FUNCTION}
  42. (*
  43. * Init
  44. *)
  45. procedure xmlNanoFTPInit; EXTDECL; external xml2lib;
  46. procedure xmlNanoFTPCleanup; EXTDECL; external xml2lib;
  47. (*
  48. * Creating/freeing contexts.
  49. *)
  50. function xmlNanoFTPNewCtxt(URL: pchar): pointer; EXTDECL; external xml2lib;
  51. procedure xmlNanoFTPFreeCtxt(ctx: pointer); EXTDECL; external xml2lib;
  52. function xmlNanoFTPConnectTo(server: pchar; port: cint): pointer; EXTDECL; external xml2lib;
  53. (*
  54. * Opening/closing session connections.
  55. *)
  56. function xmlNanoFTPOpen(URL: pchar): pointer; EXTDECL; external xml2lib;
  57. function xmlNanoFTPConnect(ctx: pointer): cint; EXTDECL; external xml2lib;
  58. function xmlNanoFTPClose(ctx: pointer): cint; EXTDECL; external xml2lib;
  59. function xmlNanoFTPQuit(ctx: pointer): cint; EXTDECL; external xml2lib;
  60. procedure xmlNanoFTPScanProxy(URL: pchar); EXTDECL; external xml2lib;
  61. procedure xmlNanoFTPProxy(host: pchar; port: cint; user, passwd: pchar; _type: cint); EXTDECL; external xml2lib;
  62. function xmlNanoFTPUpdateURL(ctx: pointer; URL: pchar): cint; EXTDECL; external xml2lib;
  63. (*
  64. * Rather internal commands.
  65. *)
  66. function xmlNanoFTPGetResponse(ctx: pointer): cint; EXTDECL; external xml2lib;
  67. function xmlNanoFTPCheckResponse(ctx: pointer): cint; EXTDECL; external xml2lib;
  68. (*
  69. * CD/DIR/GET handlers.
  70. *)
  71. function xmlNanoFTPCwd(ctx: pointer; directory: pchar): cint; EXTDECL; external xml2lib;
  72. function xmlNanoFTPGetResponse(ctx: pointer; _file: pchar): cint; EXTDECL; external xml2lib;
  73. function xmlNanoFTPGetConnection(ctx: pointer): cint; EXTDECL; external xml2lib;
  74. function xmlNanoFTPCloseConnection(ctx: pointer): cint; EXTDECL; external xml2lib;
  75. function xmlNanoFTPList(ctx: pointer; callback: ftpListCallback; userData: pointer; filename: pchar): cint; EXTDECL; external xml2lib;
  76. function xmlNanoFTPGetSocket(ctx: pointer; filename: pchar): cint; EXTDECL; external xml2lib;
  77. function xmlNanoFTPGet(ctx: pointer; callback: ftpDataCallback; userData: pointer; filename: pchar): cint; EXTDECL; external xml2lib;
  78. function xmlNanoFTPRead(ctx: pointer; dest: pointer; len: cint): cint; EXTDECL; external xml2lib;
  79. {$ENDIF}
  80. {$ENDIF} (* LIBXML_FTP_ENABLED *)