+
+gboolean
+modest_tny_send_queue_msg_is_being_sent (ModestTnySendQueue* self,
+ const gchar *msg_id)
+{
+ ModestTnySendQueuePrivate *priv;
+
+ g_return_val_if_fail (msg_id != NULL, FALSE);
+ priv = MODEST_TNY_SEND_QUEUE_GET_PRIVATE (self);
+
+ if (modest_tny_send_queue_sending_in_progress(self))
+ return g_ascii_strcasecmp(priv->current_msg_id, msg_id);
+ else
+ return FALSE;
+}
+
+gboolean
+modest_tny_send_queue_sending_in_progress (ModestTnySendQueue* self)
+{
+ ModestTnySendQueuePrivate *priv;
+
+ priv = MODEST_TNY_SEND_QUEUE_GET_PRIVATE (self);
+
+ return priv->current_msg_id != NULL;
+}
+
+
+static void
+_on_msg_start_sending (TnySendQueue *self,
+ TnyMsg *msg,
+ guint processed,
+ guint total)
+{
+ ModestTnySendQueuePrivate *priv;
+ TnyHeader *header = NULL;
+
+ priv = MODEST_TNY_SEND_QUEUE_GET_PRIVATE (self);
+
+ /* Delete previous msg_id */
+ if (priv->current_msg_id != NULL)
+ g_free(priv->current_msg_id);
+
+ /* Set current msg_id */
+ header = tny_msg_get_header(msg);
+ priv->current_msg_id = g_strdup(tny_header_get_message_id (header));
+}
+
+static void
+_on_msg_has_been_sent (TnySendQueue *self,
+ TnyMsg *msg,
+ guint processed,
+ guint total)
+{
+ ModestTnySendQueuePrivate *priv;
+
+ priv = MODEST_TNY_SEND_QUEUE_GET_PRIVATE (self);
+
+ /* Delete previous msg_id */
+ if (priv->current_msg_id != NULL)
+ g_free(priv->current_msg_id);
+
+ /* Unset current msg_id */
+ priv->current_msg_id = NULL;
+}