X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-mail-operation-queue.h;h=9f0cd253831a3a5d65177f84270996a59c7b8427;hp=7a0759ea696ef30332b629da8c077b003128bc18;hb=ecd414d0a70e162f5c5feea60c735db7c44b457b;hpb=b43518714ee9ac0b6fdd0ab7d08f2c1de67846f5 diff --git a/src/modest-mail-operation-queue.h b/src/modest-mail-operation-queue.h index 7a0759e..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,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__ */