php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
plog.c
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#include "lexbor/core/plog.h"
8
9
11lexbor_plog_init(lexbor_plog_t *plog, size_t init_size, size_t struct_size)
12{
14
15 if (plog == NULL) {
17 }
18
19 if (struct_size < sizeof(lexbor_plog_entry_t)) {
20 struct_size = sizeof(lexbor_plog_entry_t);
21 }
22
23 status = lexbor_array_obj_init(&plog->list, init_size, struct_size);
24 if (status != LXB_STATUS_OK) {
25 return status;
26 }
27
28 return LXB_STATUS_OK;
29}
30
32lexbor_plog_destroy(lexbor_plog_t *plog, bool self_destroy)
33{
34 if (plog == NULL) {
35 return NULL;
36 }
37
38 lexbor_array_obj_destroy(&plog->list, false);
39
40 if (self_destroy) {
41 return lexbor_free(plog);
42 }
43
44 return plog;
45}
46
47/*
48 * No inline functions.
49 */
52{
53 return lexbor_plog_create();
54}
55
56void
61
62void *
64 unsigned id)
65{
66 return lexbor_plog_push(plog, data, ctx, id);
67}
68
69size_t
lxb_status_t lexbor_array_obj_init(lexbor_array_obj_t *array, size_t size, size_t struct_size)
Definition array_obj.c:17
lexbor_array_obj_t * lexbor_array_obj_destroy(lexbor_array_obj_t *array, bool self_destroy)
Definition array_obj.c:50
@ LXB_STATUS_ERROR_OBJECT_IS_NULL
Definition base.h:52
@ LXB_STATUS_OK
Definition base.h:49
DNS_STATUS status
Definition dns_win32.c:49
#define NULL
Definition gdcache.h:45
LXB_API void * lexbor_free(void *dst)
Definition memory.c:33
zend_constant * data
lexbor_plog_t * lexbor_plog_create_noi(void)
Definition plog.c:51
void lexbor_plog_clean_noi(lexbor_plog_t *plog)
Definition plog.c:57
void * lexbor_plog_push_noi(lexbor_plog_t *plog, const lxb_char_t *data, void *ctx, unsigned id)
Definition plog.c:63
size_t lexbor_plog_length_noi(lexbor_plog_t *plog)
Definition plog.c:70
lxb_status_t lexbor_plog_init(lexbor_plog_t *plog, size_t init_size, size_t struct_size)
Definition plog.c:11
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_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
Definition plog.h:17
lexbor_array_obj_t list
Definition plog.h:25
unsigned int lxb_status_t
Definition types.h:28
unsigned char lxb_char_t
Definition types.h:27