diff options
Diffstat (limited to 'libcnary/include/iterator.h')
| -rw-r--r-- | libcnary/include/iterator.h | 33 | 
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_ */ | 
