Home | History | Annotate | Download | only in libxml2
      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 
     73