Imported Upstream version 2.9.4
[platform/upstream/libxml2.git] / os400 / libxmlrpg / nanoftp.rpgle
1       * Summary: minimal FTP implementation
2       * Description: minimal FTP implementation allowing to fetch resources
3       *              like external subset.
4       *
5       * Copy: See Copyright for the status of this software.
6       *
7       * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
8
9       /if not defined(NANO_FTP_H__)
10       /define NANO_FTP_H__
11
12       /include "libxmlrpg/xmlversion"
13
14       /if defined(LIBXML_FTP_ENABLED)
15
16       /include "libxmlrpg/xmlTypesC"
17
18      d INVALID_SOCKET  c                   -1
19
20       * ftpListCallback:
21       * @userData:  user provided data for the callback
22       * @filename:  the file name (including "->" when links are shown)
23       * @attrib:  the attribute string
24       * @owner:  the owner string
25       * @group:  the group string
26       * @size:  the file size
27       * @links:  the link count
28       * @year:  the year
29       * @month:  the month
30       * @day:  the day
31       * @hour:  the hour
32       * @minute:  the minute
33       *
34       * A callback for the xmlNanoFTPList command.
35       * Note that only one of year and day:minute are specified.
36
37      d ftpListCallback...
38      d                 s               *   based(######typedef######)
39      d                                     procptr
40
41       * ftpDataCallback:
42       * @userData: the user provided context
43       * @data: the data received
44       * @len: its size in bytes
45       *
46       * A callback for the xmlNanoFTPGet command.
47
48      d ftpDataCallback...
49      d                 s               *   based(######typedef######)
50      d                                     procptr
51
52       * Init
53
54      d xmlNanoFTPInit  pr                  extproc('xmlNanoFTPInit')
55
56      d xmlNanoFTPCleanup...
57      d                 pr                  extproc('xmlNanoFTPCleanup')
58
59       * Creating/freeing contexts.
60
61      d xmlNanoFTPNewCtxt...
62      d                 pr              *   extproc('xmlNanoFTPNewCtxt')         void *
63      d  URL                            *   value options(*string)               const char *
64
65      d xmlNanoFTPFreeCtxt...
66      d                 pr                  extproc('xmlNanoFTPFreeCtxt')
67      d  ctx                            *   value                                void *
68
69      d xmlNanoFTPConnectTo...
70      d                 pr              *   extproc('xmlNanoFTPConnectTo')       void *
71      d  server                         *   value options(*string)               const char *
72      d  port                               value like(xmlCint)
73
74       * Opening/closing session connections.
75
76      d xmlNanoFTPOpen  pr              *   extproc('xmlNanoFTPOpen')            void *
77      d  URL                            *   value options(*string)               const char *
78
79      d xmlNanoFTPConnect...
80      d                 pr                  extproc('xmlNanoFTPConnect')
81      d                                     like(xmlCint)
82      d  ctx                            *   value                                void *
83
84      d xmlNanoFTPClose...
85      d                 pr                  extproc('xmlNanoFTPClose')
86      d                                     like(xmlCint)
87      d  ctx                            *   value                                void *
88
89      d xmlNanoFTPQuit  pr                  extproc('xmlNanoFTPQuit')
90      d                                     like(xmlCint)
91      d  ctx                            *   value                                void *
92
93      d xmlNanoFTPScanProxy...
94      d                 pr                  extproc('xmlNanoFTPScanProxy')
95      d  URL                            *   value options(*string)               const char *
96
97      d xmlNanoFTPProxy...
98      d                 pr                  extproc('xmlNanoFTPProxy')
99      d  host                           *   value options(*string)               const char *
100      d  port                               value like(xmlCint)
101      d  user                           *   value options(*string)               const char *
102      d  passwd                         *   value options(*string)               const char *
103      d  type                               value like(xmlCint)
104
105      d xmlNanoFTPUpdateURL...
106      d                 pr                  extproc('xmlNanoFTPUpdateURL')
107      d                                     like(xmlCint)
108      d  ctx                            *   value                                void *
109      d  URL                            *   value options(*string)               const char *
110
111       * Rather internal commands.
112
113      d xmlNanoFTPGetResponse...
114      d                 pr                  extproc('xmlNanoFTPGetResponse')
115      d                                     like(xmlCint)
116      d  ctx                            *   value                                void *
117
118      d xmlNanoFTPCheckResponse...
119      d                 pr                  extproc('xmlNanoFTPCheckResponse')
120      d                                     like(xmlCint)
121      d  ctx                            *   value                                void *
122
123       * CD/DIR/GET handlers.
124
125      d xmlNanoFTPCwd   pr                  extproc('xmlNanoFTPCwd')
126      d                                     like(xmlCint)
127      d  ctx                            *   value                                void *
128      d  directory                      *   value options(*string)               const char *
129
130      d xmlNanoFTPDele  pr                  extproc('xmlNanoFTPDele')
131      d                                     like(xmlCint)
132      d  ctx                            *   value                                void *
133      d  file                           *   value options(*string)               const char *
134
135      d xmlNanoFTPGetConnection...
136      d                 pr                  extproc('xmlNanoFTPGetConnection')   Socket descriptor
137      d                                     like(xmlCint)
138      d  ctx                            *   value                                void *
139
140      d xmlNanoFTPCloseConnection...
141      d                 pr                  extproc('xmlNanoFTPCloseConnection')
142      d                                     like(xmlCint)
143      d  ctx                            *   value                                void *
144
145      d xmlNanoFTPList  pr                  extproc('xmlNanoFTPList')
146      d                                     like(xmlCint)
147      d  ctx                            *   value                                void *
148      d  callback                           value like(ftpListCallback)
149      d  userData                       *   value                                void *
150      d  filename                       *   value options(*string)               const char *
151
152      d xmlNanoFTPGetSocket...
153      d                 pr                  extproc('xmlNanoFTPGetSocket')       Socket descriptor
154      d                                     like(xmlCint)
155      d  ctx                            *   value                                void *
156      d  filename                       *   value options(*string)               const char *
157
158      d xmlNanoFTPGet   pr                  extproc('xmlNanoFTPGet')
159      d                                     like(xmlCint)
160      d  ctx                            *   value                                void *
161      d  callback                           value like(ftpDataCallback)
162      d  userData                       *   value                                void *
163      d  filename                       *   value options(*string)               const char *
164
165      d xmlNanoFTPRead  pr                  extproc('xmlNanoFTPRead')
166      d                                     like(xmlCint)
167      d  ctx                            *   value                                void *
168      d  dest                           *   value                                void *
169      d  len                                value like(xmlCint)
170
171       /endif                                                                    LIBXML_FTP_ENABLED
172       /endif                                                                    NANO_FTP_H__