Main Page | Class List | File List | Class Members | File Members | Related Pages

gi_buffer.h

Go to the documentation of this file.
00001 /* 00002 * $Id: gi_buffer.h,v 1.1.2.7 2004/02/22 00:32:46 jasta Exp $ 00003 * 00004 * Copyright (C) 2003 giFT project (gift.sourceforge.net) 00005 * 00006 * This program is free software; you can redistribute it and/or modify it 00007 * under the terms of the GNU General Public License as published by the 00008 * Free Software Foundation; either version 2, or (at your option) any 00009 * later version. 00010 * 00011 * This program is distributed in the hope that it will be useful, but 00012 * WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * General Public License for more details. 00015 */ 00016 00017 #ifndef __GI_BUFFER_H 00018 #define __GI_BUFFER_H 00019 00020 /*****************************************************************************/ 00021 00028 /*****************************************************************************/ 00029 00034 typedef struct 00035 { 00041 void *data; 00042 00047 size_t size; 00048 00055 size_t len; 00056 00063 bool resize_ok; 00064 } GiBuffer; 00065 00066 /*****************************************************************************/ 00067 00068 EXTERN_C_BEGIN 00069 00070 /*****************************************************************************/ 00071 00076 LIBGIFT_EXPORT 00077 void gi_buffer_init (GiBuffer *buffer); 00078 00101 LIBGIFT_EXPORT 00102 void gi_buffer_initex (GiBuffer *buffer, void *buf, size_t siz, size_t len, 00103 bool rsz); 00104 00110 LIBGIFT_EXPORT 00111 void gi_buffer_finish (GiBuffer *buffer); 00112 00113 /*****************************************************************************/ 00114 00125 LIBGIFT_EXPORT 00126 bool gi_buffer_grow (GiBuffer *buffer, size_t grown); 00127 00135 LIBGIFT_EXPORT 00136 bool gi_buffer_shrink (GiBuffer *buffer, size_t shrunk); 00137 00144 LIBGIFT_EXPORT 00145 bool gi_buffer_double (GiBuffer *buffer); 00146 00154 LIBGIFT_EXPORT 00155 bool gi_buffer_resize (GiBuffer *buffer, size_t size); 00156 00162 LIBGIFT_EXPORT 00163 bool gi_buffer_minsize (GiBuffer *buffer, size_t minsize); 00164 00171 LIBGIFT_EXPORT 00172 size_t gi_buffer_handy (GiBuffer *buffer); 00173 00174 /*****************************************************************************/ 00175 00184 LIBGIFT_EXPORT 00185 bool gi_buffer_append (GiBuffer *buffer, const void *buf, size_t siz); 00186 00192 LIBGIFT_EXPORT 00193 bool gi_buffer_prepend (GiBuffer *buffer, const void *buf, size_t siz); 00194 00205 LIBGIFT_EXPORT 00206 bool gi_buffer_truncate (GiBuffer *buffer, size_t len); 00207 00208 /*****************************************************************************/ 00209 00215 LIBGIFT_EXPORT 00216 void *gi_buffer_tail (GiBuffer *buffer); 00217 00222 LIBGIFT_EXPORT 00223 void *gi_buffer_head (GiBuffer *buffer); 00224 00225 /*****************************************************************************/ 00226 00227 EXTERN_C_END 00228 00229 /*****************************************************************************/ 00230 00231 #endif /* __GI_BUFFER_H */

Generated on Sun Aug 22 07:56:40 2004 by doxygen 1.3.7