ixmlmembuf.h

Go to the documentation of this file.
00001 /**************************************************************************
00002  *
00003  * Copyright (c) 2000-2003 Intel Corporation 
00004  * All rights reserved. 
00005  *
00006  * Redistribution and use in source and binary forms, with or without 
00007  * modification, are permitted provided that the following conditions are met: 
00008  *
00009  * - Redistributions of source code must retain the above copyright notice, 
00010  * this list of conditions and the following disclaimer. 
00011  * - Redistributions in binary form must reproduce the above copyright notice, 
00012  * this list of conditions and the following disclaimer in the documentation 
00013  * and/or other materials provided with the distribution. 
00014  * - Neither name of Intel Corporation nor the names of its contributors 
00015  * may be used to endorse or promote products derived from this software 
00016  * without specific prior written permission.
00017  * 
00018  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
00019  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
00020  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
00021  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR 
00022  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
00023  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
00024  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
00025  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
00026  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00027  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
00028  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00029  *
00030  **************************************************************************/
00031 
00032 
00033 #ifndef IXML_MEMBUF_H
00034 #define IXML_MEMBUF_H
00035 
00036 
00042 #include "ixml.h"
00043 
00044 
00045 #include <stdlib.h> /* for size_t */
00046 
00047 
00048 #define MINVAL(a, b) ( (a) < (b) ? (a) : (b) )
00049 #define MAXVAL(a, b) ( (a) > (b) ? (a) : (b) )
00050 
00051 
00052 #define MEMBUF_DEF_SIZE_INC 20
00053 
00054 
00058 typedef struct
00059 {
00060         char *buf;      
00061         size_t length;
00062         size_t capacity;
00063         size_t size_inc;
00064 } ixml_membuf;
00065 
00066 
00070 void ixml_membuf_init(
00072         ixml_membuf *m);
00073 
00074 
00081 void ixml_membuf_destroy(
00083         ixml_membuf *m);
00084 
00085 
00096 int ixml_membuf_assign(
00098         ixml_membuf *m,
00100         const void *buf, 
00102         size_t buf_len);
00103 
00113 int ixml_membuf_assign_str(
00115         ixml_membuf *m,
00117         const char *c_str);
00118 
00128 int ixml_membuf_append(
00130         ixml_membuf *m,
00132         const void *buf);
00133 
00144 int ixml_membuf_append_str(
00146         ixml_membuf *m,
00148         const char *c_str);
00149 
00160 int ixml_membuf_insert(
00162         ixml_membuf *m,
00164         const void *buf, 
00166         size_t buf_len,
00169         int index);
00170 
00171 
00172 #endif /* IXML_MEMBUF_H */
00173 
Generated on Fri May 21 00:33:57 2010 for libUPnP by  doxygen 1.6.3