x-engine-c v0.2.13
The C engine for x-lang
Loading...
Searching...
No Matches
buffer.h
Go to the documentation of this file.
1#ifndef X_TYPE_BUFFER_H
2#define X_TYPE_BUFFER_H
3
21/*
22 * ., .,
23 * {O,O}
24 * ( )
25 * " "
26 */
27
28#include "x-type.h"
29
30#ifndef X_TYPE_BUFFER_NAME
31#define X_TYPE_BUFFER_NAME "BUFFER"
41#define X_TYPE_BUFFER_FLAG_INNER X_OBJ_FLAG_4
42#endif /* X_TYPE_BUFFER_NAME */
43
44
48#define x_obj_type_isbuffer(B,X) x_obj_is_type((B), (X), X_TYPE_BUFFER_NAME)
54#define x_bufferval(X) x_firststr(X)
56#define x_bufferread(X) x_firststr(x_restobj(X))
58#define x_bufferwrite(X) x_reststr(x_restobj(X))
60#define x_bufferlen(X) (x_bufferread(X) - x_bufferval(X))
62#define x_bufferunread(X) (x_bufferwrite(X) - x_bufferread(X))
64#define x_bufferlastchar(X) (x_bufferread(X)[-1])
66#define x_buffereof(X) (x_bufferread(X) >= x_bufferwrite(X))
72#define x_mkbuffer(B, P) x_make_buffer((B), X_OBJ_FLAG_NONE, (P))
74#define x_mkbufferro(B, P) x_make_buffer((B), X_OBJ_FLAG_RO, (P))
76#define x_mkfbuffer(B, F, P) x_make_buffer((B), (F), (P))
78#define x_mkbufferown(B, P) x_make_buffer((B), X_OBJ_FLAG_OWN, (P))
80#define x_mkfbufferown(B, F, P) x_make_buffer((B), X_OBJ_FLAG_OWN | (F), (P))
84x_obj_t *x_make_buffer(x_obj_t *p_base, x_obj_flag_t flags, void *p);
85
104
105#endif /* X_TYPE_BUFFER_H */
x_obj_t * x_type_buffer_read(x_obj_t *p_base, x_obj_t *p_args)
Definition buffer.c:284
x_obj_t * x_type_buffer_reset(x_obj_t *p_base, x_obj_t *p_obj)
Definition buffer.c:203
x_obj_t * x_make_buffer(x_obj_t *p_base, x_obj_flag_t flags, void *p)
Definition buffer.c:34
x_obj_t * x_type_buffer_retain(x_obj_t *p_base, x_obj_t *p_args)
Definition buffer.c:222
x_obj_t * x_type_buffer_struct(x_obj_t *p_base, x_obj_t *p_args)
Definition buffer.c:137
x_obj_t * x_type_buffer_make(x_obj_t *p_base, x_obj_t *p_args)
Definition buffer.c:179
x_obj_t * x_type_buffer_read_text(x_obj_t *p_base, x_obj_t *p_args)
Definition buffer.c:389
x_obj_t * x_type_buffer_append(x_obj_t *p_base, x_obj_t *p_args)
Definition buffer.c:260
x_obj_t * x_type_buffer_register(x_obj_t *p_base, x_obj_t *p_args)
Definition buffer.c:157
x_obj_t * x_type_buffer_mark(x_obj_t *p_base, x_obj_t *p_args)
Definition buffer.c:56
static void x_obj_t * p_args
Definition x-prim.h:56
Definition x-obj.h:212
enum x_obj_flag_enum x_obj_flag_t
Type system field accessors and type struct definition.