summaryrefslogtreecommitdiffstats
path: root/libcnary/include/iterator.h
diff options
context:
space:
mode:
Diffstat (limited to 'libcnary/include/iterator.h')
-rw-r--r--libcnary/include/iterator.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/libcnary/include/iterator.h b/libcnary/include/iterator.h
new file mode 100644
index 0000000..debc1c5
--- /dev/null
+++ b/libcnary/include/iterator.h
@@ -0,0 +1,33 @@
1/*
2 * iterator.h
3 *
4 * Created on: Mar 8, 2011
5 * Author: posixninja
6 */
7
8#ifndef ITERATOR_H_
9#define ITERATOR_H_
10
11struct list_t;
12struct object_t;
13
14typedef struct iterator_t {
15 struct object_t*(*next)(struct iterator_t* iterator);
16 int(*bind)(struct iterator_t* iterator, struct list_t* list);
17
18 unsigned int count;
19 unsigned int position;
20
21 struct list_t* list;
22 struct object_t* end;
23 struct object_t* begin;
24 struct object_t* value;
25} iterator_t;
26
27void iterator_destroy(struct iterator_t* iterator);
28struct iterator_t* iterator_create(struct list_t* list);
29
30struct object_t* iterator_next(struct iterator_t* iterator);
31int iterator_bind(struct iterator_t* iterator, struct list_t* list);
32
33#endif /* ITERATOR_H_ */