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