summaryrefslogtreecommitdiffstats
path: root/libcnary/include/node_iterator.h
diff options
context:
space:
mode:
Diffstat (limited to 'libcnary/include/node_iterator.h')
-rw-r--r--libcnary/include/node_iterator.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/libcnary/include/node_iterator.h b/libcnary/include/node_iterator.h
new file mode 100644
index 0000000..8f39ceb
--- /dev/null
+++ b/libcnary/include/node_iterator.h
@@ -0,0 +1,39 @@
1/*
2 * node_iterator.h
3 *
4 * Created on: Mar 8, 2011
5 * Author: posixninja
6 */
7
8#ifndef NODE_ITERATOR_H_
9#define NODE_ITERATOR_H_
10
11#include "iterator.h"
12#include "node_list.h"
13
14// This class implements the abstract iterator class
15typedef struct node_iterator_t {
16 // Super class
17 struct iterator_t super;
18
19 // Local members
20 struct node_t*(*next)(struct node_iterator_t* iterator);
21 int(*bind)(struct node_iterator_t* iterator, struct node_list_t* list);
22
23 unsigned int count;
24 unsigned int position;
25
26 struct node_list_t* list;
27 struct node_t* end;
28 struct node_t* begin;
29 struct node_t* value;
30
31} node_iterator_t;
32
33void node_iterator_destroy(node_iterator_t* iterator);
34node_iterator_t* node_iterator_create(node_list_t* list);
35
36struct node_t* node_iterator_next(struct node_iterator_t* iterator);
37int node_iterator_bind(struct node_iterator_t* iterator, struct node_list_t* list);
38
39#endif /* NODE_ITERATOR_H_ */