X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-tny-send-queue.h;h=51e1fef5d4877bae5a9f8207c08c1ddcdee1ff65;hp=41ecdfc90fff348771b6ca35cfdbcea697aec551;hb=4d39841513a3a7f7aa9d38ab97cb9fcc9171e80b;hpb=40cd7daf81df8f225032bfabc792349954d2a12a diff --git a/src/modest-tny-send-queue.h b/src/modest-tny-send-queue.h index 41ecdfc..51e1fef 100644 --- a/src/modest-tny-send-queue.h +++ b/src/modest-tny-send-queue.h @@ -50,12 +50,23 @@ G_BEGIN_DECLS typedef struct _ModestTnySendQueue ModestTnySendQueue; typedef struct _ModestTnySendQueueClass ModestTnySendQueueClass; +typedef enum { + MODEST_TNY_SEND_QUEUE_UNKNOWN, + MODEST_TNY_SEND_QUEUE_WAITING, + MODEST_TNY_SEND_QUEUE_SUSPENDED, + MODEST_TNY_SEND_QUEUE_SENDING, + MODEST_TNY_SEND_QUEUE_FAILED +} ModestTnySendQueueStatus; + struct _ModestTnySendQueue { TnyCamelSendQueue parent; }; struct _ModestTnySendQueueClass { TnyCamelSendQueueClass parent_class; + + /* Signals */ + void (*status_changed)(ModestTnySendQueue *self, const gchar *msg_id, ModestTnySendQueueStatus status); }; /** @@ -80,17 +91,95 @@ GType modest_tny_send_queue_get_type (void) G_GNUC_CONST; ModestTnySendQueue* modest_tny_send_queue_new (TnyCamelTransportAccount *account); +/** + * modest_tny_send_queue_sending_in_progress: + * @self: a valid #ModestTnySendQueue instance + * + * Checks if sending operation is currently in progress on @self send queue. + */ +gboolean modest_tny_send_queue_sending_in_progress (ModestTnySendQueue* self); /** - * modest_tny_send_queue_try_to_send: + * modest_tny_send_queue_msg_is_being_sent: * @self: a valid #ModestTnySendQueue instance - * - * Try to send the messages that are in the queue's outbox folder. - * This is not always necessary because the queue tries to send - * messages as soon as a message is added, and as soon as the queue - * is instantiated. + * @msg_id: the message id ti check. + * + * Checks if message identifies with @msg_id is currently being sent. + */ +gboolean modest_tny_send_queue_msg_is_being_sent (ModestTnySendQueue* self, const gchar *msg_id); + +/** + * modest_tny_send_queue_get_msg_status: + * @self: a valid #ModestTnySendQueue instance + * @msg_id: The message id to check + * + * Returns the status of the message identified with @msg_id. The status tells + * whether the message is currently being sent, is waiting for being sent or + * sending the message failed. + */ +ModestTnySendQueueStatus +modest_tny_send_queue_get_msg_status (ModestTnySendQueue *self, const gchar *msg_id); + +gchar * +modest_tny_send_queue_get_msg_id (TnyHeader *header); + +/** + * modest_tny_all_send_queues_get_msg_status: + * @header: a #TnyHeader + * + * obtain status of message (searching for it in all queues) + * + * Returns: a #ModestTnySendQueueStatus + */ +ModestTnySendQueueStatus +modest_tny_all_send_queues_get_msg_status (TnyHeader *header); + + +/** + * modest_tny_send_queue_to_string: + * @self: a valid #ModestTnySendQueue instance + * + * get a string representation of a send queue (for debugging) + * + * Returns: a newly allocated string, or NULL in case of error + */ +gchar* modest_tny_send_queue_to_string (ModestTnySendQueue *self); + +typedef void (*ModestTnySendQueueWakeupFunc) (ModestTnySendQueue *self, gboolean cancelled, GError *err, gpointer userdata); + +/** + * modest_tny_send_queue_wakeup: + * @self: a valid #ModestTnySendQueue instance + * + * Wakes up all suspended messages in the send queue. This means that + * the send queue will try to send them again. Note that you'd + * probably need a tny_send_queue_flush to force it + */ +void modest_tny_send_queue_wakeup (ModestTnySendQueue *self, + ModestTnySendQueueWakeupFunc callback, + gpointer userdata); + +/** + * modest_tny_send_queue_get_requested_send_receive: + * @self: a #ModestTnySendQueue + * + * gets if the last request to send queue was an interactive send + * receive or not. + * + * Returns: %TRUE if last request was an interactive send receive, + * %FALSE otherwise. + */ +gboolean modest_tny_send_queue_get_requested_send_receive (ModestTnySendQueue *self); + +/** + * modest_tny_send_queue_set_requested_send_receive: + * @self: a #ModestTnySendQueue + * @requested_send_receive: mode. + * + * this should be called on each call to process the queue, to distinguish if the + * action was an interactive send receive. */ -void modest_tny_send_queue_try_to_send (ModestTnySendQueue* self); +void modest_tny_send_queue_set_requested_send_receive (ModestTnySendQueue *self, gboolean requested_send_receive); G_END_DECLS