Add optimized indexing capabilities for phone number values.
[platform/upstream/evolution-data-server.git] / camel / camel-service.h
index 7eb673d..3923288 100644 (file)
 #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 \
@@ -82,47 +84,21 @@ typedef enum {
        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);
@@ -130,10 +106,53 @@ struct _CamelServiceClass {
                                                 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 */
@@ -147,32 +166,88 @@ typedef struct {
 
 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