mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2024-10-26 12:25:09 +03:00
18e1f1f118
Now tree.h exports LIBXML2_NEW_BUFFER macro indicating that the API uses the new buffers, important to keep code working with both versions. * tree.h buf.h: also export xmlBufContent(), xmlBufEnd(), and xmlBufUse() to help port the old code * buf.c: make sure the compatibility counters are updated on buffer usage, to keep proper working of application compiled against the old structures, but take care of int overflow
69 lines
2.1 KiB
C
69 lines
2.1 KiB
C
/*
|
|
* buf.h: Internal Interfaces for memory buffers in libxml2
|
|
*
|
|
* See Copyright for the status of this software.
|
|
*
|
|
* daniel@veillard.com
|
|
*/
|
|
|
|
#ifndef __XML_BUF_H__
|
|
#define __XML_BUF_H__
|
|
|
|
#include <libxml/tree.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
xmlBufPtr xmlBufCreate(void);
|
|
xmlBufPtr xmlBufCreateSize(size_t size);
|
|
xmlBufPtr xmlBufCreateStatic(void *mem, size_t size);
|
|
|
|
int xmlBufSetAllocationScheme(xmlBufPtr buf,
|
|
xmlBufferAllocationScheme scheme);
|
|
int xmlBufGetAllocationScheme(xmlBufPtr buf);
|
|
|
|
void xmlBufFree(xmlBufPtr buf);
|
|
void xmlBufEmpty(xmlBufPtr buf);
|
|
|
|
size_t xmlBufShrink(xmlBufPtr buf, size_t len);
|
|
int xmlBufGrow(xmlBufPtr buf, int len);
|
|
int xmlBufInflate(xmlBufPtr buf, size_t len);
|
|
int xmlBufResize(xmlBufPtr buf, size_t len);
|
|
|
|
int xmlBufAdd(xmlBufPtr buf, const xmlChar *str, int len);
|
|
int xmlBufAddHead(xmlBufPtr buf, const xmlChar *str, int len);
|
|
int xmlBufCat(xmlBufPtr buf, const xmlChar *str);
|
|
int xmlBufCCat(xmlBufPtr buf, const char *str);
|
|
int xmlBufWriteCHAR(xmlBufPtr buf, const xmlChar *string);
|
|
int xmlBufWriteChar(xmlBufPtr buf, const char *string);
|
|
int xmlBufWriteQuotedString(xmlBufPtr buf, const xmlChar *string);
|
|
|
|
size_t xmlBufAvail(const xmlBufPtr buf);
|
|
size_t xmlBufLength(const xmlBufPtr buf);
|
|
/* size_t xmlBufUse(const xmlBufPtr buf); */
|
|
int xmlBufIsEmpty(const xmlBufPtr buf);
|
|
int xmlBufAddLen(xmlBufPtr buf, size_t len);
|
|
int xmlBufErase(xmlBufPtr buf, size_t len);
|
|
|
|
/* const xmlChar * xmlBufContent(const xmlBufPtr buf); */
|
|
/* const xmlChar * xmlBufEnd(const xmlBufPtr buf); */
|
|
|
|
xmlChar * xmlBufDetach(xmlBufPtr buf);
|
|
|
|
size_t xmlBufDump(FILE *file, xmlBufPtr buf);
|
|
|
|
xmlBufPtr xmlBufFromBuffer(xmlBufferPtr buffer);
|
|
xmlBufferPtr xmlBufBackToBuffer(xmlBufPtr buf);
|
|
int xmlBufMergeBuffer(xmlBufPtr buf, xmlBufferPtr buffer);
|
|
|
|
int xmlBufResetInput(xmlBufPtr buf, xmlParserInputPtr input);
|
|
size_t xmlBufGetInputBase(xmlBufPtr buf, xmlParserInputPtr input);
|
|
int xmlBufSetInputBaseCur(xmlBufPtr buf, xmlParserInputPtr input,
|
|
size_t base, size_t cur);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* __XML_BUF_H__ */
|
|
|