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
15
16#ifndef ICALARRAY_H
17#define ICALARRAY_H
18
19#include "libical_ical_export.h"
20
21#include <stddef.h>
22
24
27typedef struct _icalarray icalarray;
28struct _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
76LIBICAL_ICAL_EXPORT icalarray *icalarray_new(size_t element_size, size_t increment_size);
77
115LIBICAL_ICAL_EXPORT icalarray *icalarray_copy(const icalarray *array);
116
131LIBICAL_ICAL_EXPORT void icalarray_free(icalarray *array);
132
162LIBICAL_ICAL_EXPORT void icalarray_append(icalarray *array, const void *element);
163
210LIBICAL_ICAL_EXPORT void icalarray_remove_element_at(icalarray *array, size_t position);
211
252LIBICAL_ICAL_EXPORT void *icalarray_element_at(icalarray *array, size_t position);
253
275LIBICAL_ICAL_EXPORT void icalarray_set_element_at(icalarray *array, const void *element, size_t position);
276
314LIBICAL_ICAL_EXPORT void icalarray_sort(icalarray *array,
315 int (*compare)(const void *, const void *));
316
317#endif /* ICALARRAY_H */
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_free(icalarray *array)
Definition icalarray.c:104
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_append(icalarray *array, const void *element)
Appends an element to an array.
Definition icalarray.c:119
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
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