2  * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com.
 
   3  * Copyright (c) 2003, 2004 Lev Walkin <vlm@lionet.info>. All rights reserved.
 
   4  * Redistribution and modifications are permitted subject to BSD license.
 
   6 #ifndef _XER_SUPPORT_H_
 
   7 #define _XER_SUPPORT_H_
 
   9 #include <asn_system.h>         /* Platform-specific types */
 
  16  * Types of data transferred to the application.
 
  19         PXML_TEXT,      /* Plain text between XML tags. */
 
  20         PXML_TAG,       /* A tag, starting with '<'. */
 
  21         PXML_COMMENT,   /* An XML comment, including "<!--" and "-->". */
 
  23          * The following chunk types are reported if the chunk
 
  24          * terminates the specified XML element.
 
  26         PXML_TAG_END,           /* Tag ended */
 
  27         PXML_COMMENT_END        /* Comment ended */
 
  31  * Callback function that is called by the parser when parsed data is
 
  32  * available. The _opaque is the pointer to a field containing opaque user 
 
  33  * data specified in pxml_create() call. The chunk type is _type and the text 
 
  34  * data is the piece of buffer identified by _bufid (as supplied to
 
  35  * pxml_feed() call) starting at offset _offset and of _size bytes size. 
 
  36  * The chunk is NOT '\0'-terminated.
 
  38 typedef int (pxml_callback_f)(pxml_chunk_type_e _type,
 
  39         const void *_chunk_data, size_t _chunk_size, void *_key);
 
  42  * Parse the given buffer as it were a chunk of XML data.
 
  43  * Invoke the specified callback each time the meaninful data is found.
 
  44  * This function returns number of bytes consumed from the bufer.
 
  45  * It will always be lesser than or equal to the specified _size.
 
  46  * The next invocation of this function must account the difference.
 
  48 ssize_t pxml_parse(int *_stateContext, const void *_buf, size_t _size,
 
  49         pxml_callback_f *cb, void *_key);
 
  55 #endif  /* _XER_SUPPORT_H_ */