"Fossies" - the Fresh Open Source Software Archive

Member "memcached-1.6.15/vendor/lua/src/lzio.h" (1 Oct 2021, 1438 Bytes) of package /linux/www/memcached-1.6.15.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 /*
    2 ** $Id: lzio.h $
    3 ** Buffered streams
    4 ** See Copyright Notice in lua.h
    5 */
    6 
    7 
    8 #ifndef lzio_h
    9 #define lzio_h
   10 
   11 #include "lua.h"
   12 
   13 #include "lmem.h"
   14 
   15 
   16 #define EOZ (-1)            /* end of stream */
   17 
   18 typedef struct Zio ZIO;
   19 
   20 #define zgetc(z)  (((z)->n--)>0 ?  cast_uchar(*(z)->p++) : luaZ_fill(z))
   21 
   22 
   23 typedef struct Mbuffer {
   24   char *buffer;
   25   size_t n;
   26   size_t buffsize;
   27 } Mbuffer;
   28 
   29 #define luaZ_initbuffer(L, buff) ((buff)->buffer = NULL, (buff)->buffsize = 0)
   30 
   31 #define luaZ_buffer(buff)   ((buff)->buffer)
   32 #define luaZ_sizebuffer(buff)   ((buff)->buffsize)
   33 #define luaZ_bufflen(buff)  ((buff)->n)
   34 
   35 #define luaZ_buffremove(buff,i) ((buff)->n -= (i))
   36 #define luaZ_resetbuffer(buff) ((buff)->n = 0)
   37 
   38 
   39 #define luaZ_resizebuffer(L, buff, size) \
   40     ((buff)->buffer = luaM_reallocvchar(L, (buff)->buffer, \
   41                 (buff)->buffsize, size), \
   42     (buff)->buffsize = size)
   43 
   44 #define luaZ_freebuffer(L, buff)    luaZ_resizebuffer(L, buff, 0)
   45 
   46 
   47 LUAI_FUNC void luaZ_init (lua_State *L, ZIO *z, lua_Reader reader,
   48                                         void *data);
   49 LUAI_FUNC size_t luaZ_read (ZIO* z, void *b, size_t n); /* read next n bytes */
   50 
   51 
   52 
   53 /* --------- Private Part ------------------ */
   54 
   55 struct Zio {
   56   size_t n;         /* bytes still unread */
   57   const char *p;        /* current position in buffer */
   58   lua_Reader reader;        /* reader function */
   59   void *data;           /* additional data */
   60   lua_State *L;         /* Lua state (for reader) */
   61 };
   62 
   63 
   64 LUAI_FUNC int luaZ_fill (ZIO *z);
   65 
   66 #endif