diff options
Diffstat (limited to 'libcnary/include/node_iterator.h')
-rw-r--r-- | libcnary/include/node_iterator.h | 39 |
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 @@ +/* + * node_iterator.h + * + * Created on: Mar 8, 2011 + * Author: posixninja + */ + +#ifndef NODE_ITERATOR_H_ +#define NODE_ITERATOR_H_ + +#include "iterator.h" +#include "node_list.h" + +// This class implements the abstract iterator class +typedef struct node_iterator_t { + // Super class + struct iterator_t super; + + // Local members + struct node_t*(*next)(struct node_iterator_t* iterator); + int(*bind)(struct node_iterator_t* iterator, struct node_list_t* list); + + unsigned int count; + unsigned int position; + + struct node_list_t* list; + struct node_t* end; + struct node_t* begin; + struct node_t* value; + +} node_iterator_t; + +void node_iterator_destroy(node_iterator_t* iterator); +node_iterator_t* node_iterator_create(node_list_t* list); + +struct node_t* node_iterator_next(struct node_iterator_t* iterator); +int node_iterator_bind(struct node_iterator_t* iterator, struct node_list_t* list); + +#endif /* NODE_ITERATOR_H_ */ |