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 @@
+/*
+ * iterator.h
+ *
+ * Created on: Mar 8, 2011
+ * Author: posixninja
+ */
+
+#ifndef ITERATOR_H_
+#define ITERATOR_H_
+
+struct list_t;
+struct object_t;
+
+typedef struct iterator_t {
+ struct object_t*(*next)(struct iterator_t* iterator);
+ int(*bind)(struct iterator_t* iterator, struct list_t* list);
+
+ unsigned int count;
+ unsigned int position;
+
+ struct list_t* list;
+ struct object_t* end;
+ struct object_t* begin;
+ struct object_t* value;
+} iterator_t;
+
+void iterator_destroy(struct iterator_t* iterator);
+struct iterator_t* iterator_create(struct list_t* list);
+
+struct object_t* iterator_next(struct iterator_t* iterator);
+int iterator_bind(struct iterator_t* iterator, struct list_t* list);
+
+#endif /* ITERATOR_H_ */