* enable getting debug information over dbus; for now
[modest] / src / modest-mail-operation-queue.c
index 02b1f1a..f00e992 100644 (file)
@@ -441,3 +441,34 @@ modest_mail_operation_queue_get_by_source (
        
        return found_operations;
 }
+
+static void
+accumulate_mail_op_strings (ModestMailOperation *op, gchar **str)
+{
+       *str = g_strdup_printf ("%s\n%s", *str, modest_mail_operation_to_string (op));
+}
+
+
+gchar*
+modest_mail_operation_queue_to_string (ModestMailOperationQueue *self)
+{
+       gchar *str;
+       guint len;
+       ModestMailOperationQueuePrivate *priv;
+       
+       g_return_val_if_fail (MODEST_IS_MAIL_OPERATION_QUEUE (self), NULL);
+       
+       priv = MODEST_MAIL_OPERATION_QUEUE_GET_PRIVATE(self);
+
+       len = g_queue_get_length (priv->op_queue);
+       str = g_strdup_printf ("mail operation queue (%02d)\n-------------------------", len);
+       if (len == 0)
+               str = g_strdup_printf ("%s\n%s", str, "<empty>");
+       else {
+               g_mutex_lock (priv->queue_lock);
+               g_queue_foreach (priv->op_queue, (GFunc)accumulate_mail_op_strings, &str);
+               g_mutex_unlock (priv->queue_lock);
+       }
+               
+       return str;
+}