# XQilla XQC API Documentation

# XQC_InputStream_s Struct Reference

The XQC_InputStream struct is designed to be populated by users for the purpose of streaming data into an XQC implementation. More...

`#include <xqc.h>`

List of all members.

## Public Attributes

const char * | encoding
| The text encoding of the input data as a UTF-8 string, or 0 if unknown.
void * | user_data
| Can be used for user specific purposes.
unsigned int(* | read )(XQC_InputStream *stream, void *buffer, unsigned int length)
| The function called to read more of the input query.
void(* | free )(XQC_InputStream *stream)
| Called to free the resources associated with the XQC_InputStream.

## Detailed Description

The XQC_InputStream struct is designed to be populated by users for the purpose of streaming data into an XQC implementation.

## Member Data Documentation

const char* XQC_InputStream_s::encoding

The text encoding of the input data as a UTF-8 string, or 0 if unknown.

The value of the string should conform to the `EncName` grammar production as specified in XML 1.0:

http://www.w3.org/TR/REC-xml/#NT-EncName

void(* XQC_InputStream_s::free)(XQC_InputStream *stream)

Called to free the resources associated with the XQC_InputStream.

Parameters:

  | stream | The XQC_InputStream that this function pointer is a member of

unsigned int(* XQC_InputStream_s::read)(XQC_InputStream *stream, void *buffer, unsigned int length)

The function called to read more of the input query.

The function should read the next chunk of input into the buffer provided, returning the length of the data read.

Parameters:

  | stream | The XQC_InputStream that this function pointer is a member of
  `[out]` | buffer | The buffer to read the data into
  | length | The length of the buffer

Returns:
  The number of bytes read - this will be less than length if the end of the input is reached

void* XQC_InputStream_s::user_data

Can be used for user specific purposes.

The documentation for this struct was generated from the following file:

- xqc.h