diff options
author | Milan Crha <mcrha@redhat.com> | 2015-03-24 07:25:09 +0100 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2015-03-24 07:25:09 +0100 |
commit | abfc9387efb57fd2f4f5b75f2e2fd764410ee1a8 (patch) | |
tree | a82f1fb99a3129e0603ce427e7db87c2dd73c9ff /addressbook | |
parent | 94f01174562ecb86b136f624cb939667c1705d78 (diff) | |
download | evolution-data-server-abfc9387efb57fd2f4f5b75f2e2fd764410ee1a8.tar.gz |
Bug 744718 - Provide backend specific extensions as public
Diffstat (limited to 'addressbook')
-rw-r--r-- | addressbook/backends/ldap/Makefile.am | 2 | ||||
-rw-r--r-- | addressbook/backends/ldap/e-book-backend-ldap-factory.c | 2 | ||||
-rw-r--r-- | addressbook/backends/ldap/e-book-backend-ldap.c | 3 | ||||
-rw-r--r-- | addressbook/backends/ldap/e-source-ldap.c | 688 | ||||
-rw-r--r-- | addressbook/backends/ldap/e-source-ldap.h | 122 |
5 files changed, 2 insertions, 815 deletions
diff --git a/addressbook/backends/ldap/Makefile.am b/addressbook/backends/ldap/Makefile.am index 03dbf90c9..b45f4494a 100644 --- a/addressbook/backends/ldap/Makefile.am +++ b/addressbook/backends/ldap/Makefile.am @@ -19,8 +19,6 @@ libebookbackendldap_la_SOURCES = \ e-book-backend-ldap.c \ e-book-backend-ldap.h \ e-book-backend-ldap-factory.c \ - e-source-ldap.c \ - e-source-ldap.h \ $(NULL) libebookbackendldap_la_LIBADD = \ diff --git a/addressbook/backends/ldap/e-book-backend-ldap-factory.c b/addressbook/backends/ldap/e-book-backend-ldap-factory.c index e49e0c33a..2d069a163 100644 --- a/addressbook/backends/ldap/e-book-backend-ldap-factory.c +++ b/addressbook/backends/ldap/e-book-backend-ldap-factory.c @@ -24,7 +24,6 @@ #endif #include "e-book-backend-ldap.h" -#include "e-source-ldap.h" #define FACTORY_NAME "ldap" @@ -73,7 +72,6 @@ e_module_load (GTypeModule *type_module) { e_module = E_MODULE (type_module); - e_source_ldap_type_register (type_module); e_book_backend_ldap_factory_register_type (type_module); } diff --git a/addressbook/backends/ldap/e-book-backend-ldap.c b/addressbook/backends/ldap/e-book-backend-ldap.c index 559ebbfd5..0efe3e9ba 100644 --- a/addressbook/backends/ldap/e-book-backend-ldap.c +++ b/addressbook/backends/ldap/e-book-backend-ldap.c @@ -64,8 +64,9 @@ #include <glib/gi18n-lib.h> +#include <libedataserver/libedataserver.h> + #include "e-book-backend-ldap.h" -#include "e-source-ldap.h" /* this is broken currently, don't enable it */ /*#define ENABLE_SASL_BINDS*/ diff --git a/addressbook/backends/ldap/e-source-ldap.c b/addressbook/backends/ldap/e-source-ldap.c deleted file mode 100644 index 7595a27de..000000000 --- a/addressbook/backends/ldap/e-source-ldap.c +++ /dev/null @@ -1,688 +0,0 @@ -/* - * e-source-ldap.c - * - * 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 <http://www.gnu.org/licenses/>. - * - */ - -#include "e-source-ldap.h" - -#include <ldap.h> - -#define E_SOURCE_LDAP_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE \ - ((obj), E_TYPE_SOURCE_LDAP, ESourceLDAPPrivate)) - -struct _ESourceLDAPPrivate { - GMutex property_lock; - gboolean can_browse; - gchar *filter; - guint limit; - gchar *root_dn; - ESourceLDAPScope scope; - - /* These are bound to other extensions. */ - ESourceLDAPAuthentication authentication; - ESourceLDAPSecurity security; -}; - -enum { - PROP_0, - PROP_AUTHENTICATION, - PROP_CAN_BROWSE, - PROP_FILTER, - PROP_LIMIT, - PROP_ROOT_DN, - PROP_SCOPE, - PROP_SECURITY -}; - -static GType e_source_ldap_authentication_type = G_TYPE_INVALID; -static GType e_source_ldap_scope_type = G_TYPE_INVALID; -static GType e_source_ldap_security_type = G_TYPE_INVALID; - -G_DEFINE_DYNAMIC_TYPE ( - ESourceLDAP, - e_source_ldap, - E_TYPE_SOURCE_EXTENSION) - -static gboolean -source_ldap_transform_enum_nick_to_value (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer not_used) -{ - GEnumClass *enum_class; - GEnumValue *enum_value; - const gchar *string; - gboolean success = FALSE; - - enum_class = g_type_class_peek (G_VALUE_TYPE (target_value)); - g_return_val_if_fail (G_IS_ENUM_CLASS (enum_class), FALSE); - - string = g_value_get_string (source_value); - enum_value = g_enum_get_value_by_nick (enum_class, string); - if (enum_value != NULL) { - g_value_set_enum (target_value, enum_value->value); - success = TRUE; - } - - return success; -} - -static gboolean -source_ldap_transform_enum_value_to_nick (GBinding *binding, - const GValue *source_value, - GValue *target_value, - gpointer not_used) -{ - GEnumClass *enum_class; - GEnumValue *enum_value; - gint value; - gboolean success = FALSE; - - enum_class = g_type_class_peek (G_VALUE_TYPE (source_value)); - g_return_val_if_fail (G_IS_ENUM_CLASS (enum_class), FALSE); - - value = g_value_get_enum (source_value); - enum_value = g_enum_get_value (enum_class, value); - if (enum_value != NULL) { - g_value_set_string (target_value, enum_value->value_nick); - success = TRUE; - } - - return success; -} - -static void -source_ldap_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - switch (property_id) { - case PROP_AUTHENTICATION: - e_source_ldap_set_authentication ( - E_SOURCE_LDAP (object), - g_value_get_enum (value)); - return; - - case PROP_CAN_BROWSE: - e_source_ldap_set_can_browse ( - E_SOURCE_LDAP (object), - g_value_get_boolean (value)); - return; - - case PROP_FILTER: - e_source_ldap_set_filter ( - E_SOURCE_LDAP (object), - g_value_get_string (value)); - return; - - case PROP_LIMIT: - e_source_ldap_set_limit ( - E_SOURCE_LDAP (object), - g_value_get_uint (value)); - return; - - case PROP_ROOT_DN: - e_source_ldap_set_root_dn ( - E_SOURCE_LDAP (object), - g_value_get_string (value)); - return; - - case PROP_SCOPE: - e_source_ldap_set_scope ( - E_SOURCE_LDAP (object), - g_value_get_enum (value)); - return; - - case PROP_SECURITY: - e_source_ldap_set_security ( - E_SOURCE_LDAP (object), - g_value_get_enum (value)); - return; - } - - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); -} - -static void -source_ldap_get_property (GObject *object, - guint property_id, - GValue *value, - GParamSpec *pspec) -{ - switch (property_id) { - case PROP_AUTHENTICATION: - g_value_set_enum ( - value, - e_source_ldap_get_authentication ( - E_SOURCE_LDAP (object))); - return; - - case PROP_CAN_BROWSE: - g_value_set_boolean ( - value, - e_source_ldap_get_can_browse ( - E_SOURCE_LDAP (object))); - return; - - case PROP_FILTER: - g_value_take_string ( - value, - e_source_ldap_dup_filter ( - E_SOURCE_LDAP (object))); - return; - - case PROP_LIMIT: - g_value_set_uint ( - value, - e_source_ldap_get_limit ( - E_SOURCE_LDAP (object))); - return; - - case PROP_ROOT_DN: - g_value_take_string ( - value, - e_source_ldap_dup_root_dn ( - E_SOURCE_LDAP (object))); - return; - - case PROP_SCOPE: - g_value_set_enum ( - value, - e_source_ldap_get_scope ( - E_SOURCE_LDAP (object))); - return; - - case PROP_SECURITY: - g_value_set_enum ( - value, - e_source_ldap_get_security ( - E_SOURCE_LDAP (object))); - return; - } - - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); -} - -static void -source_ldap_finalize (GObject *object) -{ - ESourceLDAPPrivate *priv; - - priv = E_SOURCE_LDAP_GET_PRIVATE (object); - - g_mutex_clear (&priv->property_lock); - - g_free (priv->filter); - g_free (priv->root_dn); - - /* Chain up to parent's finalize() method. */ - G_OBJECT_CLASS (e_source_ldap_parent_class)->finalize (object); -} - -static void -source_ldap_constructed (GObject *object) -{ - ESource *source; - ESourceExtension *this_extension; - ESourceExtension *other_extension; - const gchar *extension_name; - - /* Chain up to parent's method. */ - G_OBJECT_CLASS (e_source_ldap_parent_class)->constructed (object); - - this_extension = E_SOURCE_EXTENSION (object); - source = e_source_extension_ref_source (this_extension); - - extension_name = E_SOURCE_EXTENSION_AUTHENTICATION; - other_extension = e_source_get_extension (source, extension_name); - - e_binding_bind_property_full ( - other_extension, "method", - this_extension, "authentication", - G_BINDING_BIDIRECTIONAL | - G_BINDING_SYNC_CREATE, - source_ldap_transform_enum_nick_to_value, - source_ldap_transform_enum_value_to_nick, - NULL, (GDestroyNotify) NULL); - - extension_name = E_SOURCE_EXTENSION_SECURITY; - other_extension = e_source_get_extension (source, extension_name); - - e_binding_bind_property_full ( - other_extension, "method", - this_extension, "security", - G_BINDING_BIDIRECTIONAL | - G_BINDING_SYNC_CREATE, - source_ldap_transform_enum_nick_to_value, - source_ldap_transform_enum_value_to_nick, - NULL, (GDestroyNotify) NULL); - - g_object_unref (source); -} - -static void -e_source_ldap_class_init (ESourceLDAPClass *class) -{ - GObjectClass *object_class; - ESourceExtensionClass *extension_class; - - g_type_class_add_private (class, sizeof (ESourceLDAPPrivate)); - - object_class = G_OBJECT_CLASS (class); - object_class->set_property = source_ldap_set_property; - object_class->get_property = source_ldap_get_property; - object_class->finalize = source_ldap_finalize; - object_class->constructed = source_ldap_constructed; - - extension_class = E_SOURCE_EXTENSION_CLASS (class); - extension_class->name = E_SOURCE_EXTENSION_LDAP_BACKEND; - - /* This is bound to the authentication extension. - * Do not use E_SOURCE_PARAM_SETTING here. */ - g_object_class_install_property ( - object_class, - PROP_AUTHENTICATION, - g_param_spec_enum ( - "authentication", - "Authentication", - "LDAP authentication method", - E_TYPE_SOURCE_LDAP_AUTHENTICATION, - E_SOURCE_LDAP_AUTHENTICATION_NONE, - G_PARAM_READWRITE)); - - g_object_class_install_property ( - object_class, - PROP_CAN_BROWSE, - g_param_spec_boolean ( - "can-browse", - "Can Browse", - "Allow browsing contacts", - FALSE, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - E_SOURCE_PARAM_SETTING)); - - g_object_class_install_property ( - object_class, - PROP_FILTER, - g_param_spec_string ( - "filter", - "Filter", - "LDAP search filter", - "", - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - E_SOURCE_PARAM_SETTING)); - - g_object_class_install_property ( - object_class, - PROP_LIMIT, - g_param_spec_uint ( - "limit", - "Limit", - "Download limit", - 0, G_MAXUINT, 100, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - E_SOURCE_PARAM_SETTING)); - - g_object_class_install_property ( - object_class, - PROP_ROOT_DN, - g_param_spec_string ( - "root-dn", - "Root DN", - "LDAP search base", - "", - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - E_SOURCE_PARAM_SETTING)); - - g_object_class_install_property ( - object_class, - PROP_SCOPE, - g_param_spec_enum ( - "scope", - "Scope", - "LDAP search scope", - E_TYPE_SOURCE_LDAP_SCOPE, - E_SOURCE_LDAP_SCOPE_ONELEVEL, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - E_SOURCE_PARAM_SETTING)); - - /* This is bound to the security extension. - * Do not use E_SOURCE_PARAM_SETTING here. */ - g_object_class_install_property ( - object_class, - PROP_SECURITY, - g_param_spec_enum ( - "security", - "Security", - "LDAP security method", - E_TYPE_SOURCE_LDAP_SECURITY, - E_SOURCE_LDAP_SECURITY_NONE, - G_PARAM_READWRITE)); -} - -static void -e_source_ldap_class_finalize (ESourceLDAPClass *class) -{ -} - -static void -e_source_ldap_init (ESourceLDAP *extension) -{ - extension->priv = E_SOURCE_LDAP_GET_PRIVATE (extension); - g_mutex_init (&extension->priv->property_lock); -} - -void -e_source_ldap_type_register (GTypeModule *type_module) -{ - static const GEnumValue e_source_ldap_authentication_values[] = { - { E_SOURCE_LDAP_AUTHENTICATION_NONE, - "E_SOURCE_LDAP_AUTHENTICATION_NONE", - "none" }, - { E_SOURCE_LDAP_AUTHENTICATION_EMAIL, - "E_SOURCE_LDAP_AUTHENTICATION_EMAIL", - "ldap/simple-email" }, - { E_SOURCE_LDAP_AUTHENTICATION_BINDDN, - "E_SOURCE_LDAP_AUTHENTICATION_BINDDN", - "ldap/simple-binddn" }, - { 0, NULL, NULL } - }; - - static const GEnumValue e_source_ldap_scope_values[] = { - { E_SOURCE_LDAP_SCOPE_ONELEVEL, - "E_SOURCE_LDAP_SCOPE_ONELEVEL", - "onelevel" }, - { E_SOURCE_LDAP_SCOPE_SUBTREE, - "E_SOURCE_LDAP_SCOPE_SUBTREE", - "subtree" }, - { 0, NULL, NULL } - }; - - static const GEnumValue e_source_ldap_security_values[] = { - { E_SOURCE_LDAP_SECURITY_NONE, - "E_SOURCE_LDAP_SECURITY_NONE", - "none" }, - { E_SOURCE_LDAP_SECURITY_LDAPS, - "E_SOURCE_LDAP_SECURITY_LDAPS", - "ldaps" }, - { E_SOURCE_LDAP_SECURITY_STARTTLS, - "E_SOURCE_LDAP_SECURITY_STARTTLS", - "starttls" }, - { 0, NULL, NULL } - }; - - e_source_ldap_authentication_type = - g_type_module_register_enum ( - type_module, "ESourceLDAPAuthentication", - e_source_ldap_authentication_values); - - e_source_ldap_scope_type = - g_type_module_register_enum ( - type_module, "ESourceLDAPScope", - e_source_ldap_scope_values); - - e_source_ldap_security_type = - g_type_module_register_enum ( - type_module, "ESourceLDAPSecurity", - e_source_ldap_security_values); - - /* XXX G_DEFINE_DYNAMIC_TYPE declares a static type registration - * function, so we have to wrap it with a public function in - * order to register types from a separate compilation unit. */ - e_source_ldap_register_type (type_module); -} - -ESourceLDAPAuthentication -e_source_ldap_get_authentication (ESourceLDAP *extension) -{ - g_return_val_if_fail (E_IS_SOURCE_LDAP (extension), 0); - - return extension->priv->authentication; -} - -void -e_source_ldap_set_authentication (ESourceLDAP *extension, - ESourceLDAPAuthentication authentication) -{ - g_return_if_fail (E_IS_SOURCE_LDAP (extension)); - - if (extension->priv->authentication == authentication) - return; - - extension->priv->authentication = authentication; - - g_object_notify (G_OBJECT (extension), "authentication"); -} - -gboolean -e_source_ldap_get_can_browse (ESourceLDAP *extension) -{ - g_return_val_if_fail (E_IS_SOURCE_LDAP (extension), FALSE); - - return extension->priv->can_browse; -} - -void -e_source_ldap_set_can_browse (ESourceLDAP *extension, - gboolean can_browse) -{ - g_return_if_fail (E_IS_SOURCE_LDAP (extension)); - - if (extension->priv->can_browse == can_browse) - return; - - extension->priv->can_browse = can_browse; - - g_object_notify (G_OBJECT (extension), "can-browse"); -} - -const gchar * -e_source_ldap_get_filter (ESourceLDAP *extension) -{ - g_return_val_if_fail (E_IS_SOURCE_LDAP (extension), NULL); - - return extension->priv->filter; -} - -gchar * -e_source_ldap_dup_filter (ESourceLDAP *extension) -{ - const gchar *protected; - gchar *duplicate; - - g_return_val_if_fail (E_IS_SOURCE_LDAP (extension), NULL); - - g_mutex_lock (&extension->priv->property_lock); - - protected = e_source_ldap_get_filter (extension); - duplicate = g_strdup (protected); - - g_mutex_unlock (&extension->priv->property_lock); - - return duplicate; -} - -void -e_source_ldap_set_filter (ESourceLDAP *extension, - const gchar *filter) -{ - gboolean needs_parens; - gchar *new_filter; - - g_return_if_fail (E_IS_SOURCE_LDAP (extension)); - - needs_parens = - (filter != NULL) && (*filter != '\0') && - !g_str_has_prefix (filter, "(") && - !g_str_has_suffix (filter, ")"); - - g_mutex_lock (&extension->priv->property_lock); - - if (needs_parens) - new_filter = g_strdup_printf ("(%s)", filter); - else - new_filter = g_strdup (filter); - - if (g_strcmp0 (extension->priv->filter, new_filter) == 0) { - g_mutex_unlock (&extension->priv->property_lock); - g_free (new_filter); - return; - } - - g_free (extension->priv->filter); - extension->priv->filter = new_filter; - - g_mutex_unlock (&extension->priv->property_lock); - - g_object_notify (G_OBJECT (extension), "filter"); -} - -guint -e_source_ldap_get_limit (ESourceLDAP *extension) -{ - g_return_val_if_fail (E_IS_SOURCE_LDAP (extension), 0); - - return extension->priv->limit; -} - -void -e_source_ldap_set_limit (ESourceLDAP *extension, - guint limit) -{ - g_return_if_fail (E_IS_SOURCE_LDAP (extension)); - - if (extension->priv->limit == limit) - return; - - extension->priv->limit = limit; - - g_object_notify (G_OBJECT (extension), "limit"); -} - -const gchar * -e_source_ldap_get_root_dn (ESourceLDAP *extension) -{ - g_return_val_if_fail (E_IS_SOURCE_LDAP (extension), NULL); - - return extension->priv->root_dn; -} - -gchar * -e_source_ldap_dup_root_dn (ESourceLDAP *extension) -{ - const gchar *protected; - gchar *duplicate; - - g_return_val_if_fail (E_IS_SOURCE_LDAP (extension), NULL); - - g_mutex_lock (&extension->priv->property_lock); - - protected = e_source_ldap_get_root_dn (extension); - duplicate = g_strdup (protected); - - g_mutex_unlock (&extension->priv->property_lock); - - return duplicate; -} - -void -e_source_ldap_set_root_dn (ESourceLDAP *extension, - const gchar *root_dn) -{ - g_return_if_fail (E_IS_SOURCE_LDAP (extension)); - - g_mutex_lock (&extension->priv->property_lock); - - if (g_strcmp0 (extension->priv->root_dn, root_dn) == 0) { - g_mutex_unlock (&extension->priv->property_lock); - return; - } - - g_free (extension->priv->root_dn); - extension->priv->root_dn = e_util_strdup_strip (root_dn); - - g_mutex_unlock (&extension->priv->property_lock); - - g_object_notify (G_OBJECT (extension), "root-dn"); -} - -ESourceLDAPScope -e_source_ldap_get_scope (ESourceLDAP *extension) -{ - g_return_val_if_fail (E_IS_SOURCE_LDAP (extension), 0); - - return extension->priv->scope; -} - -void -e_source_ldap_set_scope (ESourceLDAP *extension, - ESourceLDAPScope scope) -{ - g_return_if_fail (E_IS_SOURCE_LDAP (extension)); - - if (extension->priv->scope == scope) - return; - - extension->priv->scope = scope; - - g_object_notify (G_OBJECT (extension), "scope"); -} - -ESourceLDAPSecurity -e_source_ldap_get_security (ESourceLDAP *extension) -{ - g_return_val_if_fail (E_IS_SOURCE_LDAP (extension), 0); - - return extension->priv->security; -} - -void -e_source_ldap_set_security (ESourceLDAP *extension, - ESourceLDAPSecurity security) -{ - g_return_if_fail (E_IS_SOURCE_LDAP (extension)); - - if (extension->priv->security == security) - return; - - extension->priv->security = security; - - g_object_notify (G_OBJECT (extension), "security"); -} - -GType -e_source_ldap_authentication_get_type (void) -{ - return e_source_ldap_authentication_type; -} - -GType -e_source_ldap_scope_get_type (void) -{ - return e_source_ldap_scope_type; -} - -GType -e_source_ldap_security_get_type (void) -{ - return e_source_ldap_security_type; -} diff --git a/addressbook/backends/ldap/e-source-ldap.h b/addressbook/backends/ldap/e-source-ldap.h deleted file mode 100644 index c275a023d..000000000 --- a/addressbook/backends/ldap/e-source-ldap.h +++ /dev/null @@ -1,122 +0,0 @@ -/* - * e-source-ldap.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 <http://www.gnu.org/licenses/>. - * - */ - -#ifndef E_SOURCE_LDAP_H -#define E_SOURCE_LDAP_H - -#include <libedataserver/libedataserver.h> - -/* Standard GObject macros */ -#define E_TYPE_SOURCE_LDAP \ - (e_source_ldap_get_type ()) -#define E_SOURCE_LDAP(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST \ - ((obj), E_TYPE_SOURCE_LDAP, ESourceLDAP)) -#define E_SOURCE_LDAP_CLASS(cls) \ - (G_TYPE_CHECK_CLASS_CAST \ - ((cls), E_TYPE_SOURCE_LDAP, ESourceLDAPClass)) -#define E_IS_SOURCE_LDAP(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE \ - ((obj), E_TYPE_SOURCE_LDAP)) -#define E_IS_SOURCE_LDAP_CLASS(cls) \ - (G_TYPE_CHECK_CLASS_TYPE \ - ((cls), E_TYPE_SOURCE_LDAP)) -#define E_SOURCE_LDAP_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS \ - ((obj), E_TYPE_SOURCE_LDAP, ESourceLDAPClass)) - -#define E_TYPE_SOURCE_LDAP_AUTHENTICATION \ - (e_source_ldap_authentication_get_type ()) - -#define E_TYPE_SOURCE_LDAP_SCOPE \ - (e_source_ldap_scope_get_type ()) - -#define E_TYPE_SOURCE_LDAP_SECURITY \ - (e_source_ldap_security_get_type ()) - -#define E_SOURCE_EXTENSION_LDAP_BACKEND "LDAP Backend" - -G_BEGIN_DECLS - -typedef struct _ESourceLDAP ESourceLDAP; -typedef struct _ESourceLDAPClass ESourceLDAPClass; -typedef struct _ESourceLDAPPrivate ESourceLDAPPrivate; - -struct _ESourceLDAP { - ESourceExtension parent; - ESourceLDAPPrivate *priv; -}; - -struct _ESourceLDAPClass { - ESourceExtensionClass parent_class; -}; - -typedef enum { - E_SOURCE_LDAP_AUTHENTICATION_NONE, - E_SOURCE_LDAP_AUTHENTICATION_EMAIL, - E_SOURCE_LDAP_AUTHENTICATION_BINDDN -} ESourceLDAPAuthentication; - -typedef enum { - E_SOURCE_LDAP_SCOPE_ONELEVEL, - E_SOURCE_LDAP_SCOPE_SUBTREE -} ESourceLDAPScope; - -typedef enum { - E_SOURCE_LDAP_SECURITY_NONE, - E_SOURCE_LDAP_SECURITY_LDAPS, - E_SOURCE_LDAP_SECURITY_STARTTLS -} ESourceLDAPSecurity; - -GType e_source_ldap_get_type (void); -void e_source_ldap_type_register (GTypeModule *type_module); -ESourceLDAPAuthentication - e_source_ldap_get_authentication - (ESourceLDAP *extension); -void e_source_ldap_set_authentication - (ESourceLDAP *extension, - ESourceLDAPAuthentication authentication); -gboolean e_source_ldap_get_can_browse (ESourceLDAP *extension); -void e_source_ldap_set_can_browse (ESourceLDAP *extension, - gboolean can_browse); -const gchar * e_source_ldap_get_filter (ESourceLDAP *extension); -gchar * e_source_ldap_dup_filter (ESourceLDAP *extension); -void e_source_ldap_set_filter (ESourceLDAP *extension, - const gchar *filter); -guint e_source_ldap_get_limit (ESourceLDAP *extension); -void e_source_ldap_set_limit (ESourceLDAP *extension, - guint limit); -const gchar * e_source_ldap_get_root_dn (ESourceLDAP *extension); -gchar * e_source_ldap_dup_root_dn (ESourceLDAP *extension); -void e_source_ldap_set_root_dn (ESourceLDAP *extension, - const gchar *root_dn); -ESourceLDAPScope - e_source_ldap_get_scope (ESourceLDAP *extension); -void e_source_ldap_set_scope (ESourceLDAP *extension, - ESourceLDAPScope scope); -ESourceLDAPSecurity - e_source_ldap_get_security (ESourceLDAP *extension); -void e_source_ldap_set_security (ESourceLDAP *extension, - ESourceLDAPSecurity security); - -GType e_source_ldap_authentication_get_type (void); -GType e_source_ldap_scope_get_type (void); -GType e_source_ldap_security_get_type (void); - -G_END_DECLS - -#endif /* E_SOURCE_LDAP_H */ |