blob: 40deac61f4b473cc2259547f3c176a701356f1c5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
/* http://www.martinbroadhurst.com/dynamic-array-in-c.html */
#ifndef VIV_DYNAMIC_ARRAY_H
#define VIV_DYNAMIC_ARRAY_H
#pragma once
typedef struct {
void **buffer;
unsigned int size;
unsigned int count;
} VIV_DYNAMIC_ARRAY_dynamic_array;
typedef void (*VIV_DYNAMIC_ARRAY_for_function)(void *);
VIV_DYNAMIC_ARRAY_dynamic_array *VIV_DYNAMIC_ARRAY_create(unsigned int);
void VIV_DYNAMIC_ARRAY_empty(VIV_DYNAMIC_ARRAY_dynamic_array *);
void VIV_DYNAMIC_ARRAY_delete(VIV_DYNAMIC_ARRAY_dynamic_array *);
void VIV_DYNAMIC_ARRAY_add_tail(VIV_DYNAMIC_ARRAY_dynamic_array *, void *);
void VIV_DYNAMIC_ARRAY_add_head(VIV_DYNAMIC_ARRAY_dynamic_array *, void *);
void *VIV_DYNAMIC_ARRAY_remove_tail(VIV_DYNAMIC_ARRAY_dynamic_array *);
void *VIV_DYNAMIC_ARRAY_remove_head(VIV_DYNAMIC_ARRAY_dynamic_array *);
void VIV_DYNAMIC_ARRAY_insert(VIV_DYNAMIC_ARRAY_dynamic_array *, unsigned int, void *);
void *VIV_DYNAMIC_ARRAY_remove(VIV_DYNAMIC_ARRAY_dynamic_array *, unsigned int);
void *VIV_DYNAMIC_ARRAY_get(const VIV_DYNAMIC_ARRAY_dynamic_array *, unsigned int);
void *VIV_DYNAMIC_ARRAY_set(VIV_DYNAMIC_ARRAY_dynamic_array *, unsigned int, void *);
void VIV_DYNAMIC_ARRAY_for_each(
const VIV_DYNAMIC_ARRAY_dynamic_array *,
VIV_DYNAMIC_ARRAY_for_function
);
unsigned int VIV_DYNAMIC_ARRAY_get_count(const VIV_DYNAMIC_ARRAY_dynamic_array *);
void VIV_DYNAMIC_ARRAY_set_size(VIV_DYNAMIC_ARRAY_dynamic_array *, unsigned int);
#endif /* VIV_DYNAMIC_ARRAY_H */
|