/* * e-source.h * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * */ #if !defined (__LIBEDATASERVER_H_INSIDE__) && !defined (LIBEDATASERVER_COMPILATION) #error "Only should be included directly." #endif #ifndef E_SOURCE_H #define E_SOURCE_H #include #include #include /* Standard GObject macros */ #define E_TYPE_SOURCE \ (e_source_get_type ()) #define E_SOURCE(obj) \ (G_TYPE_CHECK_INSTANCE_CAST \ ((obj), E_TYPE_SOURCE, ESource)) #define E_SOURCE_CLASS(cls) \ (G_TYPE_CHECK_CLASS_CAST \ ((cls), E_TYPE_SOURCE, ESourceClass)) #define E_IS_SOURCE(obj) \ (G_TYPE_CHECK_INSTANCE_TYPE \ ((obj), E_TYPE_SOURCE)) #define E_IS_SOURCE_CLASS(cls) \ (G_TYPE_CHECK_CLASS_TYPE \ ((cls), E_TYPE_SOURCE)) #define E_SOURCE_GET_CLASS(obj) \ (G_TYPE_INSTANCE_GET_CLASS \ ((obj), E_TYPE_SOURCE, ESourceClass)) /** * E_SOURCE_PARAM_SETTING: * * Extends #GParamFlags to indicate the #GObject property is associated * with a key file value. Use this flag when installing #GObject properties * in #ESourceExtension subclasses. * * Since: 3.6 **/ #define E_SOURCE_PARAM_SETTING (1 << G_PARAM_USER_SHIFT) /** * E_SOURCE_CREDENTIAL_USERNAME: * * A name of the named parameter used for usernames in credentials, * used to authenticate users with e_source_invoke_authenticate_sync() * and e_source_invoke_authenticate(). The named parameter is optional, * different authentication methods can use different names. * * Since: 3.16 **/ #define E_SOURCE_CREDENTIAL_USERNAME "username" /** * E_SOURCE_CREDENTIAL_PASSWORD: * * A name of the named parameter used for passwords in credentials, * used to authenticate users with e_source_invoke_authenticate_sync() * and e_source_invoke_authenticate(). The named parameter is optional, * different authentication methods can use different names. * * Since: 3.16 **/ #define E_SOURCE_CREDENTIAL_PASSWORD "password" /** * E_SOURCE_CREDENTIAL_SSL_TRUST: * * A name of the named parameter used for SSL/TLS trust in credentials, * used to authenticate users with e_source_invoke_authenticate_sync() * and e_source_invoke_authenticate(). The named parameter is optional. * Its value corresponds to current ESourceWebdav::ssl-trust property, * in case the ESource has that extension available. This is required * to have up-to-date data on the server side, when the client side * just saved the SSL trust change, which might not be propagated * into the server (factory) side quickly enough. The key is added into * the credentials in e_source_invoke_authenticate() automatically, if the * corresponding ESource contain a WebDAV extension and the key * is not part of the credentials already. * * Since: 3.16 **/ #define E_SOURCE_CREDENTIAL_SSL_TRUST "ssl-trust" G_BEGIN_DECLS typedef struct _ESource ESource; typedef struct _ESourceClass ESourceClass; typedef struct _ESourcePrivate ESourcePrivate; /** * ESource: * * Contains only private data that should be read and manipulated using the * functions below. * * Since: 3.6 **/ struct _ESource { /*< private >*/ GObject parent; ESourcePrivate *priv; }; struct _ESourceClass { GObjectClass parent_class; /* Signals */ void (*changed) (ESource *source); void (*credentials_required) (ESource *source, ESourceCredentialsReason reason, const gchar *certificate_pem, GTlsCertificateFlags certificate_errors, const GError *op_error); void (* authenticate) (ESource *source, const ENamedParameters *credentials); /* Methods */ gboolean (*remove_sync) (ESource *source, GCancellable *cancellable, GError **error); void (*remove) (ESource *source, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean (*remove_finish) (ESource *source, GAsyncResult *result, GError **error); gboolean (*write_sync) (ESource *source, GCancellable *cancellable, GError **error); void (*write) (ESource *source, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean (*write_finish) (ESource *source, GAsyncResult *result, GError **error); gboolean (*remote_create_sync) (ESource *source, ESource *scratch_source, GCancellable *cancellable, GError **error); void (*remote_create) (ESource *source, ESource *scratch_source, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean (*remote_create_finish) (ESource *source, GAsyncResult *result, GError **error); gboolean (*remote_delete_sync) (ESource *source, GCancellable *cancellable, GError **error); void (*remote_delete) (ESource *source, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean (*remote_delete_finish) (ESource *source, GAsyncResult *result, GError **error); gboolean (*get_oauth2_access_token_sync) (ESource *source, GCancellable *cancellable, gchar **out_access_token, gint *out_expires_in, GError **error); void (*get_oauth2_access_token) (ESource *source, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean (*get_oauth2_access_token_finish) (ESource *source, GAsyncResult *result, gchar **out_access_token, gint *out_expires_in, GError **error); gboolean (*invoke_credentials_required_impl) (ESource *source, gpointer dbus_source, /* EDBusSource * */ const gchar *arg_reason, const gchar *arg_certificate_pem, const gchar *arg_certificate_errors, const gchar *arg_dbus_error_name, const gchar *arg_dbus_error_message, GCancellable *cancellable, GError **error); gboolean (*invoke_authenticate_impl) (ESource *source, gpointer dbus_source, /* EDBusSource * */ const gchar * const *arg_credentials, GCancellable *cancellable, GError **error); gboolean (*unset_last_credentials_required_arguments_impl) (ESource *source, GCancellable *cancellable, GError **error); /* Reserved slots. */ gpointer reserved[6]; }; GType e_source_get_type (void) G_GNUC_CONST; ESource * e_source_new (GDBusObject *dbus_object, GMainContext *main_context, GError **error); ESource * e_source_new_with_uid (const gchar *uid, GMainContext *main_context, GError **error); guint e_source_hash (ESource *source); gboolean e_source_equal (ESource *source1, ESource *source2); void e_source_changed (ESource *source); const gchar * e_source_get_uid (ESource *source); gchar * e_source_dup_uid (ESource *source); const gchar * e_source_get_parent (ESource *source); gchar * e_source_dup_parent (ESource *source); void e_source_set_parent (ESource *source, const gchar *parent); gboolean e_source_get_enabled (ESource *source); void e_source_set_enabled (ESource *source, gboolean enabled); gboolean e_source_get_writable (ESource *source); gboolean e_source_get_removable (ESource *source); gboolean e_source_get_remote_creatable (ESource *source); gboolean e_source_get_remote_deletable (ESource *source); gpointer e_source_get_extension (ESource *source, const gchar *extension_name); gboolean e_source_has_extension (ESource *source, const gchar *extension_name); GDBusObject * e_source_ref_dbus_object (ESource *source); GMainContext * e_source_ref_main_context (ESource *source); const gchar * e_source_get_display_name (ESource *source); gchar * e_source_dup_display_name (ESource *source); void e_source_set_display_name (ESource *source, const gchar *display_name); gchar * e_source_dup_secret_label (ESource *source); gint e_source_compare_by_display_name (ESource *source1, ESource *source2); gchar * e_source_to_string (ESource *source, gsize *length); gchar * e_source_parameter_to_key (const gchar *param_name); ESourceConnectionStatus e_source_get_connection_status (ESource *source); void e_source_set_connection_status (ESource *source, ESourceConnectionStatus connection_status); gboolean e_source_remove_sync (ESource *source, GCancellable *cancellable, GError **error); void e_source_remove (ESource *source, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_source_remove_finish (ESource *source, GAsyncResult *result, GError **error); gboolean e_source_write_sync (ESource *source, GCancellable *cancellable, GError **error); void e_source_write (ESource *source, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_source_write_finish (ESource *source, GAsyncResult *result, GError **error); gboolean e_source_remote_create_sync (ESource *source, ESource *scratch_source, GCancellable *cancellable, GError **error); void e_source_remote_create (ESource *source, ESource *scratch_source, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_source_remote_create_finish (ESource *source, GAsyncResult *result, GError **error); gboolean e_source_remote_delete_sync (ESource *source, GCancellable *cancellable, GError **error); void e_source_remote_delete (ESource *source, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_source_remote_delete_finish (ESource *source, GAsyncResult *result, GError **error); gboolean e_source_get_oauth2_access_token_sync (ESource *source, GCancellable *cancellable, gchar **out_access_token, gint *out_expires_in, GError **error); void e_source_get_oauth2_access_token (ESource *source, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_source_get_oauth2_access_token_finish (ESource *source, GAsyncResult *result, gchar **out_access_token, gint *out_expires_in, GError **error); /* Password Management */ gboolean e_source_store_password_sync (ESource *source, const gchar *password, gboolean permanently, GCancellable *cancellable, GError **error); void e_source_store_password (ESource *source, const gchar *password, gboolean permanently, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_source_store_password_finish (ESource *source, GAsyncResult *result, GError **error); gboolean e_source_lookup_password_sync (ESource *source, GCancellable *cancellable, gchar **out_password, GError **error); void e_source_lookup_password (ESource *source, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_source_lookup_password_finish (ESource *source, GAsyncResult *result, gchar **out_password, GError **error); gboolean e_source_delete_password_sync (ESource *source, GCancellable *cancellable, GError **error); void e_source_delete_password (ESource *source, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_source_delete_password_finish (ESource *source, GAsyncResult *result, GError **error); gboolean e_source_invoke_credentials_required_sync (ESource *source, ESourceCredentialsReason reason, const gchar *certificate_pem, GTlsCertificateFlags certificate_errors, const GError *op_error, GCancellable *cancellable, GError **error); void e_source_invoke_credentials_required (ESource *source, ESourceCredentialsReason reason, const gchar *certificate_pem, GTlsCertificateFlags certificate_errors, const GError *op_error, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_source_invoke_credentials_required_finish (ESource *source, GAsyncResult *result, GError **error); gboolean e_source_invoke_authenticate_sync (ESource *source, const ENamedParameters *credentials, GCancellable *cancellable, GError **error); void e_source_invoke_authenticate (ESource *source, const ENamedParameters *credentials, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_source_invoke_authenticate_finish (ESource *source, GAsyncResult *result, GError **error); void e_source_emit_credentials_required (ESource *source, ESourceCredentialsReason reason, const gchar *certificate_pem, GTlsCertificateFlags certificate_errors, const GError *op_error); gboolean e_source_get_last_credentials_required_arguments_sync (ESource *source, ESourceCredentialsReason *out_reason, gchar **out_certificate_pem, GTlsCertificateFlags *out_certificate_errors, GError **out_op_error, GCancellable *cancellable, GError **error); void e_source_get_last_credentials_required_arguments (ESource *source, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_source_get_last_credentials_required_arguments_finish (ESource *source, GAsyncResult *result, ESourceCredentialsReason *out_reason, gchar **out_certificate_pem, GTlsCertificateFlags *out_certificate_errors, GError **out_op_error, GError **error); gboolean e_source_unset_last_credentials_required_arguments_sync (ESource *source, GCancellable *cancellable, GError **error); void e_source_unset_last_credentials_required_arguments (ESource *source, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_source_unset_last_credentials_required_arguments_finish (ESource *source, GAsyncResult *result, GError **error); G_END_DECLS #endif /* E_SOURCE_H */