validate-reporter: Add some methods
authorMathieu Duponchelle <mathieu.duponchelle@collabora.com>
Wed, 1 Oct 2014 16:28:33 +0000 (18:28 +0200)
committerMathieu Duponchelle <mathieu.duponchelle@opencreed.com>
Tue, 21 Oct 2014 18:13:51 +0000 (20:13 +0200)
+ gst_validate_reporter_get_reports
+ gst_validate_reporter_get_reports_count

validate/gst/validate/gst-validate-reporter.c
validate/gst/validate/gst-validate-reporter.h

index 5858075..eedbaef 100644 (file)
@@ -275,3 +275,56 @@ gst_validate_reporter_set_handle_g_logs (GstValidateReporter * reporter)
 
   g_log_handler = gst_validate_reporter_get_priv (reporter);
 }
+
+/**
+ * gst_validate_reporter_get_reports:
+ * @reporter: a #GstValidateReporter
+ *
+ * Get the list of reports present in the reporter.
+ *
+ * Returns: (transfer full) (element-type GstValidateReport): the list of
+ * #GstValidateReport present in the reporter.
+ * The caller should unref each report once it is done with them.
+ */
+GList *
+gst_validate_reporter_get_reports (GstValidateReporter *reporter)
+{
+  GstValidateReporterPrivate *priv;
+  GList *reports, *tmp;
+  GList *ret = NULL;
+
+  priv = g_object_get_data (G_OBJECT (reporter), REPORTER_PRIVATE);
+
+  GST_VALIDATE_REPORTER_REPORTS_LOCK (reporter);
+  reports = g_hash_table_get_values (priv->reports);
+  for (tmp = reports; tmp; tmp = tmp->next) {
+    ret = g_list_append (ret, gst_validate_report_ref ((GstValidateReport *) (tmp->data)));
+  }
+  g_list_free (reports);
+  GST_VALIDATE_REPORTER_REPORTS_UNLOCK (reporter);
+
+  return ret;
+}
+
+/**
+ * gst_validate_reporter_get_reports_count:
+ * @reporter: a #GstValidateReporter
+ *
+ * Get the number of reports present in the reporter.
+ *
+ * Returns: the number of reports currently present in @reporter.
+ */
+gint
+gst_validate_reporter_get_reports_count (GstValidateReporter *reporter)
+{
+  GstValidateReporterPrivate *priv;
+  gint ret;
+
+  priv = g_object_get_data (G_OBJECT (reporter), REPORTER_PRIVATE);
+
+  GST_VALIDATE_REPORTER_REPORTS_LOCK (reporter);
+  ret = g_hash_table_size (priv->reports);
+  GST_VALIDATE_REPORTER_REPORTS_UNLOCK (reporter);
+
+  return ret;
+}
index b6ad4cd..71686cc 100644 (file)
@@ -96,6 +96,8 @@ void gst_validate_reporter_set_runner          (GstValidateReporter * reporter,
 void gst_validate_reporter_set_handle_g_logs   (GstValidateReporter * reporter);
 GstValidateReport * gst_validate_reporter_get_report (GstValidateReporter *reporter,
                                                       GstValidateIssueId issue_id);
+GList * gst_validate_reporter_get_reports (GstValidateReporter * reporter);
+gint gst_validate_reporter_get_reports_count (GstValidateReporter *reporter);
 
 G_END_DECLS
 #endif /* _GST_VALIDATE_REPORTER_ */