3rdparty
lua-5.4.3
src
lzio.h
Go to the documentation of this 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
LUAI_FUNC
#define LUAI_FUNC
Definition:
luaconf.h:312
luaZ_init
LUAI_FUNC void luaZ_init(lua_State *L, ZIO *z, lua_Reader reader, void *data)
Definition:
lzio.c:38
Mbuffer::buffsize
size_t buffsize
Definition:
lzio.h:26
lua_Reader
const typedef char *(* lua_Reader)(lua_State *L, void *ud, size_t *sz)
Definition:
lua.h:117
Zio::p
const char * p
Definition:
lzio.h:57
luaZ_fill
LUAI_FUNC int luaZ_fill(ZIO *z)
Definition:
lzio.c:23
mqtt_test_proto.z
z
Definition:
mqtt_test_proto.py:36
lua.h
Mbuffer::buffer
char * buffer
Definition:
lzio.h:24
Mbuffer
struct Mbuffer Mbuffer
Zio::reader
lua_Reader reader
Definition:
lzio.h:58
Mbuffer
Definition:
lzio.h:23
luaZ_read
LUAI_FUNC size_t luaZ_read(ZIO *z, void *b, size_t n)
Definition:
lzio.c:48
lua_State
Definition:
lstate.h:304
Mbuffer::n
size_t n
Definition:
lzio.h:25
Zio::n
size_t n
Definition:
lzio.h:56
reader
static const char * reader(lua_State *L, void *ud, size_t *size)
Definition:
luac.c:126
mqtt_test.data
dictionary data
Definition:
mqtt_test.py:22
Zio::data
void * data
Definition:
lzio.h:59
Zio::L
lua_State * L
Definition:
lzio.h:60
lmem.h
Zio
Definition:
lzio.h:55
plotjuggler
Author(s): Davide Faconti
autogenerated on Mon Nov 11 2024 03:23:45