/*
 * This file is generated by gdbus-codegen, do not modify it.
 *
 * The license of this code is the same as for the D-Bus interface description
 * it was derived from. Note that it links to GLib, so must comply with the
 * LGPL linking clauses.
 */

#ifndef __E_DBUS_SOURCE_H__
#define __E_DBUS_SOURCE_H__

#include <gio/gio.h>

G_BEGIN_DECLS


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.evolution.dataserver.Source */

#define E_DBUS_TYPE_SOURCE (e_dbus_source_get_type ())
#define E_DBUS_SOURCE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_SOURCE, EDBusSource))
#define E_DBUS_IS_SOURCE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_SOURCE))
#define E_DBUS_SOURCE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), E_DBUS_TYPE_SOURCE, EDBusSourceIface))

struct _EDBusSource;
typedef struct _EDBusSource EDBusSource;
typedef struct _EDBusSourceIface EDBusSourceIface;

struct _EDBusSourceIface
{
  GTypeInterface parent_iface;



  const gchar * (*get_connection_status) (EDBusSource *object);

  const gchar * (*get_data) (EDBusSource *object);

  const gchar * (*get_uid) (EDBusSource *object);

  void (*credentials_required) (
    EDBusSource *object,
    const gchar *arg_reason,
    const gchar *arg_certificate_pem,
    const gchar *arg_certificate_errors,
    const gchar *arg_dbus_error_name,
    const gchar *arg_dbus_error_message);

  gboolean (*handle_get_last_credentials_required_arguments) (
    EDBusSource *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_invoke_authenticate) (
    EDBusSource *object,
    GDBusMethodInvocation *invocation,
    const gchar *const *arg_credentials);

  gboolean (*handle_invoke_credentials_required) (
    EDBusSource *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_reason,
    const gchar *arg_certificate_pem,
    const gchar *arg_certificate_errors,
    const gchar *arg_dbus_error_name,
    const gchar *arg_dbus_error_message);

  void (*authenticate) (
    EDBusSource *object,
    const gchar *const *arg_credentials);

  gboolean (*handle_unset_last_credentials_required_arguments) (
    EDBusSource *object,
    GDBusMethodInvocation *invocation);

};

GType e_dbus_source_get_type (void);

GDBusInterfaceInfo *e_dbus_source_interface_info (void);
guint e_dbus_source_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void e_dbus_source_complete_invoke_credentials_required (
    EDBusSource *object,
    GDBusMethodInvocation *invocation);

void e_dbus_source_complete_get_last_credentials_required_arguments (
    EDBusSource *object,
    GDBusMethodInvocation *invocation,
    const gchar *reason,
    const gchar *certificate_pem,
    const gchar *certificate_errors,
    const gchar *dbus_error_name,
    const gchar *dbus_error_message);

void e_dbus_source_complete_unset_last_credentials_required_arguments (
    EDBusSource *object,
    GDBusMethodInvocation *invocation);

void e_dbus_source_complete_invoke_authenticate (
    EDBusSource *object,
    GDBusMethodInvocation *invocation);



/* D-Bus signal emissions functions: */
void e_dbus_source_emit_credentials_required (
    EDBusSource *object,
    const gchar *arg_reason,
    const gchar *arg_certificate_pem,
    const gchar *arg_certificate_errors,
    const gchar *arg_dbus_error_name,
    const gchar *arg_dbus_error_message);

void e_dbus_source_emit_authenticate (
    EDBusSource *object,
    const gchar *const *arg_credentials);



/* D-Bus method calls: */
void e_dbus_source_call_invoke_credentials_required (
    EDBusSource *proxy,
    const gchar *arg_reason,
    const gchar *arg_certificate_pem,
    const gchar *arg_certificate_errors,
    const gchar *arg_dbus_error_name,
    const gchar *arg_dbus_error_message,
    GDBusCallFlags call_flags,
    gint timeout_msec,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean e_dbus_source_call_invoke_credentials_required_finish (
    EDBusSource *proxy,
    GAsyncResult *res,
    GError **error);

gboolean e_dbus_source_call_invoke_credentials_required_sync (
    EDBusSource *proxy,
    const gchar *arg_reason,
    const gchar *arg_certificate_pem,
    const gchar *arg_certificate_errors,
    const gchar *arg_dbus_error_name,
    const gchar *arg_dbus_error_message,
    GDBusCallFlags call_flags,
    gint timeout_msec,
    GCancellable *cancellable,
    GError **error);

void e_dbus_source_call_get_last_credentials_required_arguments (
    EDBusSource *proxy,
    GDBusCallFlags call_flags,
    gint timeout_msec,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean e_dbus_source_call_get_last_credentials_required_arguments_finish (
    EDBusSource *proxy,
    gchar ** out_reason,
    gchar ** out_certificate_pem,
    gchar ** out_certificate_errors,
    gchar ** out_dbus_error_name,
    gchar ** out_dbus_error_message,
    GAsyncResult *res,
    GError **error);

gboolean e_dbus_source_call_get_last_credentials_required_arguments_sync (
    EDBusSource *proxy,
    GDBusCallFlags call_flags,
    gint timeout_msec,
    gchar ** out_reason,
    gchar ** out_certificate_pem,
    gchar ** out_certificate_errors,
    gchar ** out_dbus_error_name,
    gchar ** out_dbus_error_message,
    GCancellable *cancellable,
    GError **error);

void e_dbus_source_call_unset_last_credentials_required_arguments (
    EDBusSource *proxy,
    GDBusCallFlags call_flags,
    gint timeout_msec,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean e_dbus_source_call_unset_last_credentials_required_arguments_finish (
    EDBusSource *proxy,
    GAsyncResult *res,
    GError **error);

gboolean e_dbus_source_call_unset_last_credentials_required_arguments_sync (
    EDBusSource *proxy,
    GDBusCallFlags call_flags,
    gint timeout_msec,
    GCancellable *cancellable,
    GError **error);

void e_dbus_source_call_invoke_authenticate (
    EDBusSource *proxy,
    const gchar *const *arg_credentials,
    GDBusCallFlags call_flags,
    gint timeout_msec,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean e_dbus_source_call_invoke_authenticate_finish (
    EDBusSource *proxy,
    GAsyncResult *res,
    GError **error);

gboolean e_dbus_source_call_invoke_authenticate_sync (
    EDBusSource *proxy,
    const gchar *const *arg_credentials,
    GDBusCallFlags call_flags,
    gint timeout_msec,
    GCancellable *cancellable,
    GError **error);



/* D-Bus property accessors: */
const gchar *e_dbus_source_get_uid (EDBusSource *object);
gchar *e_dbus_source_dup_uid (EDBusSource *object);
void e_dbus_source_set_uid (EDBusSource *object, const gchar *value);

const gchar *e_dbus_source_get_data (EDBusSource *object);
gchar *e_dbus_source_dup_data (EDBusSource *object);
void e_dbus_source_set_data (EDBusSource *object, const gchar *value);

const gchar *e_dbus_source_get_connection_status (EDBusSource *object);
gchar *e_dbus_source_dup_connection_status (EDBusSource *object);
void e_dbus_source_set_connection_status (EDBusSource *object, const gchar *value);


/* ---- */

#define E_DBUS_TYPE_SOURCE_PROXY (e_dbus_source_proxy_get_type ())
#define E_DBUS_SOURCE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_SOURCE_PROXY, EDBusSourceProxy))
#define E_DBUS_SOURCE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), E_DBUS_TYPE_SOURCE_PROXY, EDBusSourceProxyClass))
#define E_DBUS_SOURCE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), E_DBUS_TYPE_SOURCE_PROXY, EDBusSourceProxyClass))
#define E_DBUS_IS_SOURCE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_SOURCE_PROXY))
#define E_DBUS_IS_SOURCE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_DBUS_TYPE_SOURCE_PROXY))

typedef struct _EDBusSourceProxy EDBusSourceProxy;
typedef struct _EDBusSourceProxyClass EDBusSourceProxyClass;
typedef struct _EDBusSourceProxyPrivate EDBusSourceProxyPrivate;

struct _EDBusSourceProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  EDBusSourceProxyPrivate *priv;
};

struct _EDBusSourceProxyClass
{
  GDBusProxyClass parent_class;
};

GType e_dbus_source_proxy_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (EDBusSourceProxy, g_object_unref)
#endif

void e_dbus_source_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
EDBusSource *e_dbus_source_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
EDBusSource *e_dbus_source_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void e_dbus_source_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
EDBusSource *e_dbus_source_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
EDBusSource *e_dbus_source_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define E_DBUS_TYPE_SOURCE_SKELETON (e_dbus_source_skeleton_get_type ())
#define E_DBUS_SOURCE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_SOURCE_SKELETON, EDBusSourceSkeleton))
#define E_DBUS_SOURCE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), E_DBUS_TYPE_SOURCE_SKELETON, EDBusSourceSkeletonClass))
#define E_DBUS_SOURCE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), E_DBUS_TYPE_SOURCE_SKELETON, EDBusSourceSkeletonClass))
#define E_DBUS_IS_SOURCE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_SOURCE_SKELETON))
#define E_DBUS_IS_SOURCE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_DBUS_TYPE_SOURCE_SKELETON))

typedef struct _EDBusSourceSkeleton EDBusSourceSkeleton;
typedef struct _EDBusSourceSkeletonClass EDBusSourceSkeletonClass;
typedef struct _EDBusSourceSkeletonPrivate EDBusSourceSkeletonPrivate;

struct _EDBusSourceSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  EDBusSourceSkeletonPrivate *priv;
};

struct _EDBusSourceSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType e_dbus_source_skeleton_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (EDBusSourceSkeleton, g_object_unref)
#endif

EDBusSource *e_dbus_source_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.evolution.dataserver.Source.Removable */

#define E_DBUS_TYPE_SOURCE_REMOVABLE (e_dbus_source_removable_get_type ())
#define E_DBUS_SOURCE_REMOVABLE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_SOURCE_REMOVABLE, EDBusSourceRemovable))
#define E_DBUS_IS_SOURCE_REMOVABLE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_SOURCE_REMOVABLE))
#define E_DBUS_SOURCE_REMOVABLE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), E_DBUS_TYPE_SOURCE_REMOVABLE, EDBusSourceRemovableIface))

struct _EDBusSourceRemovable;
typedef struct _EDBusSourceRemovable EDBusSourceRemovable;
typedef struct _EDBusSourceRemovableIface EDBusSourceRemovableIface;

struct _EDBusSourceRemovableIface
{
  GTypeInterface parent_iface;

  gboolean (*handle_remove) (
    EDBusSourceRemovable *object,
    GDBusMethodInvocation *invocation);

};

GType e_dbus_source_removable_get_type (void);

GDBusInterfaceInfo *e_dbus_source_removable_interface_info (void);
guint e_dbus_source_removable_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void e_dbus_source_removable_complete_remove (
    EDBusSourceRemovable *object,
    GDBusMethodInvocation *invocation);



/* D-Bus method calls: */
void e_dbus_source_removable_call_remove (
    EDBusSourceRemovable *proxy,
    GDBusCallFlags call_flags,
    gint timeout_msec,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean e_dbus_source_removable_call_remove_finish (
    EDBusSourceRemovable *proxy,
    GAsyncResult *res,
    GError **error);

gboolean e_dbus_source_removable_call_remove_sync (
    EDBusSourceRemovable *proxy,
    GDBusCallFlags call_flags,
    gint timeout_msec,
    GCancellable *cancellable,
    GError **error);



/* ---- */

#define E_DBUS_TYPE_SOURCE_REMOVABLE_PROXY (e_dbus_source_removable_proxy_get_type ())
#define E_DBUS_SOURCE_REMOVABLE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_SOURCE_REMOVABLE_PROXY, EDBusSourceRemovableProxy))
#define E_DBUS_SOURCE_REMOVABLE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), E_DBUS_TYPE_SOURCE_REMOVABLE_PROXY, EDBusSourceRemovableProxyClass))
#define E_DBUS_SOURCE_REMOVABLE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), E_DBUS_TYPE_SOURCE_REMOVABLE_PROXY, EDBusSourceRemovableProxyClass))
#define E_DBUS_IS_SOURCE_REMOVABLE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_SOURCE_REMOVABLE_PROXY))
#define E_DBUS_IS_SOURCE_REMOVABLE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_DBUS_TYPE_SOURCE_REMOVABLE_PROXY))

typedef struct _EDBusSourceRemovableProxy EDBusSourceRemovableProxy;
typedef struct _EDBusSourceRemovableProxyClass EDBusSourceRemovableProxyClass;
typedef struct _EDBusSourceRemovableProxyPrivate EDBusSourceRemovableProxyPrivate;

struct _EDBusSourceRemovableProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  EDBusSourceRemovableProxyPrivate *priv;
};

struct _EDBusSourceRemovableProxyClass
{
  GDBusProxyClass parent_class;
};

GType e_dbus_source_removable_proxy_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (EDBusSourceRemovableProxy, g_object_unref)
#endif

void e_dbus_source_removable_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
EDBusSourceRemovable *e_dbus_source_removable_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
EDBusSourceRemovable *e_dbus_source_removable_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void e_dbus_source_removable_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
EDBusSourceRemovable *e_dbus_source_removable_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
EDBusSourceRemovable *e_dbus_source_removable_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define E_DBUS_TYPE_SOURCE_REMOVABLE_SKELETON (e_dbus_source_removable_skeleton_get_type ())
#define E_DBUS_SOURCE_REMOVABLE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_SOURCE_REMOVABLE_SKELETON, EDBusSourceRemovableSkeleton))
#define E_DBUS_SOURCE_REMOVABLE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), E_DBUS_TYPE_SOURCE_REMOVABLE_SKELETON, EDBusSourceRemovableSkeletonClass))
#define E_DBUS_SOURCE_REMOVABLE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), E_DBUS_TYPE_SOURCE_REMOVABLE_SKELETON, EDBusSourceRemovableSkeletonClass))
#define E_DBUS_IS_SOURCE_REMOVABLE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_SOURCE_REMOVABLE_SKELETON))
#define E_DBUS_IS_SOURCE_REMOVABLE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_DBUS_TYPE_SOURCE_REMOVABLE_SKELETON))

typedef struct _EDBusSourceRemovableSkeleton EDBusSourceRemovableSkeleton;
typedef struct _EDBusSourceRemovableSkeletonClass EDBusSourceRemovableSkeletonClass;
typedef struct _EDBusSourceRemovableSkeletonPrivate EDBusSourceRemovableSkeletonPrivate;

struct _EDBusSourceRemovableSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  EDBusSourceRemovableSkeletonPrivate *priv;
};

struct _EDBusSourceRemovableSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType e_dbus_source_removable_skeleton_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (EDBusSourceRemovableSkeleton, g_object_unref)
#endif

EDBusSourceRemovable *e_dbus_source_removable_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.evolution.dataserver.Source.Writable */

#define E_DBUS_TYPE_SOURCE_WRITABLE (e_dbus_source_writable_get_type ())
#define E_DBUS_SOURCE_WRITABLE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_SOURCE_WRITABLE, EDBusSourceWritable))
#define E_DBUS_IS_SOURCE_WRITABLE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_SOURCE_WRITABLE))
#define E_DBUS_SOURCE_WRITABLE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), E_DBUS_TYPE_SOURCE_WRITABLE, EDBusSourceWritableIface))

struct _EDBusSourceWritable;
typedef struct _EDBusSourceWritable EDBusSourceWritable;
typedef struct _EDBusSourceWritableIface EDBusSourceWritableIface;

struct _EDBusSourceWritableIface
{
  GTypeInterface parent_iface;

  gboolean (*handle_write) (
    EDBusSourceWritable *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_data);

};

GType e_dbus_source_writable_get_type (void);

GDBusInterfaceInfo *e_dbus_source_writable_interface_info (void);
guint e_dbus_source_writable_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void e_dbus_source_writable_complete_write (
    EDBusSourceWritable *object,
    GDBusMethodInvocation *invocation);



/* D-Bus method calls: */
void e_dbus_source_writable_call_write (
    EDBusSourceWritable *proxy,
    const gchar *arg_data,
    GDBusCallFlags call_flags,
    gint timeout_msec,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean e_dbus_source_writable_call_write_finish (
    EDBusSourceWritable *proxy,
    GAsyncResult *res,
    GError **error);

gboolean e_dbus_source_writable_call_write_sync (
    EDBusSourceWritable *proxy,
    const gchar *arg_data,
    GDBusCallFlags call_flags,
    gint timeout_msec,
    GCancellable *cancellable,
    GError **error);



/* ---- */

#define E_DBUS_TYPE_SOURCE_WRITABLE_PROXY (e_dbus_source_writable_proxy_get_type ())
#define E_DBUS_SOURCE_WRITABLE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_SOURCE_WRITABLE_PROXY, EDBusSourceWritableProxy))
#define E_DBUS_SOURCE_WRITABLE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), E_DBUS_TYPE_SOURCE_WRITABLE_PROXY, EDBusSourceWritableProxyClass))
#define E_DBUS_SOURCE_WRITABLE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), E_DBUS_TYPE_SOURCE_WRITABLE_PROXY, EDBusSourceWritableProxyClass))
#define E_DBUS_IS_SOURCE_WRITABLE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_SOURCE_WRITABLE_PROXY))
#define E_DBUS_IS_SOURCE_WRITABLE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_DBUS_TYPE_SOURCE_WRITABLE_PROXY))

typedef struct _EDBusSourceWritableProxy EDBusSourceWritableProxy;
typedef struct _EDBusSourceWritableProxyClass EDBusSourceWritableProxyClass;
typedef struct _EDBusSourceWritableProxyPrivate EDBusSourceWritableProxyPrivate;

struct _EDBusSourceWritableProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  EDBusSourceWritableProxyPrivate *priv;
};

struct _EDBusSourceWritableProxyClass
{
  GDBusProxyClass parent_class;
};

GType e_dbus_source_writable_proxy_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (EDBusSourceWritableProxy, g_object_unref)
#endif

void e_dbus_source_writable_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
EDBusSourceWritable *e_dbus_source_writable_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
EDBusSourceWritable *e_dbus_source_writable_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void e_dbus_source_writable_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
EDBusSourceWritable *e_dbus_source_writable_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
EDBusSourceWritable *e_dbus_source_writable_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define E_DBUS_TYPE_SOURCE_WRITABLE_SKELETON (e_dbus_source_writable_skeleton_get_type ())
#define E_DBUS_SOURCE_WRITABLE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_SOURCE_WRITABLE_SKELETON, EDBusSourceWritableSkeleton))
#define E_DBUS_SOURCE_WRITABLE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), E_DBUS_TYPE_SOURCE_WRITABLE_SKELETON, EDBusSourceWritableSkeletonClass))
#define E_DBUS_SOURCE_WRITABLE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), E_DBUS_TYPE_SOURCE_WRITABLE_SKELETON, EDBusSourceWritableSkeletonClass))
#define E_DBUS_IS_SOURCE_WRITABLE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_SOURCE_WRITABLE_SKELETON))
#define E_DBUS_IS_SOURCE_WRITABLE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_DBUS_TYPE_SOURCE_WRITABLE_SKELETON))

typedef struct _EDBusSourceWritableSkeleton EDBusSourceWritableSkeleton;
typedef struct _EDBusSourceWritableSkeletonClass EDBusSourceWritableSkeletonClass;
typedef struct _EDBusSourceWritableSkeletonPrivate EDBusSourceWritableSkeletonPrivate;

struct _EDBusSourceWritableSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  EDBusSourceWritableSkeletonPrivate *priv;
};

struct _EDBusSourceWritableSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType e_dbus_source_writable_skeleton_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (EDBusSourceWritableSkeleton, g_object_unref)
#endif

EDBusSourceWritable *e_dbus_source_writable_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.evolution.dataserver.Source.RemoteCreatable */

#define E_DBUS_TYPE_SOURCE_REMOTE_CREATABLE (e_dbus_source_remote_creatable_get_type ())
#define E_DBUS_SOURCE_REMOTE_CREATABLE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_SOURCE_REMOTE_CREATABLE, EDBusSourceRemoteCreatable))
#define E_DBUS_IS_SOURCE_REMOTE_CREATABLE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_SOURCE_REMOTE_CREATABLE))
#define E_DBUS_SOURCE_REMOTE_CREATABLE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), E_DBUS_TYPE_SOURCE_REMOTE_CREATABLE, EDBusSourceRemoteCreatableIface))

struct _EDBusSourceRemoteCreatable;
typedef struct _EDBusSourceRemoteCreatable EDBusSourceRemoteCreatable;
typedef struct _EDBusSourceRemoteCreatableIface EDBusSourceRemoteCreatableIface;

struct _EDBusSourceRemoteCreatableIface
{
  GTypeInterface parent_iface;

  gboolean (*handle_create) (
    EDBusSourceRemoteCreatable *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_uid,
    const gchar *arg_data);

};

GType e_dbus_source_remote_creatable_get_type (void);

GDBusInterfaceInfo *e_dbus_source_remote_creatable_interface_info (void);
guint e_dbus_source_remote_creatable_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void e_dbus_source_remote_creatable_complete_create (
    EDBusSourceRemoteCreatable *object,
    GDBusMethodInvocation *invocation);



/* D-Bus method calls: */
void e_dbus_source_remote_creatable_call_create (
    EDBusSourceRemoteCreatable *proxy,
    const gchar *arg_uid,
    const gchar *arg_data,
    GDBusCallFlags call_flags,
    gint timeout_msec,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean e_dbus_source_remote_creatable_call_create_finish (
    EDBusSourceRemoteCreatable *proxy,
    GAsyncResult *res,
    GError **error);

gboolean e_dbus_source_remote_creatable_call_create_sync (
    EDBusSourceRemoteCreatable *proxy,
    const gchar *arg_uid,
    const gchar *arg_data,
    GDBusCallFlags call_flags,
    gint timeout_msec,
    GCancellable *cancellable,
    GError **error);



/* ---- */

#define E_DBUS_TYPE_SOURCE_REMOTE_CREATABLE_PROXY (e_dbus_source_remote_creatable_proxy_get_type ())
#define E_DBUS_SOURCE_REMOTE_CREATABLE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_SOURCE_REMOTE_CREATABLE_PROXY, EDBusSourceRemoteCreatableProxy))
#define E_DBUS_SOURCE_REMOTE_CREATABLE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), E_DBUS_TYPE_SOURCE_REMOTE_CREATABLE_PROXY, EDBusSourceRemoteCreatableProxyClass))
#define E_DBUS_SOURCE_REMOTE_CREATABLE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), E_DBUS_TYPE_SOURCE_REMOTE_CREATABLE_PROXY, EDBusSourceRemoteCreatableProxyClass))
#define E_DBUS_IS_SOURCE_REMOTE_CREATABLE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_SOURCE_REMOTE_CREATABLE_PROXY))
#define E_DBUS_IS_SOURCE_REMOTE_CREATABLE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_DBUS_TYPE_SOURCE_REMOTE_CREATABLE_PROXY))

typedef struct _EDBusSourceRemoteCreatableProxy EDBusSourceRemoteCreatableProxy;
typedef struct _EDBusSourceRemoteCreatableProxyClass EDBusSourceRemoteCreatableProxyClass;
typedef struct _EDBusSourceRemoteCreatableProxyPrivate EDBusSourceRemoteCreatableProxyPrivate;

struct _EDBusSourceRemoteCreatableProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  EDBusSourceRemoteCreatableProxyPrivate *priv;
};

struct _EDBusSourceRemoteCreatableProxyClass
{
  GDBusProxyClass parent_class;
};

GType e_dbus_source_remote_creatable_proxy_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (EDBusSourceRemoteCreatableProxy, g_object_unref)
#endif

void e_dbus_source_remote_creatable_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
EDBusSourceRemoteCreatable *e_dbus_source_remote_creatable_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
EDBusSourceRemoteCreatable *e_dbus_source_remote_creatable_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void e_dbus_source_remote_creatable_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
EDBusSourceRemoteCreatable *e_dbus_source_remote_creatable_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
EDBusSourceRemoteCreatable *e_dbus_source_remote_creatable_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define E_DBUS_TYPE_SOURCE_REMOTE_CREATABLE_SKELETON (e_dbus_source_remote_creatable_skeleton_get_type ())
#define E_DBUS_SOURCE_REMOTE_CREATABLE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_SOURCE_REMOTE_CREATABLE_SKELETON, EDBusSourceRemoteCreatableSkeleton))
#define E_DBUS_SOURCE_REMOTE_CREATABLE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), E_DBUS_TYPE_SOURCE_REMOTE_CREATABLE_SKELETON, EDBusSourceRemoteCreatableSkeletonClass))
#define E_DBUS_SOURCE_REMOTE_CREATABLE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), E_DBUS_TYPE_SOURCE_REMOTE_CREATABLE_SKELETON, EDBusSourceRemoteCreatableSkeletonClass))
#define E_DBUS_IS_SOURCE_REMOTE_CREATABLE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_SOURCE_REMOTE_CREATABLE_SKELETON))
#define E_DBUS_IS_SOURCE_REMOTE_CREATABLE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_DBUS_TYPE_SOURCE_REMOTE_CREATABLE_SKELETON))

typedef struct _EDBusSourceRemoteCreatableSkeleton EDBusSourceRemoteCreatableSkeleton;
typedef struct _EDBusSourceRemoteCreatableSkeletonClass EDBusSourceRemoteCreatableSkeletonClass;
typedef struct _EDBusSourceRemoteCreatableSkeletonPrivate EDBusSourceRemoteCreatableSkeletonPrivate;

struct _EDBusSourceRemoteCreatableSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  EDBusSourceRemoteCreatableSkeletonPrivate *priv;
};

struct _EDBusSourceRemoteCreatableSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType e_dbus_source_remote_creatable_skeleton_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (EDBusSourceRemoteCreatableSkeleton, g_object_unref)
#endif

EDBusSourceRemoteCreatable *e_dbus_source_remote_creatable_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.evolution.dataserver.Source.RemoteDeletable */

#define E_DBUS_TYPE_SOURCE_REMOTE_DELETABLE (e_dbus_source_remote_deletable_get_type ())
#define E_DBUS_SOURCE_REMOTE_DELETABLE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_SOURCE_REMOTE_DELETABLE, EDBusSourceRemoteDeletable))
#define E_DBUS_IS_SOURCE_REMOTE_DELETABLE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_SOURCE_REMOTE_DELETABLE))
#define E_DBUS_SOURCE_REMOTE_DELETABLE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), E_DBUS_TYPE_SOURCE_REMOTE_DELETABLE, EDBusSourceRemoteDeletableIface))

struct _EDBusSourceRemoteDeletable;
typedef struct _EDBusSourceRemoteDeletable EDBusSourceRemoteDeletable;
typedef struct _EDBusSourceRemoteDeletableIface EDBusSourceRemoteDeletableIface;

struct _EDBusSourceRemoteDeletableIface
{
  GTypeInterface parent_iface;

  gboolean (*handle_delete) (
    EDBusSourceRemoteDeletable *object,
    GDBusMethodInvocation *invocation);

};

GType e_dbus_source_remote_deletable_get_type (void);

GDBusInterfaceInfo *e_dbus_source_remote_deletable_interface_info (void);
guint e_dbus_source_remote_deletable_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void e_dbus_source_remote_deletable_complete_delete (
    EDBusSourceRemoteDeletable *object,
    GDBusMethodInvocation *invocation);



/* D-Bus method calls: */
void e_dbus_source_remote_deletable_call_delete (
    EDBusSourceRemoteDeletable *proxy,
    GDBusCallFlags call_flags,
    gint timeout_msec,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean e_dbus_source_remote_deletable_call_delete_finish (
    EDBusSourceRemoteDeletable *proxy,
    GAsyncResult *res,
    GError **error);

gboolean e_dbus_source_remote_deletable_call_delete_sync (
    EDBusSourceRemoteDeletable *proxy,
    GDBusCallFlags call_flags,
    gint timeout_msec,
    GCancellable *cancellable,
    GError **error);



/* ---- */

#define E_DBUS_TYPE_SOURCE_REMOTE_DELETABLE_PROXY (e_dbus_source_remote_deletable_proxy_get_type ())
#define E_DBUS_SOURCE_REMOTE_DELETABLE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_SOURCE_REMOTE_DELETABLE_PROXY, EDBusSourceRemoteDeletableProxy))
#define E_DBUS_SOURCE_REMOTE_DELETABLE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), E_DBUS_TYPE_SOURCE_REMOTE_DELETABLE_PROXY, EDBusSourceRemoteDeletableProxyClass))
#define E_DBUS_SOURCE_REMOTE_DELETABLE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), E_DBUS_TYPE_SOURCE_REMOTE_DELETABLE_PROXY, EDBusSourceRemoteDeletableProxyClass))
#define E_DBUS_IS_SOURCE_REMOTE_DELETABLE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_SOURCE_REMOTE_DELETABLE_PROXY))
#define E_DBUS_IS_SOURCE_REMOTE_DELETABLE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_DBUS_TYPE_SOURCE_REMOTE_DELETABLE_PROXY))

typedef struct _EDBusSourceRemoteDeletableProxy EDBusSourceRemoteDeletableProxy;
typedef struct _EDBusSourceRemoteDeletableProxyClass EDBusSourceRemoteDeletableProxyClass;
typedef struct _EDBusSourceRemoteDeletableProxyPrivate EDBusSourceRemoteDeletableProxyPrivate;

struct _EDBusSourceRemoteDeletableProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  EDBusSourceRemoteDeletableProxyPrivate *priv;
};

struct _EDBusSourceRemoteDeletableProxyClass
{
  GDBusProxyClass parent_class;
};

GType e_dbus_source_remote_deletable_proxy_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (EDBusSourceRemoteDeletableProxy, g_object_unref)
#endif

void e_dbus_source_remote_deletable_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
EDBusSourceRemoteDeletable *e_dbus_source_remote_deletable_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
EDBusSourceRemoteDeletable *e_dbus_source_remote_deletable_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void e_dbus_source_remote_deletable_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
EDBusSourceRemoteDeletable *e_dbus_source_remote_deletable_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
EDBusSourceRemoteDeletable *e_dbus_source_remote_deletable_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define E_DBUS_TYPE_SOURCE_REMOTE_DELETABLE_SKELETON (e_dbus_source_remote_deletable_skeleton_get_type ())
#define E_DBUS_SOURCE_REMOTE_DELETABLE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_SOURCE_REMOTE_DELETABLE_SKELETON, EDBusSourceRemoteDeletableSkeleton))
#define E_DBUS_SOURCE_REMOTE_DELETABLE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), E_DBUS_TYPE_SOURCE_REMOTE_DELETABLE_SKELETON, EDBusSourceRemoteDeletableSkeletonClass))
#define E_DBUS_SOURCE_REMOTE_DELETABLE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), E_DBUS_TYPE_SOURCE_REMOTE_DELETABLE_SKELETON, EDBusSourceRemoteDeletableSkeletonClass))
#define E_DBUS_IS_SOURCE_REMOTE_DELETABLE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_SOURCE_REMOTE_DELETABLE_SKELETON))
#define E_DBUS_IS_SOURCE_REMOTE_DELETABLE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_DBUS_TYPE_SOURCE_REMOTE_DELETABLE_SKELETON))

typedef struct _EDBusSourceRemoteDeletableSkeleton EDBusSourceRemoteDeletableSkeleton;
typedef struct _EDBusSourceRemoteDeletableSkeletonClass EDBusSourceRemoteDeletableSkeletonClass;
typedef struct _EDBusSourceRemoteDeletableSkeletonPrivate EDBusSourceRemoteDeletableSkeletonPrivate;

struct _EDBusSourceRemoteDeletableSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  EDBusSourceRemoteDeletableSkeletonPrivate *priv;
};

struct _EDBusSourceRemoteDeletableSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType e_dbus_source_remote_deletable_skeleton_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (EDBusSourceRemoteDeletableSkeleton, g_object_unref)
#endif

EDBusSourceRemoteDeletable *e_dbus_source_remote_deletable_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.evolution.dataserver.Source.OAuth2Support */

#define E_DBUS_TYPE_SOURCE_OAUTH2_SUPPORT (e_dbus_source_oauth2_support_get_type ())
#define E_DBUS_SOURCE_OAUTH2_SUPPORT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_SOURCE_OAUTH2_SUPPORT, EDBusSourceOAuth2Support))
#define E_DBUS_IS_SOURCE_OAUTH2_SUPPORT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_SOURCE_OAUTH2_SUPPORT))
#define E_DBUS_SOURCE_OAUTH2_SUPPORT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), E_DBUS_TYPE_SOURCE_OAUTH2_SUPPORT, EDBusSourceOAuth2SupportIface))

struct _EDBusSourceOAuth2Support;
typedef struct _EDBusSourceOAuth2Support EDBusSourceOAuth2Support;
typedef struct _EDBusSourceOAuth2SupportIface EDBusSourceOAuth2SupportIface;

struct _EDBusSourceOAuth2SupportIface
{
  GTypeInterface parent_iface;

  gboolean (*handle_get_access_token) (
    EDBusSourceOAuth2Support *object,
    GDBusMethodInvocation *invocation);

};

GType e_dbus_source_oauth2_support_get_type (void);

GDBusInterfaceInfo *e_dbus_source_oauth2_support_interface_info (void);
guint e_dbus_source_oauth2_support_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void e_dbus_source_oauth2_support_complete_get_access_token (
    EDBusSourceOAuth2Support *object,
    GDBusMethodInvocation *invocation,
    const gchar *access_token,
    gint expires_in);



/* D-Bus method calls: */
void e_dbus_source_oauth2_support_call_get_access_token (
    EDBusSourceOAuth2Support *proxy,
    GDBusCallFlags call_flags,
    gint timeout_msec,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean e_dbus_source_oauth2_support_call_get_access_token_finish (
    EDBusSourceOAuth2Support *proxy,
    gchar ** out_access_token,
    gint* out_expires_in,
    GAsyncResult *res,
    GError **error);

gboolean e_dbus_source_oauth2_support_call_get_access_token_sync (
    EDBusSourceOAuth2Support *proxy,
    GDBusCallFlags call_flags,
    gint timeout_msec,
    gchar ** out_access_token,
    gint* out_expires_in,
    GCancellable *cancellable,
    GError **error);



/* ---- */

#define E_DBUS_TYPE_SOURCE_OAUTH2_SUPPORT_PROXY (e_dbus_source_oauth2_support_proxy_get_type ())
#define E_DBUS_SOURCE_OAUTH2_SUPPORT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_SOURCE_OAUTH2_SUPPORT_PROXY, EDBusSourceOAuth2SupportProxy))
#define E_DBUS_SOURCE_OAUTH2_SUPPORT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), E_DBUS_TYPE_SOURCE_OAUTH2_SUPPORT_PROXY, EDBusSourceOAuth2SupportProxyClass))
#define E_DBUS_SOURCE_OAUTH2_SUPPORT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), E_DBUS_TYPE_SOURCE_OAUTH2_SUPPORT_PROXY, EDBusSourceOAuth2SupportProxyClass))
#define E_DBUS_IS_SOURCE_OAUTH2_SUPPORT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_SOURCE_OAUTH2_SUPPORT_PROXY))
#define E_DBUS_IS_SOURCE_OAUTH2_SUPPORT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_DBUS_TYPE_SOURCE_OAUTH2_SUPPORT_PROXY))

typedef struct _EDBusSourceOAuth2SupportProxy EDBusSourceOAuth2SupportProxy;
typedef struct _EDBusSourceOAuth2SupportProxyClass EDBusSourceOAuth2SupportProxyClass;
typedef struct _EDBusSourceOAuth2SupportProxyPrivate EDBusSourceOAuth2SupportProxyPrivate;

struct _EDBusSourceOAuth2SupportProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  EDBusSourceOAuth2SupportProxyPrivate *priv;
};

struct _EDBusSourceOAuth2SupportProxyClass
{
  GDBusProxyClass parent_class;
};

GType e_dbus_source_oauth2_support_proxy_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (EDBusSourceOAuth2SupportProxy, g_object_unref)
#endif

void e_dbus_source_oauth2_support_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
EDBusSourceOAuth2Support *e_dbus_source_oauth2_support_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
EDBusSourceOAuth2Support *e_dbus_source_oauth2_support_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void e_dbus_source_oauth2_support_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
EDBusSourceOAuth2Support *e_dbus_source_oauth2_support_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
EDBusSourceOAuth2Support *e_dbus_source_oauth2_support_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define E_DBUS_TYPE_SOURCE_OAUTH2_SUPPORT_SKELETON (e_dbus_source_oauth2_support_skeleton_get_type ())
#define E_DBUS_SOURCE_OAUTH2_SUPPORT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_SOURCE_OAUTH2_SUPPORT_SKELETON, EDBusSourceOAuth2SupportSkeleton))
#define E_DBUS_SOURCE_OAUTH2_SUPPORT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), E_DBUS_TYPE_SOURCE_OAUTH2_SUPPORT_SKELETON, EDBusSourceOAuth2SupportSkeletonClass))
#define E_DBUS_SOURCE_OAUTH2_SUPPORT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), E_DBUS_TYPE_SOURCE_OAUTH2_SUPPORT_SKELETON, EDBusSourceOAuth2SupportSkeletonClass))
#define E_DBUS_IS_SOURCE_OAUTH2_SUPPORT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_SOURCE_OAUTH2_SUPPORT_SKELETON))
#define E_DBUS_IS_SOURCE_OAUTH2_SUPPORT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_DBUS_TYPE_SOURCE_OAUTH2_SUPPORT_SKELETON))

typedef struct _EDBusSourceOAuth2SupportSkeleton EDBusSourceOAuth2SupportSkeleton;
typedef struct _EDBusSourceOAuth2SupportSkeletonClass EDBusSourceOAuth2SupportSkeletonClass;
typedef struct _EDBusSourceOAuth2SupportSkeletonPrivate EDBusSourceOAuth2SupportSkeletonPrivate;

struct _EDBusSourceOAuth2SupportSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  EDBusSourceOAuth2SupportSkeletonPrivate *priv;
};

struct _EDBusSourceOAuth2SupportSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType e_dbus_source_oauth2_support_skeleton_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (EDBusSourceOAuth2SupportSkeleton, g_object_unref)
#endif

EDBusSourceOAuth2Support *e_dbus_source_oauth2_support_skeleton_new (void);


/* ---- */

#define E_DBUS_TYPE_OBJECT (e_dbus_object_get_type ())
#define E_DBUS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_OBJECT, EDBusObject))
#define E_DBUS_IS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_OBJECT))
#define E_DBUS_OBJECT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), E_DBUS_TYPE_OBJECT, EDBusObject))

struct _EDBusObject;
typedef struct _EDBusObject EDBusObject;
typedef struct _EDBusObjectIface EDBusObjectIface;

struct _EDBusObjectIface
{
  GTypeInterface parent_iface;
};

GType e_dbus_object_get_type (void);

EDBusSource *e_dbus_object_get_source (EDBusObject *object);
EDBusSourceRemovable *e_dbus_object_get_source_removable (EDBusObject *object);
EDBusSourceWritable *e_dbus_object_get_source_writable (EDBusObject *object);
EDBusSourceRemoteCreatable *e_dbus_object_get_source_remote_creatable (EDBusObject *object);
EDBusSourceRemoteDeletable *e_dbus_object_get_source_remote_deletable (EDBusObject *object);
EDBusSourceOAuth2Support *e_dbus_object_get_source_oauth2_support (EDBusObject *object);
EDBusSource *e_dbus_object_peek_source (EDBusObject *object);
EDBusSourceRemovable *e_dbus_object_peek_source_removable (EDBusObject *object);
EDBusSourceWritable *e_dbus_object_peek_source_writable (EDBusObject *object);
EDBusSourceRemoteCreatable *e_dbus_object_peek_source_remote_creatable (EDBusObject *object);
EDBusSourceRemoteDeletable *e_dbus_object_peek_source_remote_deletable (EDBusObject *object);
EDBusSourceOAuth2Support *e_dbus_object_peek_source_oauth2_support (EDBusObject *object);

#define E_DBUS_TYPE_OBJECT_PROXY (e_dbus_object_proxy_get_type ())
#define E_DBUS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_OBJECT_PROXY, EDBusObjectProxy))
#define E_DBUS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), E_DBUS_TYPE_OBJECT_PROXY, EDBusObjectProxyClass))
#define E_DBUS_OBJECT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), E_DBUS_TYPE_OBJECT_PROXY, EDBusObjectProxyClass))
#define E_DBUS_IS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_OBJECT_PROXY))
#define E_DBUS_IS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_DBUS_TYPE_OBJECT_PROXY))

typedef struct _EDBusObjectProxy EDBusObjectProxy;
typedef struct _EDBusObjectProxyClass EDBusObjectProxyClass;
typedef struct _EDBusObjectProxyPrivate EDBusObjectProxyPrivate;

struct _EDBusObjectProxy
{
  /*< private >*/
  GDBusObjectProxy parent_instance;
  EDBusObjectProxyPrivate *priv;
};

struct _EDBusObjectProxyClass
{
  GDBusObjectProxyClass parent_class;
};

GType e_dbus_object_proxy_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (EDBusObjectProxy, g_object_unref)
#endif

EDBusObjectProxy *e_dbus_object_proxy_new (GDBusConnection *connection, const gchar *object_path);

#define E_DBUS_TYPE_OBJECT_SKELETON (e_dbus_object_skeleton_get_type ())
#define E_DBUS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_OBJECT_SKELETON, EDBusObjectSkeleton))
#define E_DBUS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), E_DBUS_TYPE_OBJECT_SKELETON, EDBusObjectSkeletonClass))
#define E_DBUS_OBJECT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), E_DBUS_TYPE_OBJECT_SKELETON, EDBusObjectSkeletonClass))
#define E_DBUS_IS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_OBJECT_SKELETON))
#define E_DBUS_IS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_DBUS_TYPE_OBJECT_SKELETON))

typedef struct _EDBusObjectSkeleton EDBusObjectSkeleton;
typedef struct _EDBusObjectSkeletonClass EDBusObjectSkeletonClass;
typedef struct _EDBusObjectSkeletonPrivate EDBusObjectSkeletonPrivate;

struct _EDBusObjectSkeleton
{
  /*< private >*/
  GDBusObjectSkeleton parent_instance;
  EDBusObjectSkeletonPrivate *priv;
};

struct _EDBusObjectSkeletonClass
{
  GDBusObjectSkeletonClass parent_class;
};

GType e_dbus_object_skeleton_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (EDBusObjectSkeleton, g_object_unref)
#endif

EDBusObjectSkeleton *e_dbus_object_skeleton_new (const gchar *object_path);
void e_dbus_object_skeleton_set_source (EDBusObjectSkeleton *object, EDBusSource *interface_);
void e_dbus_object_skeleton_set_source_removable (EDBusObjectSkeleton *object, EDBusSourceRemovable *interface_);
void e_dbus_object_skeleton_set_source_writable (EDBusObjectSkeleton *object, EDBusSourceWritable *interface_);
void e_dbus_object_skeleton_set_source_remote_creatable (EDBusObjectSkeleton *object, EDBusSourceRemoteCreatable *interface_);
void e_dbus_object_skeleton_set_source_remote_deletable (EDBusObjectSkeleton *object, EDBusSourceRemoteDeletable *interface_);
void e_dbus_object_skeleton_set_source_oauth2_support (EDBusObjectSkeleton *object, EDBusSourceOAuth2Support *interface_);

/* ---- */

#define E_DBUS_TYPE_OBJECT_MANAGER_CLIENT (e_dbus_object_manager_client_get_type ())
#define E_DBUS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_DBUS_TYPE_OBJECT_MANAGER_CLIENT, EDBusObjectManagerClient))
#define E_DBUS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), E_DBUS_TYPE_OBJECT_MANAGER_CLIENT, EDBusObjectManagerClientClass))
#define E_DBUS_OBJECT_MANAGER_CLIENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), E_DBUS_TYPE_OBJECT_MANAGER_CLIENT, EDBusObjectManagerClientClass))
#define E_DBUS_IS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_DBUS_TYPE_OBJECT_MANAGER_CLIENT))
#define E_DBUS_IS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_DBUS_TYPE_OBJECT_MANAGER_CLIENT))

typedef struct _EDBusObjectManagerClient EDBusObjectManagerClient;
typedef struct _EDBusObjectManagerClientClass EDBusObjectManagerClientClass;
typedef struct _EDBusObjectManagerClientPrivate EDBusObjectManagerClientPrivate;

struct _EDBusObjectManagerClient
{
  /*< private >*/
  GDBusObjectManagerClient parent_instance;
  EDBusObjectManagerClientPrivate *priv;
};

struct _EDBusObjectManagerClientClass
{
  GDBusObjectManagerClientClass parent_class;
};

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (EDBusObjectManagerClient, g_object_unref)
#endif

GType e_dbus_object_manager_client_get_type (void);

GType e_dbus_object_manager_client_get_proxy_type (GDBusObjectManagerClient *manager, const gchar *object_path, const gchar *interface_name, gpointer user_data);

void e_dbus_object_manager_client_new (
    GDBusConnection        *connection,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GAsyncReadyCallback     callback,
    gpointer                user_data);
GDBusObjectManager *e_dbus_object_manager_client_new_finish (
    GAsyncResult        *res,
    GError             **error);
GDBusObjectManager *e_dbus_object_manager_client_new_sync (
    GDBusConnection        *connection,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GError                **error);

void e_dbus_object_manager_client_new_for_bus (
    GBusType                bus_type,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GAsyncReadyCallback     callback,
    gpointer                user_data);
GDBusObjectManager *e_dbus_object_manager_client_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
GDBusObjectManager *e_dbus_object_manager_client_new_for_bus_sync (
    GBusType                bus_type,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GError                **error);


G_END_DECLS

#endif /* __E_DBUS_SOURCE_H__ */
