$darkmode
Libical API Documentation 4.0 STABLE VERSION Visit the v3.0 documentation
icalarray.h
Go to the documentation of this file.
1 /*======================================================================
2  FILE: icalarray.h
3  CREATOR: Damon Chaplin 07 March 2001
4 
5  SPDX-FileCopyrightText: 2001, Ximian, Inc.
6  SPDX-License-Identifier: LGPL-2.1-only OR MPL-2.0
7 ======================================================================*/
8 
16 #ifndef ICALARRAY_H
17 #define ICALARRAY_H
18 
19 #include "libical_ical_export.h"
20 
21 #include <stddef.h>
22 
24 
27 typedef struct _icalarray icalarray;
28 struct _icalarray {
29  size_t element_size;
30  size_t increment_size;
31  size_t num_elements;
32  size_t space_allocated;
33  void **chunks;
34 };
36 
76 LIBICAL_ICAL_EXPORT icalarray *icalarray_new(size_t element_size, size_t increment_size);
77 
115 LIBICAL_ICAL_EXPORT icalarray *icalarray_copy(const icalarray *array);
116 
131 LIBICAL_ICAL_EXPORT void icalarray_free(icalarray *array);
132 
162 LIBICAL_ICAL_EXPORT void icalarray_append(icalarray *array, const void *element);
163 
210 LIBICAL_ICAL_EXPORT void icalarray_remove_element_at(icalarray *array, size_t position);
211 
252 LIBICAL_ICAL_EXPORT void *icalarray_element_at(icalarray *array, size_t position);
253 
275 LIBICAL_ICAL_EXPORT void icalarray_set_element_at(icalarray *array, const void *element, size_t position);
276 
314 LIBICAL_ICAL_EXPORT void icalarray_sort(icalarray *array,
315  int (*compare)(const void *, const void *));
316 
317 #endif /* ICALARRAY_H */
void icalarray_append(icalarray *array, const void *element)
Appends an element to an array.
Definition: icalarray.c:119
icalarray * icalarray_copy(const icalarray *array)
Definition: icalarray.c:69
void * icalarray_element_at(icalarray *array, size_t position)
Access an array element.
Definition: icalarray.c:135
void icalarray_sort(icalarray *array, int(*compare)(const void *, const void *))
Sorts the elements of an icalarray using the given comparison function.
Definition: icalarray.c:182
void icalarray_free(icalarray *array)
Definition: icalarray.c:104
icalarray * icalarray_new(size_t element_size, size_t increment_size)
Definition: icalarray.c:36
void icalarray_remove_element_at(icalarray *array, size_t position)
Removes a given element from an array.
Definition: icalarray.c:148
void icalarray_set_element_at(icalarray *array, const void *element, size_t position)
Overwrites an existing element in an array with a new value.
Definition: icalarray.c:143