Blame src/server/e-ews-connection.h

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