ixmlmembuf.h File Reference
`#include "ixml.h"`
`#include <stdlib.h>`
Include dependency graph for ixmlmembuf.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Data Structures

struct | ixml_membuf
| The ixml_membuf type. More...

## Macros

#define | MINVAL(a, b) ( (a) < (b) ? (a) : (b) )
#define | MAXVAL(a, b) ( (a) > (b) ? (a) : (b) )
#define | MEMBUF_DEF_SIZE_INC 20u

## Functions

void | ixml_membuf_init (ixml_membuf *m)
| ixml_membuf initialization routine. More...
void | ixml_membuf_destroy (ixml_membuf *m)
| ixml_membuf clearing routine. More...
int | ixml_membuf_assign (ixml_membuf *m, const void *buf, size_t buf_len)
| Copies the contents o a buffer to the designated ixml_membuf. More...
int | ixml_membuf_assign_str (ixml_membuf *m, const char *c_str)
| Copies a NULL terminated string to the ixml_buffer. More...
int | ixml_membuf_append (ixml_membuf *m, const void *buf)
| Appends one byte to the designated ixml_membuffer. More...
int | ixml_membuf_append_str (ixml_membuf *m, const char *c_str)
| Appends the contents of a NULL terminated string to the designated ixml_membuf. More...
int | ixml_membuf_insert (ixml_membuf *m, const void *buf, size_t buf_len, size_t index)

## Function Documentation

## ixml_membuf_append()

int ixml_membuf_append | ( | ixml_membuf * | m,
|  | const void * | buf
| ) |  |

Appends one byte to the designated ixml_membuffer.

This is a convenience function that internally uses ixml_membuf_insert().

Returns
  The return value of ixml_membuf_insert().

See also
  ixml_membuf_insert()

Parameters

  [in,out] | m | The memory buffer on which to operate.
  [in] | buf | The pointer to the byte to append.

Referenced by copy_with_escape(), ixml_membuf_assign_str(), and Parser_appendTokBufChar().

## ixml_membuf_append_str()

int ixml_membuf_append_str | ( | ixml_membuf * | m,
|  | const char * | c_str
| ) |  |

Appends the contents of a NULL terminated string to the designated ixml_membuf.

This is a convenience function that internally uses ixml_membuf_insert().

Returns
  The return value of ixml_membuf_insert().

See also
  ixml_membuf_insert().

Parameters

  [in,out] | m | The memory buffer on which to operate.
  [in] | c_str | The input string to copy from.

Referenced by copy_with_escape(), ixmlDocumenttoString(), and ixmlPrintDocument().

## ixml_membuf_assign()

int ixml_membuf_assign | ( | ixml_membuf * | m,
|  | const void * | buf,
|  | size_t | buf_len
| ) |  |

Copies the contents o a buffer to the designated ixml_membuf.

The previous contents of the ixml_membuf are destroyed.

Returns
  IXML_SUCCESS if successfull, or the error code returned by ixml_membuf_set_size().

See also
  ixml_membuf_assign_str().

Parameters

  [in,out] | m | The memory buffer on which to operate.
  [in] | buf | The input buffer to copy from.
  [in] | buf_len | The number of bytes to copy from the input buffer.

References ixml_membuf_destroy().

Referenced by ixml_membuf_assign_str().

## ixml_membuf_assign_str()

int ixml_membuf_assign_str | ( | ixml_membuf * | m,
|  | const char * | c_str
| ) |  |

Copies a NULL terminated string to the ixml_buffer.

This is a convenience function that internally uses ixml_membuf_assign().

Returns
  The return value of ixml_membuf_assign().

See also
  ixml_membuf_assign().

Parameters

  [in,out] | m | The memory buffer on which to operate.
  [in] | c_str | The input string to copy from.

References ixml_membuf_append(), and ixml_membuf_assign().

## ixml_membuf_destroy()

void ixml_membuf_destroy | ( | ixml_membuf * | m | ) |

ixml_membuf clearing routine.

The internal buffer is deleted and ixml_membuf_init() is called in the end to reinitialize the buffer.

Parameters

  [in,out] | m | The memory buffer to clear.

References ixml_membuf_init().

Referenced by ixml_membuf_assign(), Parser_clearTokenBuf(), and Parser_free().

## ixml_membuf_init()

void ixml_membuf_init | ( | ixml_membuf * | m | ) |

ixml_membuf initialization routine.

Parameters

  [in,out] | m | The memory buffer to initializa.

References MEMBUF_DEF_SIZE_INC.

Referenced by ixml_membuf_destroy(), ixmlDocumenttoString(), ixmlNodetoString(), ixmlPrintDocument(), ixmlPrintNode(), and Parser_init().

## ixml_membuf_insert()

int ixml_membuf_insert | ( | ixml_membuf * | m,
|  | const void * | buf,
|  | size_t | buf_len,
|  | size_t | index
| ) |  |

Returns
  - 0 if successfull.
  - IXML_INDEX_SIZE_ERR if the index parameter is out of range.
  - Or the return code of ixml_membuf_set_size()

See also
  ixml_membuf_set_size()

Parameters

  [in,out] | m | The memory buffer on which to operate.
  [in] | buf | The pointer to the input buffer.
  [in] | buf_len | The buffer length.
  [in] | index | The point of insertion relative to the beggining of the ixml_membuf internal buffer.