#ifndef CAMEL_SERVICE_H
#define CAMEL_SERVICE_H
+#include <camel/camel-enums.h>
#include <camel/camel-object.h>
#include <camel/camel-url.h>
#include <camel/camel-provider.h>
#include <camel/camel-operation.h>
+#include <camel/camel-settings.h>
/* Standard GObject macros */
#define CAMEL_TYPE_SERVICE \
CAMEL_SERVICE_ERROR_NOT_CONNECTED
} CamelServiceError;
-typedef enum {
- CAMEL_SERVICE_DISCONNECTED,
- CAMEL_SERVICE_CONNECTING,
- CAMEL_SERVICE_CONNECTED,
- CAMEL_SERVICE_DISCONNECTING
-} CamelServiceConnectionStatus;
-
-/**
- * CamelServiceLock:
- *
- * Since: 2.32
- **/
-typedef enum {
- CAMEL_SERVICE_REC_CONNECT_LOCK,
- CAMEL_SERVICE_CONNECT_OP_LOCK
-} CamelServiceLock;
-
struct _CamelService {
CamelObject parent;
CamelServicePrivate *priv;
-
- struct _CamelSession *session;
- CamelProvider *provider;
- CamelServiceConnectionStatus status;
- GCancellable *connect_op;
- CamelURL *url;
};
struct _CamelServiceClass {
CamelObjectClass parent_class;
- gboolean (*construct) (CamelService *service,
- struct _CamelSession *session,
- CamelProvider *provider,
- CamelURL *url,
- GError **error);
+ GType settings_type;
+
+ /* Non-Blocking Methods */
gchar * (*get_name) (CamelService *service,
gboolean brief);
- gchar * (*get_path) (CamelService *service);
- void (*cancel_connect) (CamelService *service);
+ /* Synchronous I/O Methods */
gboolean (*connect_sync) (CamelService *service,
GCancellable *cancellable,
GError **error);
gboolean clean,
GCancellable *cancellable,
GError **error);
+ CamelAuthenticationResult
+ (*authenticate_sync) (CamelService *service,
+ const gchar *mechanism,
+ GCancellable *cancellable,
+ GError **error);
GList * (*query_auth_types_sync)
(CamelService *service,
GCancellable *cancellable,
GError **error);
+
+ /* Asynchronous I/O Methods (all have defaults) */
+ void (*connect) (CamelService *service,
+ gint io_priority,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ gboolean (*connect_finish) (CamelService *service,
+ GAsyncResult *result,
+ GError **error);
+ void (*disconnect) (CamelService *service,
+ gboolean clean,
+ gint io_priority,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ gboolean (*disconnect_finish) (CamelService *service,
+ GAsyncResult *result,
+ GError **error);
+ void (*authenticate) (CamelService *service,
+ const gchar *mechanism,
+ gint io_priority,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ CamelAuthenticationResult
+ (*authenticate_finish) (CamelService *service,
+ GAsyncResult *result,
+ GError **error);
+ void (*query_auth_types) (CamelService *service,
+ gint io_priority,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ GList * (*query_auth_types_finish)
+ (CamelService *service,
+ GAsyncResult *result,
+ GError **error);
};
/* query_auth_types returns a GList of these */
GType camel_service_get_type (void);
GQuark camel_service_error_quark (void) G_GNUC_CONST;
-gboolean camel_service_construct (CamelService *service,
- struct _CamelSession *session,
- CamelProvider *provider,
- CamelURL *url,
- GError **error);
+void camel_service_migrate_files (CamelService *service);
+CamelURL * camel_service_new_camel_url (CamelService *service);
+CamelServiceConnectionStatus
+ camel_service_get_connection_status
+ (CamelService *service);
+const gchar * camel_service_get_display_name (CamelService *service);
+void camel_service_set_display_name (CamelService *service,
+ const gchar *display_name);
+const gchar * camel_service_get_password (CamelService *service);
+void camel_service_set_password (CamelService *service,
+ const gchar *password);
+const gchar * camel_service_get_user_data_dir (CamelService *service);
+const gchar * camel_service_get_user_cache_dir
+ (CamelService *service);
gchar * camel_service_get_name (CamelService *service,
gboolean brief);
-gchar * camel_service_get_path (CamelService *service);
CamelProvider * camel_service_get_provider (CamelService *service);
struct _CamelSession *
- camel_service_get_session (CamelService *service);
-gchar * camel_service_get_url (CamelService *service);
-void camel_service_cancel_connect (CamelService *service);
+ camel_service_ref_session (CamelService *service);
+CamelSettings * camel_service_ref_settings (CamelService *service);
+void camel_service_set_settings (CamelService *service,
+ CamelSettings *settings);
+const gchar * camel_service_get_uid (CamelService *service);
+
gboolean camel_service_connect_sync (CamelService *service,
+ GCancellable *cancellable,
+ GError **error);
+void camel_service_connect (CamelService *service,
+ gint io_priority,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean camel_service_connect_finish (CamelService *service,
+ GAsyncResult *result,
GError **error);
gboolean camel_service_disconnect_sync (CamelService *service,
gboolean clean,
+ GCancellable *cancellable,
+ GError **error);
+void camel_service_disconnect (CamelService *service,
+ gboolean clean,
+ gint io_priority,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean camel_service_disconnect_finish (CamelService *service,
+ GAsyncResult *result,
+ GError **error);
+CamelAuthenticationResult
+ camel_service_authenticate_sync (CamelService *service,
+ const gchar *mechanism,
+ GCancellable *cancellable,
+ GError **error);
+void camel_service_authenticate (CamelService *service,
+ const gchar *mechanism,
+ gint io_priority,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+CamelAuthenticationResult
+ camel_service_authenticate_finish
+ (CamelService *service,
+ GAsyncResult *result,
GError **error);
GList * camel_service_query_auth_types_sync
(CamelService *service,
GCancellable *cancellable,
GError **error);
-void camel_service_lock (CamelService *service,
- CamelServiceLock lock);
-void camel_service_unlock (CamelService *service,
- CamelServiceLock lock);
+void camel_service_query_auth_types (CamelService *service,
+ gint io_priority,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+GList * camel_service_query_auth_types_finish
+ (CamelService *service,
+ GAsyncResult *result,
+ GError **error);
+
+#ifndef CAMEL_DISABLE_DEPRECATED
+struct _CamelSession *
+ camel_service_get_session (CamelService *service);
+#endif /* CAMEL_DISABLE_DEPRECATED */
G_END_DECLS