Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

wsbuffer.h File Reference

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Data Structures

struct  WsBufferRec

Typedefs

typedef WsBufferRec WsBuffer

Functions

void ws_buffer_init (WsBuffer *buffer)
void ws_buffer_uninit (WsBuffer *buffer)
WsBufferws_buffer_alloc (void)
void ws_buffer_free (WsBuffer *buffer)
WsBool ws_buffer_append (WsBuffer *buffer, unsigned char *data, size_t len)
WsBool ws_buffer_append_space (WsBuffer *buffer, unsigned char **p, size_t size)
unsigned char * ws_buffer_ptr (WsBuffer *buffer)
size_t ws_buffer_len (WsBuffer *buffer)
unsigned char * ws_buffer_steal (WsBuffer *buffer)


Typedef Documentation

typedef struct WsBufferRec WsBuffer
 

Definition at line 83 of file wsbuffer.h.

Referenced by buffer_to_int(), read_float_from_exp(), read_float_from_point(), ws_bc_encode(), ws_buffer_alloc(), ws_buffer_append(), ws_buffer_append_space(), ws_buffer_free(), ws_buffer_init(), ws_buffer_len(), ws_buffer_ptr(), ws_buffer_steal(), ws_buffer_uninit(), ws_encode_buffer(), and ws_yy_lex().


Function Documentation

WsBuffer* ws_buffer_alloc void   ) 
 

Definition at line 89 of file wsbuffer.c.

References ws_calloc(), and WsBuffer.

00090 {
00091     return ws_calloc(1, sizeof(WsBuffer));
00092 }

Here is the call graph for this function:

WsBool ws_buffer_append WsBuffer buffer,
unsigned char *  data,
size_t  len
 

Definition at line 102 of file wsbuffer.c.

References data, ws_buffer_append_space(), WsBool, and WsBuffer.

00103 {
00104     unsigned char *p;
00105 
00106     if (!ws_buffer_append_space(buffer, &p, len))
00107         return WS_FALSE;
00108 
00109     memcpy(p, data, len);
00110 
00111     return WS_TRUE;
00112 }

Here is the call graph for this function:

WsBool ws_buffer_append_space WsBuffer buffer,
unsigned char **  p,
size_t  size
 

Definition at line 115 of file wsbuffer.c.

References WsBufferRec::data, WsBufferRec::len, size, ws_realloc(), WsBool, and WsBuffer.

Referenced by buffer_to_int(), read_float_from_exp(), read_float_from_point(), ws_bc_encode(), ws_buffer_append(), ws_encode_buffer(), and ws_yy_lex().

00116 {
00117     unsigned char *ndata = ws_realloc(buffer->data, buffer->len + size);
00118 
00119     if (ndata == NULL)
00120         return WS_FALSE;
00121 
00122     buffer->data = ndata;
00123 
00124     if (p)
00125         *p = buffer->data + buffer->len;
00126 
00127     buffer->len += size;
00128 
00129     return WS_TRUE;
00130 }

Here is the call graph for this function:

void ws_buffer_free WsBuffer buffer  ) 
 

Definition at line 95 of file wsbuffer.c.

References WsBufferRec::data, ws_free(), and WsBuffer.

00096 {
00097     ws_free(buffer->data);
00098     ws_free(buffer);
00099 }

Here is the call graph for this function:

void ws_buffer_init WsBuffer buffer  ) 
 

Definition at line 74 of file wsbuffer.c.

References WsBufferRec::data, WsBufferRec::len, and WsBuffer.

Referenced by compile_stream(), ws_bc_encode(), and ws_yy_lex().

00075 {
00076     buffer->len = 0;
00077     buffer->data = NULL;
00078 }

size_t ws_buffer_len WsBuffer buffer  ) 
 

Definition at line 139 of file wsbuffer.c.

References WsBufferRec::len, and WsBuffer.

Referenced by compile_stream(), ws_bc_encode(), and ws_yy_lex().

00140 {
00141     return buffer->len;
00142 }

unsigned char* ws_buffer_ptr WsBuffer buffer  ) 
 

Definition at line 133 of file wsbuffer.c.

References WsBufferRec::data, and WsBuffer.

Referenced by buffer_to_int(), compile_stream(), read_float_from_exp(), and ws_bc_encode().

00134 {
00135     return buffer->data;
00136 }

unsigned char* ws_buffer_steal WsBuffer buffer  ) 
 

Definition at line 145 of file wsbuffer.c.

References WsBufferRec::data, WsBufferRec::len, and WsBuffer.

00146 {
00147     unsigned char *p = buffer->data;
00148 
00149     buffer->data = NULL;
00150     buffer->len = 0;
00151 
00152     return p;
00153 }

void ws_buffer_uninit WsBuffer buffer  ) 
 

Definition at line 81 of file wsbuffer.c.

References WsBufferRec::data, WsBufferRec::len, ws_free(), and WsBuffer.

Referenced by compile_stream(), ws_bc_encode(), and ws_yy_lex().

00082 {
00083     ws_free(buffer->data);
00084     buffer->len = 0;
00085     buffer->data = NULL;
00086 }

Here is the call graph for this function:

See file LICENSE for details about the license agreement for using, modifying, copying or deriving work from this software.