00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
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