/ libxml2 / buf.h
buf.h
 1  /*
 2   * Summary: Internal Interfaces for memory buffers in libxml2
 3   * Description: this module describes most of the new xmlBuf buffer
 4   *              entry points, those are private routines, with a
 5   *              few exceptions exported in tree.h. This was added
 6   *              in 2.9.0.
 7   *
 8   * Copy: See Copyright for the status of this software.
 9   *
10   * Author: Daniel Veillard
11   */
12  
13  #ifndef __XML_BUF_H__
14  #define __XML_BUF_H__
15  
16  #include <libxml/tree.h>
17  
18  #ifdef __cplusplus
19  extern "C" {
20  #endif
21  
22  xmlBufPtr xmlBufCreate(void);
23  xmlBufPtr xmlBufCreateSize(size_t size);
24  xmlBufPtr xmlBufCreateStatic(void *mem, size_t size);
25  
26  int xmlBufSetAllocationScheme(xmlBufPtr buf,
27                                xmlBufferAllocationScheme scheme);
28  int xmlBufGetAllocationScheme(xmlBufPtr buf);
29  
30  void xmlBufFree(xmlBufPtr buf);
31  void xmlBufEmpty(xmlBufPtr buf);
32  
33  /* size_t xmlBufShrink(xmlBufPtr buf, size_t len); */
34  int xmlBufGrow(xmlBufPtr buf, int len);
35  int xmlBufInflate(xmlBufPtr buf, size_t len);
36  int xmlBufResize(xmlBufPtr buf, size_t len);
37  
38  int xmlBufAdd(xmlBufPtr buf, const xmlChar *str, int len);
39  int xmlBufAddHead(xmlBufPtr buf, const xmlChar *str, int len);
40  int xmlBufCat(xmlBufPtr buf, const xmlChar *str);
41  int xmlBufCCat(xmlBufPtr buf, const char *str);
42  int xmlBufWriteCHAR(xmlBufPtr buf, const xmlChar *string);
43  int xmlBufWriteChar(xmlBufPtr buf, const char *string);
44  int xmlBufWriteQuotedString(xmlBufPtr buf, const xmlChar *string);
45  
46  size_t xmlBufAvail(const xmlBufPtr buf);
47  size_t xmlBufLength(const xmlBufPtr buf);
48  /* size_t xmlBufUse(const xmlBufPtr buf); */
49  int xmlBufIsEmpty(const xmlBufPtr buf);
50  int xmlBufAddLen(xmlBufPtr buf, size_t len);
51  int xmlBufErase(xmlBufPtr buf, size_t len);
52  
53  /* const xmlChar * xmlBufContent(const xmlBuf *buf); */
54  /* const xmlChar * xmlBufEnd(xmlBufPtr buf); */
55  
56  xmlChar * xmlBufDetach(xmlBufPtr buf);
57  
58  size_t xmlBufDump(FILE *file, xmlBufPtr buf);
59  
60  xmlBufPtr xmlBufFromBuffer(xmlBufferPtr buffer);
61  xmlBufferPtr xmlBufBackToBuffer(xmlBufPtr buf);
62  int xmlBufMergeBuffer(xmlBufPtr buf, xmlBufferPtr buffer);
63  
64  int xmlBufResetInput(xmlBufPtr buf, xmlParserInputPtr input);
65  size_t xmlBufGetInputBase(xmlBufPtr buf, xmlParserInputPtr input);
66  int xmlBufSetInputBaseCur(xmlBufPtr buf, xmlParserInputPtr input,
67                            size_t base, size_t cur);
68  #ifdef __cplusplus
69  }
70  #endif
71  #endif /* __XML_BUF_H__ */
72