php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
plog.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2019 Alexander Borisov
3 *
4 * Author: Alexander Borisov <borisov@lexbor.com>
5 */
6
7#ifndef LEXBOR_PLOG_H
8#define LEXBOR_PLOG_H
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
15
16
17typedef struct {
19 void *context;
20 unsigned id;
21}
23
24typedef struct {
26}
28
29
31lexbor_plog_init(lexbor_plog_t *plog, size_t init_size, size_t struct_size);
32
34lexbor_plog_destroy(lexbor_plog_t *plog, bool self_destroy);
35
36
37/*
38 * Inline functions
39 */
42{
43 return (lexbor_plog_t *) lexbor_calloc(1, sizeof(lexbor_plog_t));
44}
45
46lxb_inline void
51
52lxb_inline void *
54 unsigned id)
55{
57
58 if (plog == NULL) {
59 return NULL;
60 }
61
63 if (entry == NULL) {
64 return NULL;
65 }
66
67 entry->data = data;
68 entry->context = ctx;
69 entry->id = id;
70
71 return (void *) entry;
72}
73
74lxb_inline size_t
79
80/*
81 * No inline functions for ABI.
82 */
85
86LXB_API void
88
89LXB_API void *
90lexbor_plog_push_noi(lexbor_plog_t *plog, const lxb_char_t *data, void *ctx,
91 unsigned id);
92
93LXB_API size_t
95
96
97#ifdef __cplusplus
98} /* extern "C" */
99#endif
100
101#endif /* LEXBOR_PLOG_H */
102
void * lexbor_array_obj_push(lexbor_array_obj_t *array)
Definition array_obj.c:93
void lexbor_array_obj_clean(lexbor_array_obj_t *array)
Definition array_obj.c:42
lxb_inline size_t lexbor_array_obj_length(lexbor_array_obj_t *array)
Definition array_obj.h:80
#define LXB_API
Definition def.h:48
#define NULL
Definition gdcache.h:45
LXB_API void * lexbor_calloc(size_t num, size_t size)
Definition memory.c:27
zend_constant * data
LXB_API lexbor_plog_t * lexbor_plog_destroy(lexbor_plog_t *plog, bool self_destroy)
Definition plog.c:32
lxb_inline void lexbor_plog_clean(lexbor_plog_t *plog)
Definition plog.h:47
LXB_API void * lexbor_plog_push_noi(lexbor_plog_t *plog, const lxb_char_t *data, void *ctx, unsigned id)
Definition plog.c:63
LXB_API lxb_status_t lexbor_plog_init(lexbor_plog_t *plog, size_t init_size, size_t struct_size)
Definition plog.c:11
LXB_API void lexbor_plog_clean_noi(lexbor_plog_t *plog)
Definition plog.c:57
lxb_inline size_t lexbor_plog_length(lexbor_plog_t *plog)
Definition plog.h:75
lxb_inline lexbor_plog_t * lexbor_plog_create(void)
Definition plog.h:41
lxb_inline void * lexbor_plog_push(lexbor_plog_t *plog, const lxb_char_t *data, void *ctx, unsigned id)
Definition plog.h:53
LXB_API size_t lexbor_plog_length_noi(lexbor_plog_t *plog)
Definition plog.c:70
LXB_API lexbor_plog_t * lexbor_plog_create_noi(void)
Definition plog.c:51
Definition plog.h:17
void * context
Definition plog.h:19
const lxb_char_t * data
Definition plog.h:18
unsigned id
Definition plog.h:20
lexbor_array_obj_t list
Definition plog.h:25
unsigned int lxb_status_t
Definition types.h:28
#define lxb_inline
Definition types.h:21
unsigned char lxb_char_t
Definition types.h:27