};
/**
- * GetMsgAsynUserCallback:
+ * ErroCheckingAsyncUserCallback:
+ *
+ * @obj: a #GObject generic object which has created current mail operation.
+ * @user_data: generic data passed to user defined function.
+ *
+ * This function implements required actions to performs under error
+ * states.
+ */
+typedef void (*ErrorCheckingUserCallback) (const GObject *obj, gpointer user_data);
+
+/**
+ * GetMsgAsyncUserCallback:
*
* @obj: a #GObject generic object which has created current mail operation.
* @msg: a #TnyMsg message retrieved by async operation.
* used as tinymail operation callback. The private function fills private
* fields of mail operation and calls user defined callback if it exists.
*/
-typedef void (*GetMsgAsynUserCallback) (const GObject *obj, const TnyMsg *msg, gpointer user_data);
+typedef void (*GetMsgAsyncUserCallback) (ModestMailOperation *mail_op,
+ TnyHeader *header,
+ TnyMsg *msg,
+ gpointer user_data);
/**
* XferMsgAsynUserCallback:
GObject *source);
/**
+ * modest_mail_operation_new_with_error_handling:
+ * @id: a #ModestMailOperationId identification of operation type.
+ * @source: a #GObject which creates this new operation.
+ * @error_handler: a #ErrorCheckingUserCallback function to performs operations when
+ * an error occurs.
+ *
+ * Creates a new instance of class #ModestMailOperation, using parameters
+ * to initialize its private structure. @source parameter may be NULL.
+ * @error_handler can not be NULL, but it will be returned an mail operation
+ * object without error handling capability.
+ **/
+ModestMailOperation* modest_mail_operation_new_with_error_handling (ModestMailOperationId id,
+ GObject *source,
+ ErrorCheckingUserCallback error_handler);
+/**
+ * modest_mail_operation_get_id
+ * @self: a #ModestMailOperation
+ *
+ * Executes error handler, if it exists, passing @self objsect as
+ * user_data argument of error handling function.
+ **/
+void
+modest_mail_operation_execute_error_handler (ModestMailOperation *self);
+
+/**
* modest_mail_operation_get_id
* @self: a #ModestMailOperation
*
modest_mail_operation_is_mine (ModestMailOperation *self,
GObject *me);
+/**
+ * modest_mail_operation_get_source
+ * @self: a #ModestMailOperation
+ *
+ * returns a new reference to the object that created the mail
+ * operation passed to the constructor, or NULL if none. The caller
+ * must free the new reference
+ **/
+GObject *
+modest_mail_operation_get_source (ModestMailOperation *self);
+
/* fill in other public functions, eg.: */
/**
* If @delete_original is TRUE this function moves the original
* folder, if it is FALSE the it just copies it
*
- * Returns: the newly transfered folder
**/
-TnyFolder* modest_mail_operation_xfer_folder (ModestMailOperation *self,
+void modest_mail_operation_xfer_folder (ModestMailOperation *self,
TnyFolder *folder,
TnyFolderStore *parent,
gboolean delete_original);
-
-
-void modest_mail_operation_xfer_folder_async (ModestMailOperation *self,
- TnyFolder *folder,
- TnyFolderStore *parent,
- gboolean delete_original);
/* Functions that performs msg operations */
/**
* modest_mail_operation_get_msg:
* @self: a #ModestMailOperation
* @header_list: the #TnyHeader of the message to get
- * @user_callback: a #GetMsgAsynUserCallback function to call after tinymail callback execution.
+ * @user_callback: a #GetMsgAsyncUserCallback function to call after tinymail callback execution.
* @user_data: generic user data which will be passed to @user_callback function.
*
* Gets a message from header using an user defined @callback function
**/
void modest_mail_operation_get_msg (ModestMailOperation *self,
TnyHeader *header,
- GetMsgAsynUserCallback user_callback,
+ GetMsgAsyncUserCallback user_callback,
gpointer user_data);
/**
- * modest_mail_operation_process_msg:
+ * modest_mail_operation_get_msgs_full:
* @self: a #ModestMailOperation
* @header_list: a #TnyList of #TnyHeader objects to get and process
* @user_callback: a #TnyGetMsgCallback function to call after tinymail operation execution.
* pased as argument. This operation is asynchronous, so the
* #ModestMailOperation should be added to #ModestMailOperationQueue
**/
-void modest_mail_operation_process_msg (ModestMailOperation *self,
+void modest_mail_operation_get_msgs_full (ModestMailOperation *self,
TnyList *headers_list,
- GetMsgAsynUserCallback user_callback,
- gpointer user_data);
+ GetMsgAsyncUserCallback user_callback,
+ gpointer user_data,
+ GDestroyNotify notify);
/* Functions to control mail operations */
/**
void modest_mail_operation_refresh_folder (ModestMailOperation *self,
TnyFolder *folder);
-/**
- *
- * This function is a workarround. It emits the progress-changed
- * signal. It's used by the mail operation queue to notify the
- * observers attached to that signal that the operation finished. We
- * need to use that for the moment because tinymail does not give us
- * the progress of a given operation very well. So we must delete it
- * when tinymail has that functionality and remove the call to it in
- * the queue as well.
- */
-void _modest_mail_operation_notify_end (ModestMailOperation *self);
-
G_END_DECLS
#endif /* __MODEST_MAIL_OPERATION_H__ */