Edit

kc3-lang/libxml2/nanoftp.h

Branch :

  • Show log

    Commit

  • Author : Daniel Veillard
    Date : 2000-01-30 20:00:07
    Hash : e41f2b74
    Message : Released 1.8.6, Daniel.

  • nanoftp.h
  • /*
     * nanohttp.c: minimalist FTP implementation to fetch external subsets.
     *
     * See Copyright for the status of this software.
     *
     * Daniel.Veillard@w3.org
     */
     
    #ifndef __NANO_FTP_H__
    #define __NANO_FTP_H__
    #ifdef __cplusplus
    extern "C" {
    #endif
    
    /**
     * ftpListCallback: 
     * @userData:  user provided data for the callback
     * @filename:  the file name (including "->" when links are shown)
     * @attrib:  the attribute string
     * @owner:  the owner string
     * @group:  the group string
     * @size:  the file size
     * @links:  the link count
     * @year:  the year
     * @month:  the month
     * @day:  the day
     * @hour:  the hour
     * @minute:  the minute
     *
     * A callback for the xmlNanoFTPList command
     * Note that only one of year and day:minute are specified
     */
    typedef void (*ftpListCallback) (void *userData,
    	                         const char *filename, const char* attrib,
    	                         const char *owner, const char *group,
    				 unsigned long size, int links, int year,
    				 const char *month, int day, int hour,
    				 int minute);
    /**
     * ftpDataCallback: 
     * A callback for the xmlNanoFTPGet command
     */
    typedef void (*ftpDataCallback) (void *userData, const char *data, int len);
    
    /*
     * Init
     */
    void	xmlNanoFTPInit		(void);
    void	xmlNanoFTPCleanup	(void);
    
    /*
     * Creating/freeing contexts
     */
    void *	xmlNanoFTPNewCtxt	(const char *URL);
    void	xmlNanoFTPFreeCtxt	(void * ctx);
    void * 	xmlNanoFTPConnectTo	(const char *server,
    				 int port);
    /*
     * Opening/closing session connections
     */
    void * 	xmlNanoFTPOpen		(const char *URL);
    int	xmlNanoFTPConnect	(void *ctx);
    int	xmlNanoFTPClose		(void *ctx);
    int	xmlNanoFTPQuit		(void *ctx);
    void	xmlNanoFTPScanProxy	(const char *URL);
    void	xmlNanoFTPProxy		(const char *host,
    				 int port,
    				 const char *user,
    				 const char *passwd,
    				 int type);
    int	xmlNanoFTPUpdateURL	(void *ctx,
    				 const char *URL);
    
    /*
     * Rathern internal commands
     */
    int	xmlNanoFTPGetResponse	(void *ctx);
    int	xmlNanoFTPCheckResponse	(void *ctx);
    
    /*
     * CD/DIR/GET handlers
     */
    int	xmlNanoFTPCwd		(void *ctx,
    				 char *directory);
    
    int	xmlNanoFTPGetConnection	(void *ctx);
    int	xmlNanoFTPCloseConnection(void *ctx);
    int	xmlNanoFTPList		(void *ctx,
    				 ftpListCallback callback,
    				 void *userData,
    				 char *filename);
    int	xmlNanoFTPGetSocket	(void *ctx,
    				 const char *filename);
    int	xmlNanoFTPGet		(void *ctx,
    				 ftpDataCallback callback,
    				 void *userData,
    				 const char *filename);
    int	xmlNanoFTPRead		(void *ctx,
    				 void *dest,
    				 int len);
    
    #ifdef __cplusplus
    }
    #endif
    #endif /* __NANO_FTP_H__ */