aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-iterator.c
diff options
context:
space:
mode:
Diffstat (limited to 'e-util/e-iterator.c')
-rw-r--r--e-util/e-iterator.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/e-util/e-iterator.c b/e-util/e-iterator.c
index cff6fec946..874d05ccea 100644
--- a/e-util/e-iterator.c
+++ b/e-util/e-iterator.c
@@ -82,9 +82,11 @@ e_iterator_class_init (EIteratorClass *klass)
klass->invalidate = NULL;
klass->get = NULL;
klass->reset = NULL;
+ klass->last = NULL;
klass->next = NULL;
klass->prev = NULL;
klass->delete = NULL;
+ klass->insert = NULL;
klass->set = NULL;
klass->is_valid = NULL;
}
@@ -116,6 +118,13 @@ e_iterator_reset (EIterator *iterator)
ECI_CLASS(iterator)->reset(iterator);
}
+void
+e_iterator_last (EIterator *iterator)
+{
+ if (ECI_CLASS(iterator)->last)
+ ECI_CLASS(iterator)->last(iterator);
+}
+
gboolean
e_iterator_next (EIterator *iterator)
{
@@ -141,6 +150,14 @@ e_iterator_delete (EIterator *iterator)
ECI_CLASS(iterator)->delete(iterator);
}
+void e_iterator_insert (EIterator *iterator,
+ const void *object,
+ gboolean before)
+{
+ if (ECI_CLASS(iterator)->insert)
+ ECI_CLASS(iterator)->insert(iterator, object, before);
+}
+
void
e_iterator_set (EIterator *iterator,
const void *object)