X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-tny-send-queue.h;h=51e1fef5d4877bae5a9f8207c08c1ddcdee1ff65;hp=c16386dd872531a13a37edf766a277f8337ed9c7;hb=4d39841513a3a7f7aa9d38ab97cb9fcc9171e80b;hpb=9dad1c303142af16fc5bf973e0a0418970391c7c;ds=sidebyside diff --git a/src/modest-tny-send-queue.h b/src/modest-tny-send-queue.h index c16386d..51e1fef 100644 --- a/src/modest-tny-send-queue.h +++ b/src/modest-tny-send-queue.h @@ -27,17 +27,16 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#ifndef __MODEST_TNY_SEND_QUEUE_H__ -#define __MODEST_TNY_SEND_QUEUE_H__ - -#include #include #include #include +#include #include #include +#ifndef __MODEST_TNY_SEND_QUEUE_H__ +#define __MODEST_TNY_SEND_QUEUE_H__ + G_BEGIN_DECLS /* convenience macros */ @@ -51,25 +50,136 @@ 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 { - GObject parent; + TnyCamelSendQueue parent; }; struct _ModestTnySendQueueClass { - GObjectClass parent_class; - - void (*add_func) (TnySendQueue *self, TnyMsg *msg); - TnyFolder* (*get_sentbox_func) (TnySendQueue *self); - TnyFolder* (*get_outbox_func) (TnySendQueue *self); - void (*cancel_func) (TnySendQueue *self, gboolean remove); + TnyCamelSendQueueClass parent_class; + + /* Signals */ + void (*status_changed)(ModestTnySendQueue *self, const gchar *msg_id, ModestTnySendQueueStatus status); }; -/* member functions */ +/** + * modest_tny_send_queue_get_type: + * + * get the #GType for #ModestTnySendQueue + * + * Returns: the #GType + */ GType modest_tny_send_queue_get_type (void) G_GNUC_CONST; -/* typical parameter-less _new function */ -/* if this is a kind of GtkWidget, it should probably return at GtkWidget* */ -ModestTnySendQueue* modest_tny_send_queue_new (TnyCamelTransportAccount *trans_account); + +/** + * modest_tny_send_queue_new: + * @account: a valid camel transport account + * + * create a new modest #ModestTnySendQueue object. + * + * Returns: a new #ModestTnySendQueue instance, or NULL in case + * of any error + */ +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_msg_is_being_sent: + * @self: a valid #ModestTnySendQueue instance + * @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_set_requested_send_receive (ModestTnySendQueue *self, gboolean requested_send_receive); G_END_DECLS