summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDebarshi Ray <debarshir@freedesktop.org>2012-07-11 18:51:03 +0200
committerDebarshi Ray <debarshir@freedesktop.org>2012-08-28 19:37:56 +0200
commit181aba719cde7154248fb6028d65f4236486233b (patch)
tree44b64b449db4f4122a0c8938cb1dd6c2b388e642
parente2283df2fe5e894067edc5dcbe5207c6ad365d06 (diff)
downloadtelepathy-logger-181aba719cde7154248fb6028d65f4236486233b.tar.gz
log-iter: Add a rewind pure virtual method
Fixes: https://bugs.freedesktop.org/41772
-rw-r--r--telepathy-logger/log-iter-internal.h5
-rw-r--r--telepathy-logger/log-iter.c18
2 files changed, 23 insertions, 0 deletions
diff --git a/telepathy-logger/log-iter-internal.h b/telepathy-logger/log-iter-internal.h
index 080f90c..ec5589f 100644
--- a/telepathy-logger/log-iter-internal.h
+++ b/telepathy-logger/log-iter-internal.h
@@ -61,6 +61,7 @@ struct _TplLogIterClass
GObjectClass parent_class;
GList * (*get_events) (TplLogIter *self, guint num_events, GError **error);
+ void (*rewind) (TplLogIter *self, guint num_events, GError **error);
};
GType tpl_log_iter_get_type (void) G_GNUC_CONST;
@@ -69,6 +70,10 @@ GList *tpl_log_iter_get_events (TplLogIter *self,
guint num_events,
GError **error);
+void tpl_log_iter_rewind (TplLogIter *self,
+ guint num_events,
+ GError **error);
+
G_END_DECLS
#endif /* __TPL_LOG_ITER_H__ */
diff --git a/telepathy-logger/log-iter.c b/telepathy-logger/log-iter.c
index 27ed26c..5ad1f53 100644
--- a/telepathy-logger/log-iter.c
+++ b/telepathy-logger/log-iter.c
@@ -71,3 +71,21 @@ tpl_log_iter_get_events (TplLogIter *self,
return log_iter_class->get_events (self, num_events, error);
}
+
+
+void
+tpl_log_iter_rewind (TplLogIter *self,
+ guint num_events,
+ GError **error)
+{
+ TplLogIterClass *log_iter_class;
+
+ g_return_if_fail (TPL_IS_LOG_ITER (self));
+
+ log_iter_class = TPL_LOG_ITER_GET_CLASS (self);
+
+ if (log_iter_class->rewind == NULL)
+ return;
+
+ log_iter_class->rewind (self, num_events, error);
+}