/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Authors : * JP Rosevear * Rodrigo Moya * * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) * * This program is free software; you can redistribute it and/or * modify it under the terms of version 2 of the GNU Lesser General Public * License as published by the Free Software Foundation. * * This program 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 program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA */ #ifndef E_EWS_CONNECTION_H #define E_EWS_CONNECTION_H #include #include #include #include #include #include "e-soap-message.h" #include "ews-errors.h" #include "e-ews-folder.h" #include "e-ews-item.h" #include "camel-ews-settings.h" /* Standard GObject macros */ #define E_TYPE_EWS_CONNECTION \ (e_ews_connection_get_type ()) #define E_EWS_CONNECTION(obj) \ (G_TYPE_CHECK_INSTANCE_CAST \ ((obj), E_TYPE_EWS_CONNECTION, EEwsConnection)) #define E_EWS_CONNECTION_CLASS(cls) \ (G_TYPE_CHECK_CLASS_CAST \ ((cls), E_TYPE_EWS_CONNECTION, EEwsConnectionClass)) #define E_IS_EWS_CONNECTION(obj) \ (G_TYPE_CHECK_INSTANCE_TYPE \ ((obj), E_TYPE_EWS_CONNECTION)) #define E_IS_EWS_CONNECTION_CLASS(cls) \ (G_TYPE_CHECK_CLASS_TYPE \ ((cls), E_TYPE_EWS_CONNECTION)) #define E_EWS_CONNECTION_GET_CLASS(obj) \ (G_TYPE_INSTANCE_GET_CLASS \ ((obj), E_TYPE_EWS_CONNECTION, EEwsConnectionClass)) G_BEGIN_DECLS typedef struct _EEwsConnection EEwsConnection; typedef struct _EEwsConnectionClass EEwsConnectionClass; typedef struct _EEwsConnectionPrivate EEwsConnectionPrivate; struct _EEwsConnection { GObject parent; EEwsConnectionPrivate *priv; }; struct _EEwsConnectionClass { GObjectClass parent_class; void (* password_will_expire) (EEwsConnection *connection, gint in_days, const gchar *service_url); }; enum { EWS_PRIORITY_LOW, EWS_PRIORITY_MEDIUM, EWS_PRIORITY_HIGH }; typedef void (*EEwsRequestCreationCallback) (ESoapMessage *msg, gpointer user_data); typedef void (*EwsProgressFn) (gpointer object, gint percent); typedef void (*EEwsResponseCallback) (ESoapResponse *response, GSimpleAsyncResult *simple); typedef enum { EWS_SEARCH_AD, EWS_SEARCH_AD_CONTACTS, EWS_SEARCH_CONTACTS, EWS_SEARCH_CONTACTS_AD } EwsContactsSearchScope; typedef enum { EWS_HARD_DELETE = 1, EWS_SOFT_DELETE, EWS_MOVE_TO_DELETED_ITEMS } EwsDeleteType; typedef enum { EWS_SEND_TO_NONE = 1, EWS_SEND_ONLY_TO_ALL, EWS_SEND_TO_ALL_AND_SAVE_COPY } EwsSendMeetingCancellationsType; typedef enum { EWS_NONE_OCCURRENCES = 0, EWS_ALL_OCCURRENCES, EWS_SPECIFIED_OCCURRENCE_ONLY } EwsAffectedTaskOccurrencesType; typedef enum { E_EWS_BODY_TYPE_ANY, E_EWS_BODY_TYPE_BEST, E_EWS_BODY_TYPE_HTML, E_EWS_BODY_TYPE_TEXT } EEwsBodyType; typedef enum { E_EWS_SIZE_REQUESTED_UNKNOWN = 0, E_EWS_SIZE_REQUESTED_48X48 = 48, E_EWS_SIZE_REQUESTED_64X64 = 64, E_EWS_SIZE_REQUESTED_96X96 = 96, E_EWS_SIZE_REQUESTED_120X120 = 120, E_EWS_SIZE_REQUESTED_240X240 = 240, E_EWS_SIZE_REQUESTED_360X360 = 360, E_EWS_SIZE_REQUESTED_432X432 = 432, E_EWS_SIZE_REQUESTED_504X504 = 504, E_EWS_SIZE_REQUESTED_648X648 = 648 } EEwsSizeRequested; typedef enum { E_EWS_USER_CONFIGURATION_PROPERTIES_UNKNOWN = -1, E_EWS_USER_CONFIGURATION_PROPERTIES_ID, E_EWS_USER_CONFIGURATION_PROPERTIES_DICTIONARY, E_EWS_USER_CONFIGURATION_PROPERTIES_XMLDATA, E_EWS_USER_CONFIGURATION_PROPERTIES_BINARYDATA /*, E_EWS_USER_CONFIGURATION_PROPERTIES_ALL - skip it, be specific */ } EEwsUserConfigurationProperties; typedef struct { gchar *id; gchar *dn; gchar *name; } EwsOAL; typedef struct { gchar *type; guint32 seq; guint32 ver; guint32 size; guint32 uncompressed_size; gchar *sha; gchar *filename; } EwsOALDetails; typedef struct { gchar *sid; gchar *primary_smtp; gchar *display_name; gchar *distinguished_user; gchar *external_user; } EwsUserId; typedef enum { EwsPermissionLevel_Unknown = 0, EwsPermissionLevel_None, EwsPermissionLevel_Reviewer, EwsPermissionLevel_Author, EwsPermissionLevel_Editor, EwsPermissionLevel_Custom } EwsPermissionLevel; typedef struct { EwsUserId *user_id; EwsPermissionLevel calendar, tasks, inbox, contacts, notes, journal; gboolean meetingcopies; gboolean view_priv_items; } EwsDelegateInfo; typedef enum { EwsDelegateDeliver_DelegatesOnly, EwsDelegateDeliver_DelegatesAndMe, EwsDelegateDeliver_DelegatesAndSendInformationToMe } EwsDelegateDeliver; typedef enum { NORMAL_FIELD_URI, INDEXED_FIELD_URI, EXTENDED_FIELD_URI } EwsFieldURIType; typedef struct { gchar *distinguished_prop_set_id; gchar *prop_set_id; gchar *prop_tag; gchar *prop_name; gchar *prop_id; gchar *prop_type; } EEwsExtendedFieldURI; typedef struct { gchar *field_uri; gchar *field_index; } EEwsIndexedFieldURI; typedef struct { gchar *field_uri; GSList *extended_furis; GSList *indexed_furis; } EEwsAdditionalProps; typedef struct { gchar *order; gint uri_type; gpointer field_uri; } EwsSortOrder; typedef struct { gchar *id; gsize len; } EwsPhotoAttachmentInfo; typedef enum { E_EWS_NOTIFICATION_EVENT_COPIED = 0, E_EWS_NOTIFICATION_EVENT_CREATED, E_EWS_NOTIFICATION_EVENT_DELETED, E_EWS_NOTIFICATION_EVENT_MODIFIED, E_EWS_NOTIFICATION_EVENT_MOVED, E_EWS_NOTIFICATION_EVENT_STATUS } EEwsNotificationEventType; typedef struct { EEwsNotificationEventType type; gboolean is_item; gchar *folder_id; gchar *old_folder_id; } EEwsNotificationEvent; /* * */ typedef struct { gchar *kind; gchar *value; } EEwsCalendarTo; /* * * * * */ typedef struct { EEwsCalendarTo *to; gchar *date_time; } EEwsCalendarAbsoluteDateTransition; /* * * * * * * * */ typedef struct { EEwsCalendarTo *to; gchar *time_offset; gchar *month; gchar *day_of_week; gchar *occurrence; } EEwsCalendarRecurringDayTransition; /* * * * * * * */ typedef struct { EEwsCalendarTo *to; gchar *time_offset; gchar *month; gchar *day; } EEwsCalendarRecurringDateTransition; /* * */ typedef struct { gchar *bias; gchar *name; gchar *id; } EEwsCalendarPeriod; /* * * * * * * * * */ typedef struct { gchar *id; EEwsCalendarTo *transition; GSList *absolute_date_transitions; /* EEwsCalendarAbsoluteDateTransition */ GSList *recurring_day_transitions; /* EEwsCalendarRecurringDayTransition */ GSList *recurring_date_transitions; /* EEwsCalendarRecurringDateTransition */ } EEwsCalendarTransitionsGroup; /* * * * * * * * * */ typedef struct { EEwsCalendarTo *transition; GSList *absolute_date_transitions; /* EEwsCalendarAbsoluteDateTransition */ GSList *recurring_day_transitions; /* EEwsCalendarRecurringDayTransition */ GSList *recurring_date_transitions; /* EEwsCalendarRecurringDateTransition */ } EEwsCalendarTransitions; /* * * * * * * * * * */ typedef struct { gchar *name; gchar *id; GSList *periods; /* EEwsCalendarPeriod */ GSList *transitions_groups; /* EEwsCalendarTrasitionsGroup */ EEwsCalendarTransitions *transitions; } EEwsCalendarTimeZoneDefinition; EEwsCalendarTo * e_ews_calendar_to_new (void); void e_ews_calendar_to_free (EEwsCalendarTo *to); EEwsCalendarAbsoluteDateTransition * e_ews_calendar_absolute_date_transition_new (void); void e_ews_calendar_absolute_date_transition_free (EEwsCalendarAbsoluteDateTransition *adt); EEwsCalendarRecurringDayTransition * e_ews_calendar_recurring_day_transition_new (void); void e_ews_calendar_recurring_day_transition_free (EEwsCalendarRecurringDayTransition *rdayt); EEwsCalendarRecurringDateTransition * e_ews_calendar_recurring_date_transition_new (void); void e_ews_calendar_recurring_date_transition_free (EEwsCalendarRecurringDateTransition *rdatet); EEwsCalendarPeriod * e_ews_calendar_period_new (void); void e_ews_calendar_period_free (EEwsCalendarPeriod *period); EEwsCalendarTransitionsGroup * e_ews_calendar_transitions_group_new (void); void e_ews_calendar_transitions_group_free (EEwsCalendarTransitionsGroup *tg); EEwsCalendarTransitions * e_ews_calendar_transitions_new (void); void e_ews_calendar_transitions_free (EEwsCalendarTransitions *transitions); EEwsCalendarTimeZoneDefinition * e_ews_calendar_time_zone_definition_new (void); void e_ews_calendar_time_zone_definition_free (EEwsCalendarTimeZoneDefinition *tzd); EEwsExtendedFieldURI * e_ews_extended_field_uri_new (void); void e_ews_extended_field_uri_free (EEwsExtendedFieldURI *ex_field_uri); EEwsIndexedFieldURI * e_ews_indexed_field_uri_new (const gchar *uri, const gchar *index); void e_ews_indexed_field_uri_free (EEwsIndexedFieldURI *id_field_uri); EEwsAdditionalProps * e_ews_additional_props_new (void); void e_ews_additional_props_free (EEwsAdditionalProps *add_props); EEwsNotificationEvent * e_ews_notification_event_new (void); void e_ews_notification_event_free (EEwsNotificationEvent *event); void ews_oal_free (EwsOAL *oal); void ews_oal_details_free (EwsOALDetails *details); GType e_ews_connection_get_type (void); EEwsConnection *e_ews_connection_new (ESource *source, const gchar *uri, CamelEwsSettings *settings); EEwsConnection *e_ews_connection_new_full (ESource *source, const gchar *uri, CamelEwsSettings *settings, gboolean allow_connection_reuse); EEwsConnection *e_ews_connection_new_for_backend(EBackend *backend, ESourceRegistry *registry, const gchar *uri, CamelEwsSettings *settings); void e_ews_connection_update_credentials (EEwsConnection *cnc, const ENamedParameters *credentials); ESourceAuthenticationResult e_ews_connection_try_credentials_sync (EEwsConnection *cnc, const ENamedParameters *credentials, ESource *use_source, gchar **out_certificate_pem, GTlsCertificateFlags *out_certificate_errors, GCancellable *cancellable, GError **error); ESource * e_ews_connection_get_source (EEwsConnection *cnc); gboolean e_ews_connection_get_ssl_error_details (EEwsConnection *cnc, gchar **out_certificate_pem, GTlsCertificateFlags *out_certificate_errors); const gchar * e_ews_connection_get_uri (EEwsConnection *cnc); ESoupAuthBearer * e_ews_connection_ref_bearer_auth(EEwsConnection *cnc); void e_ews_connection_set_bearer_auth(EEwsConnection *cnc, ESoupAuthBearer *bearer_auth); const gchar * e_ews_connection_get_password (EEwsConnection *cnc); gchar * e_ews_connection_dup_password (EEwsConnection *cnc); void e_ews_connection_set_password (EEwsConnection *cnc, const gchar *password); const gchar * e_ews_connection_get_impersonate_user (EEwsConnection *cnc); GProxyResolver * e_ews_connection_ref_proxy_resolver (EEwsConnection *cnc); void e_ews_connection_set_proxy_resolver (EEwsConnection *cnc, GProxyResolver *proxy_resolver); CamelEwsSettings * e_ews_connection_ref_settings (EEwsConnection *cnc); SoupSession * e_ews_connection_ref_soup_session (EEwsConnection *cnc); gboolean e_ews_connection_get_disconnected_flag (EEwsConnection *cnc); void e_ews_connection_set_disconnected_flag (EEwsConnection *cnc, gboolean disconnected_flag); EEwsConnection *e_ews_connection_find (const gchar *uri, const gchar *username); GSList * e_ews_connection_list_existing (void); /* EEwsConnection * */ void e_ews_connection_queue_request (EEwsConnection *cnc, ESoapMessage *msg, EEwsResponseCallback cb, gint pri, GCancellable *cancellable, GSimpleAsyncResult *simple); gboolean e_ews_autodiscover_ws_url_sync (ESource *source, CamelEwsSettings *settings, const gchar *email_address, const gchar *password, gchar **out_certificate_pem, GTlsCertificateFlags *out_certificate_errors, GCancellable *cancellable, GError **error); void e_ews_autodiscover_ws_url (ESource *source, CamelEwsSettings *settings, const gchar *email_address, const gchar *password, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_autodiscover_ws_url_finish (CamelEwsSettings *settings, GAsyncResult *result, gchar **out_certificate_pem, GTlsCertificateFlags *out_certificate_errors, GError **error); const gchar * e_ews_connection_get_mailbox (EEwsConnection *cnc); void e_ews_connection_set_mailbox (EEwsConnection *cnc, const gchar *email); void ews_user_id_free (EwsUserId *id); void ews_delegate_info_free (EwsDelegateInfo *info); void e_ews_connection_sync_folder_items (EEwsConnection *cnc, gint pri, const gchar *old_sync_state, const gchar *fid, const gchar *default_props, const EEwsAdditionalProps *add_props, guint max_entries, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_sync_folder_items_finish (EEwsConnection *cnc, GAsyncResult *result, gchar **new_sync_state, gboolean *includes_last_item, GSList **items_created, GSList **items_updated, GSList **items_deleted, GError **error); gboolean e_ews_connection_sync_folder_items_sync (EEwsConnection *cnc, gint pri, const gchar *old_sync_state, const gchar *fid, const gchar *default_props, const EEwsAdditionalProps *add_props, guint max_entries, gchar **new_sync_state, gboolean *includes_last_item, GSList **items_created, GSList **items_updated, GSList **items_deleted, GCancellable *cancellable, GError **error); typedef void (*EwsConvertQueryCallback) (ESoapMessage *msg, const gchar *query, EEwsFolderType type); void e_ews_connection_find_folder_items (EEwsConnection *cnc, gint pri, EwsFolderId *fid, const gchar *props, const EEwsAdditionalProps *add_props, EwsSortOrder *sort_order, const gchar *query, GPtrArray *only_ids, /* element-type utf8 */ EEwsFolderType type, EwsConvertQueryCallback convert_query_cb, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_find_folder_items_finish (EEwsConnection *cnc, GAsyncResult *result, gboolean *includes_last_item, GSList **items, GError **error); gboolean e_ews_connection_find_folder_items_sync (EEwsConnection *cnc, gint pri, EwsFolderId *fid, const gchar *default_props, const EEwsAdditionalProps *add_props, EwsSortOrder *sort_order, const gchar *query, GPtrArray *only_ids, /* element-type utf8 */ EEwsFolderType type, gboolean *includes_last_item, GSList **items, EwsConvertQueryCallback convert_query_cb, GCancellable *cancellable, GError **error); EEwsServerVersion e_ews_connection_get_server_version (EEwsConnection *cnc); void e_ews_connection_set_server_version (EEwsConnection *cnc, EEwsServerVersion version); void e_ews_connection_set_server_version_from_string (EEwsConnection *cnc, const gchar *version); gboolean e_ews_connection_satisfies_server_version (EEwsConnection *cnc, EEwsServerVersion versio); void e_ews_connection_get_items (EEwsConnection *cnc, gint pri, const GSList *ids, const gchar *default_props, const EEwsAdditionalProps *add_props, gboolean include_mime, const gchar *mime_directory, EEwsBodyType body_type, ESoapProgressFn progress_fn, gpointer progress_data, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_get_items_finish (EEwsConnection *cnc, GAsyncResult *result, GSList **items, GError **error); gboolean e_ews_connection_get_items_sync (EEwsConnection *cnc, gint pri, const GSList *ids, const gchar *default_props, const EEwsAdditionalProps *add_props, gboolean include_mime, const gchar *mime_directory, EEwsBodyType body_type, GSList **items, ESoapProgressFn progress_fn, gpointer progress_data, GCancellable *cancellable, GError **error); void e_ews_connection_delete_items (EEwsConnection *cnc, gint pri, const GSList *ids, EwsDeleteType delete_type, EwsSendMeetingCancellationsType send_cancels, EwsAffectedTaskOccurrencesType affected_tasks, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_delete_items_finish (EEwsConnection *cnc, GAsyncResult *result, GError **error); gboolean e_ews_connection_delete_items_sync (EEwsConnection *cnc, gint pri, const GSList *ids, EwsDeleteType delete_type, EwsSendMeetingCancellationsType send_cancels, EwsAffectedTaskOccurrencesType affected_tasks, GCancellable *cancellable, GError **error); gboolean e_ews_connection_delete_items_in_chunks_sync (EEwsConnection *cnc, gint pri, const GSList *ids, EwsDeleteType delete_type, EwsSendMeetingCancellationsType send_cancels, EwsAffectedTaskOccurrencesType affected_tasks, GCancellable *cancellable, GError **error); void e_ews_connection_delete_item (EEwsConnection *cnc, gint pri, EwsId *id, guint index, EwsDeleteType delete_type, EwsSendMeetingCancellationsType send_cancels, EwsAffectedTaskOccurrencesType affected_tasks, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_delete_item_sync (EEwsConnection *cnc, gint pri, EwsId *id, guint index, EwsDeleteType delete_type, EwsSendMeetingCancellationsType send_cancels, EwsAffectedTaskOccurrencesType affected_tasks, GCancellable *cancellable, GError **error); void e_ews_connection_update_items (EEwsConnection *cnc, gint pri, const gchar *conflict_res, const gchar *msg_disposition, const gchar *send_invites, const gchar *folder_id, EEwsRequestCreationCallback create_cb, gpointer create_user_data, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_update_items_finish (EEwsConnection *cnc, GAsyncResult *result, GSList **ids, GError **error); gboolean e_ews_connection_update_items_sync (EEwsConnection *cnc, gint pri, const gchar *conflict_res, const gchar *msg_disposition, const gchar *send_invites, const gchar *folder_id, EEwsRequestCreationCallback create_cb, gpointer create_user_data, GSList **ids, GCancellable *cancellable, GError **error); void e_ews_connection_create_items (EEwsConnection *cnc, gint pri, const gchar *msg_disposition, const gchar *send_invites, const EwsFolderId *fid, EEwsRequestCreationCallback create_cb, gpointer create_user_data, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_create_items_finish (EEwsConnection *cnc, GAsyncResult *result, GSList **ids, GError **error); gboolean e_ews_connection_create_items_sync (EEwsConnection *cnc, gint pri, const gchar *msg_disposition, const gchar *send_invites, const EwsFolderId *fid, EEwsRequestCreationCallback create_cb, gpointer create_user_data, GSList **ids, GCancellable *cancellable, GError **error); void e_ews_connection_sync_folder_hierarchy (EEwsConnection *cnc, gint pri, const gchar *sync_state, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_sync_folder_hierarchy_finish (EEwsConnection *cnc, GAsyncResult *result, gchar **sync_state, gboolean *includes_last_folder, GSList **folders_created, GSList **folders_updated, GSList **folders_deleted, GError **error); gboolean e_ews_connection_sync_folder_hierarchy_sync (EEwsConnection *cnc, gint pri, const gchar *old_sync_state, gchar **new_sync_state, gboolean *includes_last_folder, GSList **folders_created, GSList **folders_updated, GSList **folders_deleted, GCancellable *cancellable, GError **error); void e_ews_connection_resolve_names (EEwsConnection *cnc, gint pri, const gchar *resolve_name, EwsContactsSearchScope scope, GSList *parent_folder_ids, gboolean fetch_contact_data, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_resolve_names_finish (EEwsConnection *cnc, GAsyncResult *result, GSList **mailboxes, GSList **contact_items, gboolean *includes_last_item, GError **error); gboolean e_ews_connection_resolve_names_sync (EEwsConnection *cnc, gint pri, const gchar *resolve_name, EwsContactsSearchScope scope, GSList *parent_folder_ids, gboolean fetch_contact_data, GSList **mailboxes, GSList **contact_items, gboolean *includes_last_item, GCancellable *cancellable, GError **error); void e_ews_connection_expand_dl (EEwsConnection *cnc, gint pri, const EwsMailbox *mb, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_expand_dl_finish (EEwsConnection *cnc, GAsyncResult *result, GSList **mailboxes, gboolean *includes_last_item, GError **error); gboolean e_ews_connection_expand_dl_sync (EEwsConnection *cnc, gint pri, const EwsMailbox *mb, GSList **mailboxes, gboolean *includes_last_item, GCancellable *cancellable, GError **error); gboolean e_ews_connection_ex_to_smtp_sync (EEwsConnection *cnc, gint pri, const gchar *name, const gchar *ex_address, gchar **smtp_address, GCancellable *cancellable, GError **error); void e_ews_connection_create_folder (EEwsConnection *cnc, gint pri, const gchar *parent_folder_id, gboolean is_distinguished_id, const gchar *folder_name, EEwsFolderType folder_type, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_create_folder_finish (EEwsConnection *cnc, GAsyncResult *result, EwsFolderId **folder_id, GError **error); gboolean e_ews_connection_create_folder_sync (EEwsConnection *cnc, gint pri, const gchar *parent_folder_id, gboolean is_distinguished_id, const gchar *folder_name, EEwsFolderType folder_type, EwsFolderId **folder_id, GCancellable *cancellable, GError **error); void e_ews_connection_delete_folder (EEwsConnection *cnc, gint pri, const gchar *folder_id, gboolean is_distinguished_id, const gchar *delete_type, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_delete_folder_finish (EEwsConnection *cnc, GAsyncResult *result, GError **error); gboolean e_ews_connection_delete_folder_sync (EEwsConnection *cnc, gint pri, const gchar *folder_id, gboolean is_distinguished_id, const gchar *delete_type, GCancellable *cancellable, GError **error); void e_ews_connection_empty_folder (EEwsConnection *cnc, gint pri, const gchar *folder_id, gboolean is_distinguished_id, const gchar *delete_type, gboolean delete_subfolders, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_empty_folder_finish (EEwsConnection *cnc, GAsyncResult *result, GError **error); gboolean e_ews_connection_empty_folder_sync (EEwsConnection *cnc, gint pri, const gchar *folder_id, gboolean is_distinguished_id, const gchar *delete_type, gboolean delete_subfolders, GCancellable *cancellable, GError **error); void e_ews_connection_update_folder (EEwsConnection *cnc, gint pri, EEwsRequestCreationCallback create_cb, gpointer create_user_data, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_update_folder_finish (EEwsConnection *cnc, GAsyncResult *result, GError **error); gboolean e_ews_connection_update_folder_sync (EEwsConnection *cnc, gint pri, EEwsRequestCreationCallback create_cb, gpointer create_user_data, GCancellable *cancellable, GError **error); void e_ews_connection_move_folder (EEwsConnection *cnc, gint pri, const gchar *to_folder, const gchar *folder, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_move_folder_finish (EEwsConnection *cnc, GAsyncResult *result, GError **error); gboolean e_ews_connection_move_folder_sync (EEwsConnection *cnc, gint pri, const gchar *to_folder, const gchar *folder, GCancellable *cancellable, GError **error); void e_ews_connection_get_folder (EEwsConnection *cnc, gint pri, const gchar *folder_shape, const EEwsAdditionalProps *add_props, GSList *folder_ids, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_get_folder_finish (EEwsConnection *cnc, GAsyncResult *result, GSList **folders, GError **error); gboolean e_ews_connection_get_folder_sync (EEwsConnection *cnc, gint pri, const gchar *folder_shape, const EEwsAdditionalProps *add_props, GSList *folder_ids, GSList **folders, GCancellable *cancellable, GError **error); void e_ews_connection_move_items (EEwsConnection *cnc, gint pri, const gchar *folder_id, gboolean docopy, const GSList *ids, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_move_items_finish (EEwsConnection *cnc, GAsyncResult *result, GSList **items, GError **error); gboolean e_ews_connection_move_items_sync (EEwsConnection *cnc, gint pri, const gchar *folder_id, gboolean docopy, const GSList *ids, GSList **items_ret, GCancellable *cancellable, GError **error); gboolean e_ews_connection_move_items_in_chunks_sync (EEwsConnection *cnc, gint pri, const gchar *folder_id, gboolean docopy, const GSList *ids, GSList **items, GCancellable *cancellable, GError **error); void e_ews_connection_create_attachments (EEwsConnection *cnc, gint pri, const EwsId *parent, const GSList *files, gboolean is_contact_photo, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_create_attachments_finish (EEwsConnection *cnc, gchar **change_key, GSList **attachments_ids, GAsyncResult *result, GError **error); gboolean e_ews_connection_create_attachments_sync (EEwsConnection *cnc, gint pri, const EwsId *parent, const GSList *files, gboolean is_contact_photo, gchar **change_key, GSList **attachments_ids, GCancellable *cancellable, GError **error); void e_ews_connection_delete_attachments (EEwsConnection *cnc, gint pri, const GSList *attachments_ids, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_delete_attachments_finish (EEwsConnection *cnc, GAsyncResult *result, gchar **new_change_key, GError **error); gboolean e_ews_connection_delete_attachments_sync (EEwsConnection *cnc, gint pri, const GSList *attachments_ids, gchar **new_change_key, GCancellable *cancellable, GError **error); void e_ews_connection_get_attachments (EEwsConnection *cnc, gint pri, const gchar *comp_uid, const GSList *ids, const gchar *cache, gboolean include_mime, ESoapProgressFn progress_fn, gpointer progress_data, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_get_attachments_finish (EEwsConnection *cnc, GAsyncResult *result, GSList **items, GError **error); gboolean e_ews_connection_get_attachments_sync (EEwsConnection *cnc, gint pri, const gchar *comp_uid, const GSList *ids, const gchar *cache, gboolean include_mime, GSList **items, ESoapProgressFn progress_fn, gpointer progress_data, GCancellable *cancellable, GError **error); gboolean e_ews_connection_get_oal_list_sync (EEwsConnection *cnc, GSList **oals, GCancellable *cancellable, GError **error); void e_ews_connection_get_oal_list (EEwsConnection *cnc, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_get_oal_list_finish (EEwsConnection *cnc, GAsyncResult *result, GSList **oals, GError **error); gboolean e_ews_connection_get_oal_detail_sync (EEwsConnection *cnc, const gchar *oal_id, const gchar *oal_element, const gchar *old_etag, GSList **elements, gchar **etag, GCancellable *cancellable, GError **error); void e_ews_connection_get_oal_detail (EEwsConnection *cnc, const gchar *oal_id, const gchar *oal_element, const gchar *etag, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_get_oal_detail_finish (EEwsConnection *cnc, GAsyncResult *result, GSList **elements, gchar **etag, GError **error); void e_ews_connection_get_free_busy (EEwsConnection *cnc, gint pri, EEwsRequestCreationCallback free_busy_cb, gpointer free_busy_user_data, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_get_free_busy_finish (EEwsConnection *cnc, GAsyncResult *result, GSList **free_busy, GError **error); gboolean e_ews_connection_get_free_busy_sync (EEwsConnection *cnc, gint pri, EEwsRequestCreationCallback free_busy_cb, gpointer create_user_data, GSList **free_busy, GCancellable *cancellable, GError **error); gboolean e_ews_connection_download_oal_file_sync (EEwsConnection *cnc, const gchar *cache_filename, EwsProgressFn progress_fn, gpointer progress_data, GCancellable *cancellable, GError **error); void e_ews_connection_download_oal_file (EEwsConnection *cnc, const gchar *cache_filename, EwsProgressFn progress_fn, gpointer progress_data, GCancellable *cancellable, GAsyncReadyCallback cb, gpointer user_data); gboolean e_ews_connection_download_oal_file_finish (EEwsConnection *cnc, GAsyncResult *result, GError **error); void e_ews_connection_get_delegate (EEwsConnection *cnc, gint pri, const gchar *mail_id, gboolean include_permissions, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_get_delegate_finish (EEwsConnection *cnc, GAsyncResult *result, EwsDelegateDeliver *deliver_to, GSList **delegates, /* EwsDelegateInfo * */ GError **error); gboolean e_ews_connection_get_delegate_sync (EEwsConnection *cnc, gint pri, const gchar *mail_id, gboolean include_permissions, EwsDelegateDeliver *deliver_to, GSList **delegates, /* EwsDelegateInfo * */ GCancellable *cancellable, GError **error); void e_ews_connection_add_delegate (EEwsConnection *cnc, gint pri, const gchar *mail_id, const GSList *delegates, /* EwsDelegateInfo * */ GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_add_delegate_finish (EEwsConnection *cnc, GAsyncResult *result, GError **error); gboolean e_ews_connection_add_delegate_sync (EEwsConnection *cnc, gint pri, const gchar *mail_id, const GSList *delegates, /* EwsDelegateInfo * */ GCancellable *cancellable, GError **error); void e_ews_connection_remove_delegate (EEwsConnection *cnc, gint pri, const gchar *mail_id, const GSList *delegate_ids, /* EwsUserId * */ GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_remove_delegate_finish (EEwsConnection *cnc, GAsyncResult *result, GError **error); gboolean e_ews_connection_remove_delegate_sync (EEwsConnection *cnc, gint pri, const gchar *mail_id, const GSList *delegate_ids, /* EwsUserId * */ GCancellable *cancellable, GError **error); void e_ews_connection_update_delegate (EEwsConnection *cnc, gint pri, const gchar *mail_id, EwsDelegateDeliver deliver_to, const GSList *delegates, /* EwsDelegateInfo * */ GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_update_delegate_finish (EEwsConnection *cnc, GAsyncResult *result, GError **error); gboolean e_ews_connection_update_delegate_sync (EEwsConnection *cnc, gint pri, const gchar *mail_id, EwsDelegateDeliver deliver_to, const GSList *delegates, /* EwsDelegateInfo * */ GCancellable *cancellable, GError **error); void e_ews_connection_get_folder_permissions (EEwsConnection *cnc, gint pri, EwsFolderId *folder_id, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_get_folder_permissions_finish (EEwsConnection *cnc, GAsyncResult *result, GSList **permissions, GError **error); gboolean e_ews_connection_get_folder_permissions_sync (EEwsConnection *cnc, gint pri, EwsFolderId *folder_id, GSList **permissions, GCancellable *cancellable, GError **error); void e_ews_connection_set_folder_permissions (EEwsConnection *cnc, gint pri, EwsFolderId *folder_id, EEwsFolderType folder_type, const GSList *permissions, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_set_folder_permissions_finish (EEwsConnection *cnc, GAsyncResult *result, GError **error); gboolean e_ews_connection_set_folder_permissions_sync (EEwsConnection *cnc, gint pri, EwsFolderId *folder_id, EEwsFolderType folder_type, const GSList *permissions, GCancellable *cancellable, GError **error); void e_ews_connection_get_password_expiration (EEwsConnection *cnc, gint pri, const gchar *mail_id, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_get_password_expiration_finish (EEwsConnection *cnc, GAsyncResult *result, gchar **exp_date, GError **error); gboolean e_ews_connection_get_password_expiration_sync (EEwsConnection *cnc, gint pri, const gchar *mail_id, gchar **exp_date, GCancellable *cancellable, GError **error); void e_ews_connection_get_folder_info (EEwsConnection *cnc, gint pri, const gchar *mail_id, const EwsFolderId *folder_id, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_get_folder_info_finish (EEwsConnection *cnc, GAsyncResult *result, EEwsFolder **folder, GError **error); gboolean e_ews_connection_get_folder_info_sync (EEwsConnection *cnc, gint pri, const gchar *mail_id, const EwsFolderId *folder_id, EEwsFolder **folder, GCancellable *cancellable, GError **error); void e_ews_connection_find_folder (EEwsConnection *cnc, gint pri, const EwsFolderId *fid, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_find_folder_finish (EEwsConnection *cnc, GAsyncResult *result, gboolean *includes_last_item, GSList **folders, GError **error); gboolean e_ews_connection_find_folder_sync (EEwsConnection *cnc, gint pri, const EwsFolderId *fid, gboolean *includes_last_item, GSList **folders, GCancellable *cancellable, GError **error); void e_ews_connection_query_auth_methods (EEwsConnection *cnc, gint pri, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_query_auth_methods_finish (EEwsConnection *cnc, GAsyncResult *result, GSList **auth_methods, GError **error); gboolean e_ews_connection_query_auth_methods_sync (EEwsConnection *cnc, gint pri, GSList **auth_methods, GCancellable *cancellable, GError **error); void e_ews_connection_enable_notifications_sync (EEwsConnection *cnc, GSList *folders, guint *subscription_key); void e_ews_connection_disable_notifications_sync (EEwsConnection *cnc, guint subscription_key); void e_ews_connection_get_server_time_zones (EEwsConnection *cnc, gint pri, GSList *msdn_locations, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_get_server_time_zones_finish (EEwsConnection *cnc, GAsyncResult *result, GSList **tzds, /* EEwsCalendarTimeZoneDefinition */ GError **error); gboolean e_ews_connection_get_server_time_zones_sync (EEwsConnection *cnc, gint pri, GSList *msdn_locations, GSList **tzds, /* EEwsCalendarTimeZoneDefinition */ GCancellable *cancellable, GError **error); void e_ews_connection_get_user_photo (EEwsConnection *cnc, gint pri, const gchar *email, EEwsSizeRequested size_requested, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_get_user_photo_finish (EEwsConnection *cnc, GAsyncResult *result, gchar **out_picture_data, /* base64-encoded */ GError **error); gboolean e_ews_connection_get_user_photo_sync (EEwsConnection *cnc, gint pri, const gchar *email, EEwsSizeRequested size_requested, gchar **out_picture_data, /* base64-encoded */ GCancellable *cancellable, GError **error); void e_ews_connection_get_user_configuration (EEwsConnection *cnc, gint pri, const EwsFolderId *fid, const gchar *config_name, EEwsUserConfigurationProperties props, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean e_ews_connection_get_user_configuration_finish (EEwsConnection *cnc, GAsyncResult *result, gchar **out_properties, GError **error); gboolean e_ews_connection_get_user_configuration_sync (EEwsConnection *cnc, gint pri, const EwsFolderId *fid, const gchar *config_name, EEwsUserConfigurationProperties props, gchar **out_properties, GCancellable *cancellable, GError **error); G_END_DECLS #endif