Fix modest_tny_msg_header_get_all_recipients_list (in case from is empty)
[modest] / src / modest-mail-operation-queue.h
index 7a0759e..9f0cd25 100644 (file)
@@ -45,6 +45,11 @@ G_BEGIN_DECLS
 #define MODEST_IS_MAIL_OPERATION_QUEUE_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass),MODEST_TYPE_MAIL_OPERATION_QUEUE))
 #define MODEST_MAIL_OPERATION_QUEUE_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS((obj),MODEST_TYPE_MAIL_OPERATION_QUEUE,ModestMailOperationQueueClass))
 
+typedef enum _ModestMailOperationQueueNotification {
+       MODEST_MAIL_OPERATION_QUEUE_OPERATION_ADDED,
+       MODEST_MAIL_OPERATION_QUEUE_OPERATION_REMOVED
+} ModestMailOperationQueueNotification;
+
 typedef struct _ModestMailOperationQueue      ModestMailOperationQueue;
 typedef struct _ModestMailOperationQueueClass ModestMailOperationQueueClass;
 
@@ -54,8 +59,16 @@ struct _ModestMailOperationQueue {
 
 struct _ModestMailOperationQueueClass {
        GObjectClass parent_class;
+
+       /* Signals */
+       void (*queue_changed) (ModestMailOperationQueue *self, 
+                              ModestMailOperation *mail_op,
+                              ModestMailOperationQueueNotification type);
+
+       void (*queue_empty) (ModestMailOperationQueue *self);
 };
 
+
 /* member functions */
 GType                   modest_mail_operation_queue_get_type      (void) G_GNUC_CONST;
 
@@ -83,6 +96,15 @@ void    modest_mail_operation_queue_add        (ModestMailOperationQueue *op_que
 void    modest_mail_operation_queue_remove     (ModestMailOperationQueue *op_queue, 
                                                ModestMailOperation *mail_op);
 /**
+ * modest_mail_operation_queue_num_elements:
+ * @op_queue:  a #ModestMailOperationQueue
+ * 
+ * Gets the numeber of elements stored in #ModestMailOperationQueue.
+ **/
+guint 
+modest_mail_operation_queue_num_elements (ModestMailOperationQueue *self);
+
+/**
  * modest_mail_operation_queue_cancel:
  * @op_queue:  a #ModestMailOperationQueue
  * @mail_op:  the #ModestMailOperation that will be canceled
@@ -95,11 +117,55 @@ void    modest_mail_operation_queue_cancel     (ModestMailOperationQueue *op_que
 /**
  * modest_mail_operation_queue_cancel_all:
  * @op_queue:  a #ModestMailOperationQueue
- * 
+ *
  * Cancels all the unfinished #ModestMailOperation of the queue
  **/
 void    modest_mail_operation_queue_cancel_all (ModestMailOperationQueue *op_queue);
 
+/**
+ * modest_mail_operation_queue_get_by_source:
+ * @op_queue:  a #ModestMailOperationQueue
+ * @source: the source of the operations
+ *
+ * Returns a list with the #ModestMailOperation that have the given
+ * source. Each #ModestMailOperation is getting a new reference so you
+ * MUST unref it when done
+ **/
+GSList* modest_mail_operation_queue_get_by_source (ModestMailOperationQueue *op_queue, GObject *source);
+
+
+/**
+ * modest_mail_operation_queue_queue_to_string:
+ * @op_queue:  a #ModestMailOperationQueue
+ *
+ * Returns a string representation of the operation queue (for debugging)
+ *
+ * Returns: a newly allocated string, or NULL in case of error
+ **/
+gchar* modest_mail_operation_queue_to_string (ModestMailOperationQueue *self);
+
+/**
+ * modest_mail_operation_queue_set_running_shutdown:
+ * @self: a #ModestMailOperationQueue
+ *
+ * Mark the queue as running the final sync.
+ *
+ */
+void
+modest_mail_operation_queue_set_running_shutdown (ModestMailOperationQueue *self);
+
+/**
+ * modest_mail_operation_queue_running_shutdown:
+ * @self: a #ModestMailOperationQueue
+ *
+ * Is the last operation queued a shutdown operation?
+ *
+ * Returns: a #gboolean, %TRUE if the last queued operation is
+ * a shutdown, %FALSE otherwise
+ */
+gboolean
+modest_mail_operation_queue_running_shutdown (ModestMailOperationQueue *self);
+
 G_END_DECLS
 
 #endif /* __MODEST_MAIL_OPERATION_QUEUE_H__ */