ixmlmembuf.c File Reference
`#include "ixmlmembuf.h"`
`#include "ixml.h"`
`#include <assert.h>`
`#include <stdlib.h>`
`#include <string.h>`
Include dependency graph for ixmlmembuf.c:

## Functions

static int | ixml_membuf_set_size (ixml_membuf *m, size_t new_length)
| Increases or decreases buffer capacity so that at least 'new_length' bytes can be stored.
void | ixml_membuf_init (ixml_membuf *m)
| ixml_membuf initialization routine.
void | ixml_membuf_destroy (ixml_membuf *m)
| ixml_membuf clearing routine.
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.
int | ixml_membuf_assign_str (ixml_membuf *m, const char *c_str)
| Copies a NULL terminated string to the ixml_buffer.
int | ixml_membuf_append (ixml_membuf *m, const void *buf)
| Appends one byte to the designated ixml_membuffer.
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.
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
  [in] | buf | The buffer to append

References ixml_membuf_insert().

Referenced by copy_with_escape(), 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
  [in] | c_str | The characters to append (null-terminated)

References ixml_membuf_insert().

Referenced by copy_with_escape(), ixmlDocumenttoString(), ixmlDomTreetoString(), ixmlPrintDocument(), ixmlPrintDomTree(), ixmlPrintDomTreeRecursive(), and Parser_appendTokBufStr().

## 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(), and ixml_membuf_set_size().

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_assign().

Referenced by Parser_setLastElem().

## 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
  [in] | buf | The buffer to insert
  [in] | buf_len | The length of the buffer
  [in] | index | Position where to insert the buffer

References ixml_membuf_set_size().

Referenced by ixml_membuf_append(), and ixml_membuf_append_str().

## ixml_membuf_set_size()

static int ixml_membuf_set_size | ( | ixml_membuf * | m,
|  | size_t | new_length
| ) |  |

static

Increases or decreases buffer capacity so that at least 'new_length' bytes can be stored.

On error, m's fields do not change.

Returns
  - UPNP_E_SUCCESS
  - UPNP_E_OUTOF_MEMORY

Parameters

  [in,out] | m | The memory buffer.
  [in] | new_length | The new lenght.

Referenced by ixml_membuf_assign(), and ixml_membuf_insert().