X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-mail-operation-queue.h;h=9f0cd253831a3a5d65177f84270996a59c7b8427;hp=54972df5f08f2fad3a6c02f2c0f28ee2746ca0c6;hb=12a672c559d983c4e49a7e4054ee14c0177ecb1c;hpb=3084439a659fa9aec750337f94cad4bca0c92898 diff --git a/src/modest-mail-operation-queue.h b/src/modest-mail-operation-queue.h index 54972df..9f0cd25 100644 --- a/src/modest-mail-operation-queue.h +++ b/src/modest-mail-operation-queue.h @@ -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,24 +59,113 @@ 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; -ModestMailOperationQueue * modest_mail_operation_queue_get_instance (void); +ModestMailOperationQueue * modest_mail_operation_queue_new (void); +/** + * modest_mail_operation_queue_add: + * @op_queue: a #ModestMailOperationQueue + * @mail_op: the #ModestMailOperation that will be added to the queue + * + * Adds a mail operation at the end of the queue. It also adds a + * reference to the mail operation so the caller could free it + **/ void modest_mail_operation_queue_add (ModestMailOperationQueue *op_queue, ModestMailOperation *mail_op); +/** + * modest_mail_operation_queue_remove: + * @op_queue: a #ModestMailOperationQueue + * @mail_op: the #ModestMailOperation that will be removed from the queue + * + * Removes a mail operation from the queue. This method does not free + * the mail operation + **/ 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 + * + * Cancels a #ModestMailOperation if it's not finished and removes it + * from the queue + **/ void modest_mail_operation_queue_cancel (ModestMailOperationQueue *op_queue, ModestMailOperation *mail_op); - +/** + * 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__ */