File: nanoftp.h

package info (click to toggle)
xdmf 3.0%2Bgit20160803-3
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 35,388 kB
  • ctags: 36,627
  • sloc: ansic: 265,382; cpp: 162,889; python: 10,976; f90: 1,378; yacc: 687; fortran: 464; xml: 200; java: 187; lex: 125; makefile: 82; sh: 28
file content (143 lines) | stat: -rw-r--r-- 4,296 bytes parent folder | download | duplicates (14)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/*
 * Summary: minimal FTP implementation
 * Description: minimal FTP implementation allowing to fetch resources
 *              like external subset.
 *
 * Copy: See Copyright for the status of this software.
 *
 * Author: Daniel Veillard
 */
 
#ifndef __NANO_FTP_H__
#define __NANO_FTP_H__

#include "xmlversion.h"

#ifdef LIBXML_FTP_ENABLED

#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: 
 * @userData: the user provided context
 * @data: the data received
 * @len: its size in bytes
 *
 * A callback for the xmlNanoFTPGet command.
 */
typedef void (*ftpDataCallback) (void *userData,
                                 const char *data,
                                 int len);

/*
 * Init
 */
XMLPUBFUN void XMLCALL
        xmlNanoFTPInit          (void);
XMLPUBFUN void XMLCALL  
        xmlNanoFTPCleanup       (void);

/*
 * Creating/freeing contexts.
 */
XMLPUBFUN void * XMLCALL        
        xmlNanoFTPNewCtxt       (const char *URL);
XMLPUBFUN void XMLCALL  
        xmlNanoFTPFreeCtxt      (void * ctx);
XMLPUBFUN void * XMLCALL        
        xmlNanoFTPConnectTo     (const char *server,
                                 int port);
/*
 * Opening/closing session connections.
 */
XMLPUBFUN void * XMLCALL        
        xmlNanoFTPOpen          (const char *URL);
XMLPUBFUN int XMLCALL   
        xmlNanoFTPConnect       (void *ctx);
XMLPUBFUN int XMLCALL   
        xmlNanoFTPClose         (void *ctx);
XMLPUBFUN int XMLCALL   
        xmlNanoFTPQuit          (void *ctx);
XMLPUBFUN void XMLCALL  
        xmlNanoFTPScanProxy     (const char *URL);
XMLPUBFUN void XMLCALL  
        xmlNanoFTPProxy         (const char *host,
                                 int port,
                                 const char *user,
                                 const char *passwd,
                                 int type);
XMLPUBFUN int XMLCALL   
        xmlNanoFTPUpdateURL     (void *ctx,
                                 const char *URL);

/*
 * Rather internal commands.
 */
XMLPUBFUN int XMLCALL   
        xmlNanoFTPGetResponse   (void *ctx);
XMLPUBFUN int XMLCALL   
        xmlNanoFTPCheckResponse (void *ctx);

/*
 * CD/DIR/GET handlers.
 */
XMLPUBFUN int XMLCALL   
        xmlNanoFTPCwd           (void *ctx,
                                 const char *directory);
XMLPUBFUN int XMLCALL   
        xmlNanoFTPDele          (void *ctx,
                                 const char *file);

XMLPUBFUN int XMLCALL   
        xmlNanoFTPGetConnection (void *ctx);
XMLPUBFUN int XMLCALL   
        xmlNanoFTPCloseConnection(void *ctx);
XMLPUBFUN int XMLCALL   
        xmlNanoFTPList          (void *ctx,
                                 ftpListCallback callback,
                                 void *userData,
                                 const char *filename);
XMLPUBFUN int XMLCALL   
        xmlNanoFTPGetSocket     (void *ctx,
                                 const char *filename);
XMLPUBFUN int XMLCALL   
        xmlNanoFTPGet           (void *ctx,
                                 ftpDataCallback callback,
                                 void *userData,
                                 const char *filename);
XMLPUBFUN int XMLCALL   
        xmlNanoFTPRead          (void *ctx,
                                 void *dest,
                                 int len);

#ifdef __cplusplus
}
#endif
#endif /* LIBXML_FTP_ENABLED */
#endif /* __NANO_FTP_H__ */