Libical API Documentation 4.0 UNRELEASED Go to the stable 3.0 documentation
Loading...
Searching...
No Matches
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
14
15#ifndef ICALARRAY_H
16#define ICALARRAY_H
17
18#include "libical_ical_export.h"
19
20#include <stddef.h>
21
26typedef struct _icalarray icalarray;
27struct _icalarray {
28 size_t element_size;
29 size_t increment_size;
30 size_t num_elements;
31 size_t space_allocated;
32 void **chunks;
33};
34
73LIBICAL_ICAL_EXPORT icalarray *icalarray_new(size_t element_size, size_t increment_size);
74
111LIBICAL_ICAL_EXPORT icalarray *icalarray_copy(const icalarray *array);
112
126LIBICAL_ICAL_EXPORT void icalarray_free(icalarray *array);
127
157LIBICAL_ICAL_EXPORT void icalarray_append(icalarray *array, const void *element);
158
205LIBICAL_ICAL_EXPORT void icalarray_remove_element_at(icalarray *array, size_t position);
206
247LIBICAL_ICAL_EXPORT void *icalarray_element_at(icalarray *array, size_t position);
248
270LIBICAL_ICAL_EXPORT void icalarray_set_element_at(icalarray *array, const void *element, size_t position);
271
309LIBICAL_ICAL_EXPORT void icalarray_sort(icalarray *array,
310 int (*compare)(const void *, const void *));
311
312#endif /* ICALARRAY_H */
struct _icalarray icalarray
A struct representing an icalarray object.
Definition icalarray.h:26
icalarray * icalarray_copy(const icalarray *array)
Copies an existing icalarray and its elements, creating a new one.
Definition icalarray.c:60
void * icalarray_element_at(icalarray *array, size_t position)
Access an array element.
Definition icalarray.c:126
void icalarray_free(icalarray *array)
Frees an array object and everything that it contains.
Definition icalarray.c:95
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:173
void icalarray_append(icalarray *array, const void *element)
Appends an element to an array.
Definition icalarray.c:110
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:134
icalarray * icalarray_new(size_t element_size, size_t increment_size)
Creates a new icalarray object.
Definition icalarray.c:27
void icalarray_remove_element_at(icalarray *array, size_t position)
Removes a given element from an array.
Definition icalarray.c:139
Definition icalarray.h:27