Work to fix bug NB#81989:
[modest] / src / modest-mail-operation.h
index 46990ad..f646929 100644 (file)
@@ -33,6 +33,7 @@
 #include <tny-transport-account.h>
 #include <tny-folder-store.h>
 #include <widgets/modest-msg-edit-window.h>
+#include <modest-tny-send-queue.h>
 
 G_BEGIN_DECLS
 
@@ -69,9 +70,12 @@ typedef enum _ModestMailOperationStatus {
 typedef enum {
        MODEST_MAIL_OPERATION_TYPE_SEND,
        MODEST_MAIL_OPERATION_TYPE_RECEIVE,
+       MODEST_MAIL_OPERATION_TYPE_SEND_AND_RECEIVE,
        MODEST_MAIL_OPERATION_TYPE_OPEN,
        MODEST_MAIL_OPERATION_TYPE_DELETE,
        MODEST_MAIL_OPERATION_TYPE_INFO,
+       MODEST_MAIL_OPERATION_TYPE_RUN_QUEUE,
+       MODEST_MAIL_OPERATION_TYPE_SYNC_FOLDER,
        MODEST_MAIL_OPERATION_TYPE_UNKNOWN,
 } ModestMailOperationTypeOperation;
 
@@ -420,6 +424,7 @@ void modest_mail_operation_save_to_drafts   (ModestMailOperation *self,
  * @self: a #ModestMailOperation
  * @account_name: the id of a Modest account
  * @poke_all: if TRUE it will also do a poke_status over all folders of the account
+ * @interactive: if TRUE the update account was scheduled by an interactive send receive
  * 
  * Asynchronously refreshes the root folders of the given store
  * account. The caller should add the #ModestMailOperation to a
@@ -444,6 +449,7 @@ void modest_mail_operation_save_to_drafts   (ModestMailOperation *self,
 void          modest_mail_operation_update_account (ModestMailOperation *self,
                                                    const gchar *account_name,
                                                    gboolean poke_all,
+                                                   gboolean interactive,
                                                    RetrieveAllCallback retrieve_all_cb,
                                                    UpdateAccountCallback callback,
                                                    gpointer user_data);
@@ -629,6 +635,31 @@ void          modest_mail_operation_get_msgs_full   (ModestMailOperation *self,
                                                     gpointer user_data,
                                                     GDestroyNotify notify);
 
+/**
+ * modest_mail_operation_run_queue:
+ * @self: a #ModestMailOperation
+ * @queue: a #ModestTnySendQueue
+ *
+ * This mail operation is special. It should be running every time the send queue
+ * is running (after queue-start), and we should notify end of the operation
+ * after queue-end. Then, we should only set this queue on queue-start signal, and
+ * it will clean up the operation (notify end) on queue-end.
+ */
+void          modest_mail_operation_run_queue       (ModestMailOperation *self,
+                                                    ModestTnySendQueue *queue);
+
+/**
+ * modest_mail_operation_sync_folder:
+ * @self: a #ModestMailOperation
+ * @folder: a #TnyFolder
+ * @expunge: a #gboolean
+ *
+ * mail operation wrapper around tny_folder_sync () method, to keep modest
+ * running while we do that sync operation.
+ */
+void          modest_mail_operation_sync_folder     (ModestMailOperation *self,
+                                                    TnyFolder *folder, gboolean expunge);
+
 /* Functions to control mail operations */
 /**
  * modest_mail_operation_get_task_done: