1 * Summary: interface for the I/O interfaces used by the parser 2 * Description: interface for the I/O interfaces used by the parser 3 * 4 * Copy: See Copyright for the status of this software. 5 * 6 * Author: Patrick Monnerat <pm (a] datasphere.ch>, DATASPHERE S.A. 7 8 /if not defined(XML_IO_H__) 9 /define XML_IO_H__ 10 11 /include "libxmlrpg/xmlversion" 12 13 * Those are the functions and datatypes for the parser input 14 * I/O structures. 15 16 * xmlInputMatchCallback: 17 * @filename: the filename or URI 18 * 19 * Callback used in the I/O Input API to detect if the current handler 20 * can provide input fonctionnalities for this resource. 21 * 22 * Returns 1 if yes and 0 if another Input module should be used 23 24 d xmlInputMatchCallback... 25 d s * based(######typedef######) 26 d procptr 27 28 * xmlInputOpenCallback: 29 * @filename: the filename or URI 30 * 31 * Callback used in the I/O Input API to open the resource 32 * 33 * Returns an Input context or NULL in case or error 34 35 d xmlInputOpenCallback... 36 d s * based(######typedef######) 37 d procptr 38 39 * xmlInputReadCallback: 40 * @context: an Input context 41 * @buffer: the buffer to store data read 42 * @len: the length of the buffer in bytes 43 * 44 * Callback used in the I/O Input API to read the resource 45 * 46 * Returns the number of bytes read or -1 in case of error 47 48 d xmlInputReadCallback... 49 d s * based(######typedef######) 50 d procptr 51 52 * xmlInputCloseCallback: 53 * @context: an Input context 54 * 55 * Callback used in the I/O Input API to close the resource 56 * 57 * Returns 0 or -1 in case of error 58 59 d xmlInputCloseCallback... 60 d s * based(######typedef######) 61 d procptr 62 63 /if defined(LIBXML_OUTPUT_ENABLED) 64 65 * Those are the functions and datatypes for the library output 66 * I/O structures. 67 68 * xmlOutputMatchCallback: 69 * @filename: the filename or URI 70 * 71 * Callback used in the I/O Output API to detect if the current handler 72 * can provide output fonctionnalities for this resource. 73 * 74 * Returns 1 if yes and 0 if another Output module should be used 75 76 d xmlOutputMatchCallback... 77 d s * based(######typedef######) 78 d procptr 79 80 * xmlOutputOpenCallback: 81 * @filename: the filename or URI 82 * 83 * Callback used in the I/O Output API to open the resource 84 * 85 * Returns an Output context or NULL in case or error 86 87 d xmlOutputOpenCallback... 88 d s * based(######typedef######) 89 d procptr 90 91 * xmlOutputWriteCallback: 92 * @context: an Output context 93 * @buffer: the buffer of data to write 94 * @len: the length of the buffer in bytes 95 * 96 * Callback used in the I/O Output API to write to the resource 97 * 98 * Returns the number of bytes written or -1 in case of error 99 100 d xmlOutputWriteCallback... 101 d s * based(######typedef######) 102 d procptr 103 104 * xmlOutputCloseCallback: 105 * @context: an Output context 106 * 107 * Callback used in the I/O Output API to close the resource 108 * 109 * Returns 0 or -1 in case of error 110 111 d xmlOutputCloseCallback... 112 d s * based(######typedef######) 113 d procptr 114 /endif LIBXML_OUTPUT_ENABLD 115 116 /include "libxmlrpg/globals" 117 /include "libxmlrpg/tree" 118 /include "libxmlrpg/parser" 119 /include "libxmlrpg/encoding" 120 121 d xmlParserInputBuffer... 122 d ds based(xmlParserInputBufferPtr) 123 d align qualified 124 d context * void * 125 d readcallback like(xmlInputReadCallback) 126 d closecallback like(xmlInputCloseCallback) 127 * 128 d encoder like(xmlCharEncodingHandlerPtr) Conversions --> UTF8 129 * 130 d buffer like(xmlBufPtr) UTF-8 local buffer 131 d raw like(xmlBufPtr) Raw input buffer 132 d compressed 10i 0 133 d error 10i 0 134 d rawconsumed 20u 0 135 136 /if defined(LIBXML_OUTPUT_ENABLED) 137 d xmlOutputBuffer... 138 d ds based(xmlOutputBufferPtr) 139 d align qualified 140 d context * void * 141 d writecallback like(xmlOutputWriteCallback) 142 d closecallback like(xmlOutputCloseCallback) 143 * 144 d encoder like(xmlCharEncodingHandlerPtr) Conversions --> UTF8 145 * 146 d buffer like(xmlBufPtr) UTF-8/ISOLatin local 147 d conv like(xmlBufPtr) Buffer for output 148 d written 10i 0 Total # byte written 149 d error 10i 0 150 /endif LIBXML_OUTPUT_ENABLD 151 152 * Interfaces for input 153 154 d xmlCleanupInputCallbacks... 155 d pr extproc('xmlCleanupInputCallbacks') 156 157 d xmlPopInputCallbacks... 158 d pr 10i 0 extproc('xmlPopInputCallbacks') 159 160 d xmlRegisterDefaultInputCallbacks... 161 d pr extproc( 162 d 'xmlRegisterDefaultInputCallbacks') 163 164 d xmlAllocParserInputBuffer... 165 d pr extproc('xmlAllocParserInputBuffer') 166 d like(xmlParserInputBufferPtr) 167 d enc value like(xmlCharEncoding) 168 169 d xmlParserInputBufferCreateFilename... 170 d pr extproc( 171 d 'xmlParserInputBufferCreateFilename') 172 d like(xmlParserInputBufferPtr) 173 d URI * value options(*string) const char * 174 d enc value like(xmlCharEncoding) 175 176 d xmlParserInputBufferCreateFile... 177 d pr extproc( 178 d 'xmlParserInputBufferCreateFile') 179 d like(xmlParserInputBufferPtr) 180 d file * value FILE * 181 d enc value like(xmlCharEncoding) 182 183 d xmlParserInputBufferCreateFd... 184 d pr extproc( 185 d 'xmlParserInputBufferCreateFd') 186 d like(xmlParserInputBufferPtr) 187 d fd 10i 0 value 188 d enc value like(xmlCharEncoding) 189 190 d xmlParserInputBufferCreateMem... 191 d pr extproc( 192 d 'xmlParserInputBufferCreateMem') 193 d like(xmlParserInputBufferPtr) 194 d mem * value options(*string) const char * 195 d size 10i 0 value 196 d enc value like(xmlCharEncoding) 197 198 d xmlParserInputBufferCreateStatic... 199 d pr extproc( 200 d 'xmlParserInputBufferCreateStatic') 201 d like(xmlParserInputBufferPtr) 202 d mem * value options(*string) const char * 203 d size 10i 0 value 204 d enc value like(xmlCharEncoding) 205 206 d xmlParserInputBufferCreateIO... 207 d pr extproc( 208 d 'xmlParserInputBufferCreateIO') 209 d like(xmlParserInputBufferPtr) 210 d ioread value like(xmlInputReadCallback) 211 d ioclose value like(xmlInputCloseCallback) 212 d ioctx * value void * 213 d enc value like(xmlCharEncoding) 214 215 d xmlParserInputBufferRead... 216 d pr 10i 0 extproc('xmlParserInputBufferRead') 217 d in value like(xmlParserInputBufferPtr) 218 d len 10i 0 value 219 220 d xmlParserInputBufferGrow... 221 d pr 10i 0 extproc('xmlParserInputBufferGrow') 222 d in value like(xmlParserInputBufferPtr) 223 d len 10i 0 value 224 225 d xmlParserInputBufferPush... 226 d pr 10i 0 extproc('xmlParserInputBufferPush') 227 d in value like(xmlParserInputBufferPtr) 228 d len 10i 0 value 229 d buf * value options(*string) const char * 230 231 d xmlFreeParserInputBuffer... 232 d pr extproc('xmlFreeParserInputBuffer') 233 d in value like(xmlParserInputBufferPtr) 234 235 d xmlParserGetDirectory... 236 d pr * extproc('xmlParserGetDirectory') char * 237 d filename * value options(*string) const char * 238 239 d xmlRegisterInputCallbacks... 240 d pr 10i 0 extproc('xmlRegisterInputCallbacks') 241 d matchFunc value like(xmlInputMatchCallback) 242 d openFunc value like(xmlInputOpenCallback) 243 d readFunc value like(xmlInputReadCallback) 244 d closeFunc value like(xmlInputCloseCallback) 245 246 /if defined(LIBXML_OUTPUT_ENABLED) 247 248 * Interfaces for output 249 250 d xmlCleanupOutputCallbacks... 251 d pr extproc('xmlCleanupOutputCallbacks') 252 253 d xmlRegisterDefaultOutputCallbacks... 254 d pr extproc( 255 d 'xmlRegisterDefaultOuputCallbacks') 256 257 d xmlAllocOutputBuffer... 258 d pr extproc('xmlAllocOutputBuffer') 259 d like(xmlOutputBufferPtr) 260 d encoder value 261 d like(xmlCharEncodingHandlerPtr) 262 263 d xmlOutputBufferCreateFilename... 264 d pr extproc( 265 d 'xmlOutputBufferCreateFilename') 266 d like(xmlOutputBufferPtr) 267 d URI * value options(*string) const char * 268 d encoder value 269 d like(xmlCharEncodingHandlerPtr) 270 d compression 10i 0 value 271 272 d xmlOutputBufferCreateFile... 273 d pr extproc('xmlOutputBufferCreateFile') 274 d like(xmlOutputBufferPtr) 275 d file * value FILE * 276 d encoder value 277 d like(xmlCharEncodingHandlerPtr) 278 279 d xmlOutputBufferCreateBuffer... 280 d pr extproc( 281 d 'xmlOutputBufferCreateBuffer') 282 d like(xmlOutputBufferPtr) 283 d buffer value like(xmlBufferPtr) 284 d encoder value 285 d like(xmlCharEncodingHandlerPtr) 286 287 d xmlOutputBufferCreateFd... 288 d pr extproc('xmlOutputBufferCreateFd') 289 d like(xmlOutputBufferPtr) 290 d fd 10i 0 value 291 d encoder value 292 d like(xmlCharEncodingHandlerPtr) 293 294 d xmlOutputBufferCreateIO... 295 d pr extproc('xmlOutputBufferCreateIO') 296 d like(xmlOutputBufferPtr) 297 d iowrite value like(xmlOutputWriteCallback) 298 d ioclose value like(xmlOutputCloseCallback) 299 d ioctx * value void * 300 d encoder value 301 d like(xmlCharEncodingHandlerPtr) 302 303 * Couple of APIs to get the output without digging into the buffers 304 305 d xmlOutputBufferGetContent... 306 d pr * extproc('xmlOutputBufferGetContent') const xmlChar * 307 d out value like(xmlOutputBufferPtr) 308 309 d xmlOutputBufferGetSize... 310 d pr 10u 0 extproc('xmlOutputBufferGetSize') size_t 311 d out value like(xmlOutputBufferPtr) 312 313 d xmlOutputBufferWrite... 314 d pr 10i 0 extproc('xmlOutputBufferWrite') 315 d out value like(xmlOutputBufferPtr) 316 d len 10i 0 value 317 d buf * value options(*string) const char * 318 319 d xmlOutputBufferWriteString... 320 d pr 10i 0 extproc('xmlOutputBufferWriteString') 321 d out value like(xmlOutputBufferPtr) 322 d str * value options(*string) const char * 323 324 d xmlOutputBufferWriteEscape... 325 d pr 10i 0 extproc('xmlOutputBufferWriteEscape') 326 d out value like(xmlOutputBufferPtr) 327 d str * value options(*string) const xmlChar * 328 d escaping value like(xmlCharEncodingOutputFunc) 329 330 d xmlOutputBufferFlush... 331 d pr 10i 0 extproc('xmlOutputBufferFlush') 332 d out value like(xmlOutputBufferPtr) 333 334 d xmlOutputBufferClose... 335 d pr 10i 0 extproc('xmlOutputBufferClose') 336 d out value like(xmlOutputBufferPtr) 337 338 d xmlRegisterOutputCallbacks... 339 d pr 10i 0 extproc('xmlRegisterOutputCallbacks') 340 d matchFunc value like(xmlOutputMatchCallback) 341 d openFunc value like(xmlOutputOpenCallback) 342 d writeFunc value like(xmlOutputWriteCallback) 343 d closeFunc value like(xmlOutputCloseCallback) 344 345 /if defined(LIBXML_HTTP_ENABLED) 346 347 * This function only exists if HTTP support built into the library 348 349 d xmlRegisterHTTPPostCallbacks... 350 d pr extproc( 351 d 'xmlRegisterHTTPPostCallbacks') 352 353 /endif LIBXML_HTTP_ENABLED 354 /endif LIBXML_OUTPUT_ENABLD 355 356 d xmlCheckHTTPInput... 357 d pr extproc('xmlCheckHTTPInput') 358 d like(xmlParserInputPtr) 359 d ctxt value like(xmlParserCtxtPtr) 360 d ret value like(xmlParserInputPtr) 361 362 * A predefined entity loader disabling network accesses 363 364 d xmlNoNetExternalEntityLoader... 365 d pr extproc( 366 d 'xmlNoNetExternalEntityLoader') 367 d like(xmlParserInputPtr) 368 d URL * value options(*string) const char * 369 d ID * value options(*string) const char * 370 d ctxt value like(xmlParserCtxtPtr) 371 372 * xmlNormalizeWindowsPath is obsolete, don't use it. 373 * Check xmlCanonicPath in uri.h for a better alternative. 374 375 d xmlNormalizeWindowsPath... 376 d pr * extproc('xmlNormalizeWindowsPath') xmlChar * 377 d path * value options(*string) const xmlChar * 378 379 d xmlCheckFilename... 380 d pr 10i 0 extproc('xmlCheckFilename') 381 d path * value options(*string) const char * 382 383 * Default 'file://' protocol callbacks 384 385 d xmlFileMatch pr 10i 0 extproc('xmlFileMatch') 386 d filename * value options(*string) const char * 387 388 d xmlFileOpen pr * extproc('xmlFileOpen') void * 389 d filename * value options(*string) const char * 390 391 d xmlFileRead pr 10i 0 extproc('xmlFileRead') 392 d context * value void * 393 d buffer 65535 options(*varsize) 394 d len 10i 0 value 395 396 d xmlFileClose pr 10i 0 extproc('xmlFileClose') 397 d context * value void * 398 399 * Default 'http://' protocol callbacks 400 401 /if defined(LIBXML_HTTP_ENABLED) 402 d xmlIOHTTPMatch pr 10i 0 extproc('xmlIOHTTPMatch') 403 d filename * value options(*string) const char * 404 405 d xmlIOHTTPOpen pr * extproc('xmlIOHTTPOpen') void * 406 d filename * value options(*string) const char * 407 408 /if defined(LIBXML_OUTPUT_ENABLED) 409 d xmlIOHTTPOpenW pr * extproc('xmlIOHTTPOpenW') void * 410 d post_uri * value options(*string) const char * 411 d compression 10i 0 value 412 /endif LIBXML_OUTPUT_ENABLD 413 414 d xmlIOHTTPRead pr 10i 0 extproc('xmlIOHTTPRead') 415 d context * value void * 416 d buffer 65535 options(*varsize) 417 d len 10i 0 value 418 419 d xmlIOHTTPClose pr 10i 0 extproc('xmlIOHTTPClose') 420 d context * value void * 421 /endif LIBXML_HTTP_ENABLED 422 423 * Default 'ftp://' protocol callbacks 424 425 /if defined(LIBXML_FTP_ENABLED) 426 d xmlIOFTPMatch pr 10i 0 extproc('xmlIOFTPMatch') 427 d filename * value options(*string) const char * 428 429 d xmlIOFTPOpen pr * extproc('xmlIOFTPOpen') void * 430 d filename * value options(*string) const char * 431 432 d xmlIOFTPRead pr 10i 0 extproc('xmlIOFTPRead') 433 d context * value void * 434 d buffer 65535 options(*varsize) 435 d len 10i 0 value 436 437 d xmlIOFTPClose pr 10i 0 extproc('xmlIOFTPClose') 438 d context * value void * 439 /endif LIBXML_FTP_ENABLED 440 441 /endif XML_IO_H__ 442