php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
collection.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2018 Alexander Borisov
3 *
4 * Author: Alexander Borisov <borisov@lexbor.com>
5 */
6
7#ifndef LEXBOR_DOM_COLLECTION_H
8#define LEXBOR_DOM_COLLECTION_H
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14#include "lexbor/core/base.h"
15#include "lexbor/core/array.h"
16
18
19
25
26
29
31lxb_dom_collection_init(lxb_dom_collection_t *col, size_t start_list_size);
32
35
36
37/*
38 * Inline functions
39 */
41lxb_dom_collection_make(lxb_dom_document_t *document, size_t start_list_size)
42{
45
46 col = lxb_dom_collection_create(document);
47 status = lxb_dom_collection_init(col, start_list_size);
48
49 if(status != LXB_STATUS_OK) {
50 return lxb_dom_collection_destroy(col, true);
51 }
52
53 return col;
54}
55
56lxb_inline void
61
67
70{
71 return (lxb_dom_element_t *) lexbor_array_get(&col->array, idx);
72}
73
76{
77 return (lxb_dom_node_t *) lexbor_array_get(&col->array, idx);
78}
79
80lxb_inline size_t
85
86/*
87 * No inline functions for ABI.
88 */
90lxb_dom_collection_make_noi(lxb_dom_document_t *document, size_t start_list_size);
91
92LXB_API void
94
97
100
103
104LXB_API size_t
106
107
108#ifdef __cplusplus
109} /* extern "C" */
110#endif
111
112#endif /* LEXBOR_DOM_COLLECTION_H */
lxb_inline void * lexbor_array_get(lexbor_array_t *array, size_t idx)
Definition array.h:62
lxb_inline size_t lexbor_array_length(lexbor_array_t *array)
Definition array.h:72
LXB_API lxb_dom_node_t * lxb_dom_collection_node_noi(lxb_dom_collection_t *col, size_t idx)
Definition collection.c:88
lxb_inline lxb_dom_collection_t * lxb_dom_collection_make(lxb_dom_document_t *document, size_t start_list_size)
Definition collection.h:41
LXB_API lxb_status_t lxb_dom_collection_append_noi(lxb_dom_collection_t *col, void *value)
Definition collection.c:76
LXB_API lxb_status_t lxb_dom_collection_init(lxb_dom_collection_t *col, size_t start_list_size)
Definition collection.c:27
lxb_inline lxb_status_t lxb_dom_collection_append(lxb_dom_collection_t *col, void *value)
Definition collection.h:63
lxb_inline size_t lxb_dom_collection_length(lxb_dom_collection_t *col)
Definition collection.h:81
LXB_API lxb_dom_collection_t * lxb_dom_collection_destroy(lxb_dom_collection_t *col, bool self_destroy)
Definition collection.c:41
LXB_API lxb_dom_collection_t * lxb_dom_collection_create(lxb_dom_document_t *document)
Definition collection.c:12
LXB_API lxb_dom_collection_t * lxb_dom_collection_make_noi(lxb_dom_document_t *document, size_t start_list_size)
Definition collection.c:64
LXB_API lxb_dom_element_t * lxb_dom_collection_element_noi(lxb_dom_collection_t *col, size_t idx)
Definition collection.c:82
lxb_inline void lxb_dom_collection_clean(lxb_dom_collection_t *col)
Definition collection.h:57
lxb_inline lxb_dom_node_t * lxb_dom_collection_node(lxb_dom_collection_t *col, size_t idx)
Definition collection.h:75
LXB_API void lxb_dom_collection_clean_noi(lxb_dom_collection_t *col)
Definition collection.c:70
lxb_inline lxb_dom_element_t * lxb_dom_collection_element(lxb_dom_collection_t *col, size_t idx)
Definition collection.h:69
LXB_API size_t lxb_dom_collection_length_noi(lxb_dom_collection_t *col)
Definition collection.c:94
@ LXB_STATUS_OK
Definition base.h:49
#define LXB_API
Definition def.h:48
DNS_STATUS status
Definition dns_win32.c:49
struct lxb_dom_document lxb_dom_document_t
Definition interface.h:41
struct lxb_dom_node lxb_dom_node_t
Definition interface.h:38
struct lxb_dom_element lxb_dom_element_t
Definition interface.h:39
void lexbor_array_clean(lexbor_array_t *array)
Definition array.c:39
lxb_status_t lexbor_array_push(lexbor_array_t *array, void *value)
Definition array.c:87
lxb_dom_document_t * document
Definition collection.h:22
lexbor_array_t array
Definition collection.h:21
unsigned int lxb_status_t
Definition types.h:28
#define lxb_inline
Definition types.h:21
value