/*
 * 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 __BLUEZ5_INTERFACE_GEN_H__
#define __BLUEZ5_INTERFACE_GEN_H__

#include <gio/gio.h>

G_BEGIN_DECLS


/* ------------------------------------------------------------------------ */
/* Declarations for org.bluez.Adapter1 */

#define BLUEZ5_TYPE_ADAPTER1 (bluez5_adapter1_get_type ())
#define BLUEZ5_ADAPTER1(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_ADAPTER1, Bluez5Adapter1))
#define BLUEZ5_IS_ADAPTER1(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_ADAPTER1))
#define BLUEZ5_ADAPTER1_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), BLUEZ5_TYPE_ADAPTER1, Bluez5Adapter1Iface))

struct _Bluez5Adapter1;
typedef struct _Bluez5Adapter1 Bluez5Adapter1;
typedef struct _Bluez5Adapter1Iface Bluez5Adapter1Iface;

struct _Bluez5Adapter1Iface
{
  GTypeInterface parent_iface;

  gboolean (*handle_register_application) (
    Bluez5Adapter1 *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_path,
    GVariant *arg_options);

};

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

GType bluez5_adapter1_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *bluez5_adapter1_interface_info (void);
guint bluez5_adapter1_override_properties (GObjectClass *klass, guint property_id_begin);


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



/* D-Bus method calls: */
void bluez5_adapter1_call_register_application (
    Bluez5Adapter1 *proxy,
    const gchar *arg_path,
    GVariant *arg_options,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean bluez5_adapter1_call_register_application_finish (
    Bluez5Adapter1 *proxy,
    GAsyncResult *res,
    GError **error);

gboolean bluez5_adapter1_call_register_application_sync (
    Bluez5Adapter1 *proxy,
    const gchar *arg_path,
    GVariant *arg_options,
    GCancellable *cancellable,
    GError **error);



/* ---- */

#define BLUEZ5_TYPE_ADAPTER1_PROXY (bluez5_adapter1_proxy_get_type ())
#define BLUEZ5_ADAPTER1_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_ADAPTER1_PROXY, Bluez5Adapter1Proxy))
#define BLUEZ5_ADAPTER1_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ5_TYPE_ADAPTER1_PROXY, Bluez5Adapter1ProxyClass))
#define BLUEZ5_ADAPTER1_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ5_TYPE_ADAPTER1_PROXY, Bluez5Adapter1ProxyClass))
#define BLUEZ5_IS_ADAPTER1_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_ADAPTER1_PROXY))
#define BLUEZ5_IS_ADAPTER1_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ5_TYPE_ADAPTER1_PROXY))

typedef struct _Bluez5Adapter1Proxy Bluez5Adapter1Proxy;
typedef struct _Bluez5Adapter1ProxyClass Bluez5Adapter1ProxyClass;
typedef struct _Bluez5Adapter1ProxyPrivate Bluez5Adapter1ProxyPrivate;

struct _Bluez5Adapter1Proxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  Bluez5Adapter1ProxyPrivate *priv;
};

struct _Bluez5Adapter1ProxyClass
{
  GDBusProxyClass parent_class;
};

GType bluez5_adapter1_proxy_get_type (void) G_GNUC_CONST;

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

void bluez5_adapter1_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
Bluez5Adapter1 *bluez5_adapter1_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
Bluez5Adapter1 *bluez5_adapter1_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void bluez5_adapter1_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
Bluez5Adapter1 *bluez5_adapter1_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
Bluez5Adapter1 *bluez5_adapter1_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define BLUEZ5_TYPE_ADAPTER1_SKELETON (bluez5_adapter1_skeleton_get_type ())
#define BLUEZ5_ADAPTER1_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_ADAPTER1_SKELETON, Bluez5Adapter1Skeleton))
#define BLUEZ5_ADAPTER1_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ5_TYPE_ADAPTER1_SKELETON, Bluez5Adapter1SkeletonClass))
#define BLUEZ5_ADAPTER1_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ5_TYPE_ADAPTER1_SKELETON, Bluez5Adapter1SkeletonClass))
#define BLUEZ5_IS_ADAPTER1_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_ADAPTER1_SKELETON))
#define BLUEZ5_IS_ADAPTER1_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ5_TYPE_ADAPTER1_SKELETON))

typedef struct _Bluez5Adapter1Skeleton Bluez5Adapter1Skeleton;
typedef struct _Bluez5Adapter1SkeletonClass Bluez5Adapter1SkeletonClass;
typedef struct _Bluez5Adapter1SkeletonPrivate Bluez5Adapter1SkeletonPrivate;

struct _Bluez5Adapter1Skeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  Bluez5Adapter1SkeletonPrivate *priv;
};

struct _Bluez5Adapter1SkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType bluez5_adapter1_skeleton_get_type (void) G_GNUC_CONST;

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

Bluez5Adapter1 *bluez5_adapter1_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.bluez.Device1 */

#define BLUEZ5_TYPE_DEVICE1 (bluez5_device1_get_type ())
#define BLUEZ5_DEVICE1(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_DEVICE1, Bluez5Device1))
#define BLUEZ5_IS_DEVICE1(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_DEVICE1))
#define BLUEZ5_DEVICE1_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), BLUEZ5_TYPE_DEVICE1, Bluez5Device1Iface))

struct _Bluez5Device1;
typedef struct _Bluez5Device1 Bluez5Device1;
typedef struct _Bluez5Device1Iface Bluez5Device1Iface;

struct _Bluez5Device1Iface
{
  GTypeInterface parent_iface;

  const gchar * (*get_adapter) (Bluez5Device1 *object);

  const gchar * (*get_address) (Bluez5Device1 *object);

  const gchar * (*get_alias) (Bluez5Device1 *object);

  guint16  (*get_appearance) (Bluez5Device1 *object);

  guint  (*get_class) (Bluez5Device1 *object);

  gboolean  (*get_connected) (Bluez5Device1 *object);

  const gchar * (*get_icon) (Bluez5Device1 *object);

  const gchar * (*get_name) (Bluez5Device1 *object);

  gboolean  (*get_services_resolved) (Bluez5Device1 *object);

};

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

GType bluez5_device1_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *bluez5_device1_interface_info (void);
guint bluez5_device1_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus property accessors: */
const gchar *bluez5_device1_get_adapter (Bluez5Device1 *object);
gchar *bluez5_device1_dup_adapter (Bluez5Device1 *object);
void bluez5_device1_set_adapter (Bluez5Device1 *object, const gchar *value);

gboolean bluez5_device1_get_connected (Bluez5Device1 *object);
void bluez5_device1_set_connected (Bluez5Device1 *object, gboolean value);

gboolean bluez5_device1_get_services_resolved (Bluez5Device1 *object);
void bluez5_device1_set_services_resolved (Bluez5Device1 *object, gboolean value);

const gchar *bluez5_device1_get_name (Bluez5Device1 *object);
gchar *bluez5_device1_dup_name (Bluez5Device1 *object);
void bluez5_device1_set_name (Bluez5Device1 *object, const gchar *value);

const gchar *bluez5_device1_get_alias (Bluez5Device1 *object);
gchar *bluez5_device1_dup_alias (Bluez5Device1 *object);
void bluez5_device1_set_alias (Bluez5Device1 *object, const gchar *value);

const gchar *bluez5_device1_get_address (Bluez5Device1 *object);
gchar *bluez5_device1_dup_address (Bluez5Device1 *object);
void bluez5_device1_set_address (Bluez5Device1 *object, const gchar *value);

const gchar *bluez5_device1_get_icon (Bluez5Device1 *object);
gchar *bluez5_device1_dup_icon (Bluez5Device1 *object);
void bluez5_device1_set_icon (Bluez5Device1 *object, const gchar *value);

guint bluez5_device1_get_class (Bluez5Device1 *object);
void bluez5_device1_set_class (Bluez5Device1 *object, guint value);

guint16 bluez5_device1_get_appearance (Bluez5Device1 *object);
void bluez5_device1_set_appearance (Bluez5Device1 *object, guint16 value);


/* ---- */

#define BLUEZ5_TYPE_DEVICE1_PROXY (bluez5_device1_proxy_get_type ())
#define BLUEZ5_DEVICE1_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_DEVICE1_PROXY, Bluez5Device1Proxy))
#define BLUEZ5_DEVICE1_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ5_TYPE_DEVICE1_PROXY, Bluez5Device1ProxyClass))
#define BLUEZ5_DEVICE1_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ5_TYPE_DEVICE1_PROXY, Bluez5Device1ProxyClass))
#define BLUEZ5_IS_DEVICE1_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_DEVICE1_PROXY))
#define BLUEZ5_IS_DEVICE1_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ5_TYPE_DEVICE1_PROXY))

typedef struct _Bluez5Device1Proxy Bluez5Device1Proxy;
typedef struct _Bluez5Device1ProxyClass Bluez5Device1ProxyClass;
typedef struct _Bluez5Device1ProxyPrivate Bluez5Device1ProxyPrivate;

struct _Bluez5Device1Proxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  Bluez5Device1ProxyPrivate *priv;
};

struct _Bluez5Device1ProxyClass
{
  GDBusProxyClass parent_class;
};

GType bluez5_device1_proxy_get_type (void) G_GNUC_CONST;

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

void bluez5_device1_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
Bluez5Device1 *bluez5_device1_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
Bluez5Device1 *bluez5_device1_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void bluez5_device1_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
Bluez5Device1 *bluez5_device1_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
Bluez5Device1 *bluez5_device1_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define BLUEZ5_TYPE_DEVICE1_SKELETON (bluez5_device1_skeleton_get_type ())
#define BLUEZ5_DEVICE1_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_DEVICE1_SKELETON, Bluez5Device1Skeleton))
#define BLUEZ5_DEVICE1_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ5_TYPE_DEVICE1_SKELETON, Bluez5Device1SkeletonClass))
#define BLUEZ5_DEVICE1_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ5_TYPE_DEVICE1_SKELETON, Bluez5Device1SkeletonClass))
#define BLUEZ5_IS_DEVICE1_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_DEVICE1_SKELETON))
#define BLUEZ5_IS_DEVICE1_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ5_TYPE_DEVICE1_SKELETON))

typedef struct _Bluez5Device1Skeleton Bluez5Device1Skeleton;
typedef struct _Bluez5Device1SkeletonClass Bluez5Device1SkeletonClass;
typedef struct _Bluez5Device1SkeletonPrivate Bluez5Device1SkeletonPrivate;

struct _Bluez5Device1Skeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  Bluez5Device1SkeletonPrivate *priv;
};

struct _Bluez5Device1SkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType bluez5_device1_skeleton_get_type (void) G_GNUC_CONST;

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

Bluez5Device1 *bluez5_device1_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.bluez.GattManager1 */

#define BLUEZ5_TYPE_GATT_MANAGER1 (bluez5_gatt_manager1_get_type ())
#define BLUEZ5_GATT_MANAGER1(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_GATT_MANAGER1, Bluez5GattManager1))
#define BLUEZ5_IS_GATT_MANAGER1(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_GATT_MANAGER1))
#define BLUEZ5_GATT_MANAGER1_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), BLUEZ5_TYPE_GATT_MANAGER1, Bluez5GattManager1Iface))

struct _Bluez5GattManager1;
typedef struct _Bluez5GattManager1 Bluez5GattManager1;
typedef struct _Bluez5GattManager1Iface Bluez5GattManager1Iface;

struct _Bluez5GattManager1Iface
{
  GTypeInterface parent_iface;

  gboolean (*handle_register_application) (
    Bluez5GattManager1 *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_path,
    GVariant *arg_options);

};

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

GType bluez5_gatt_manager1_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *bluez5_gatt_manager1_interface_info (void);
guint bluez5_gatt_manager1_override_properties (GObjectClass *klass, guint property_id_begin);


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



/* D-Bus method calls: */
void bluez5_gatt_manager1_call_register_application (
    Bluez5GattManager1 *proxy,
    const gchar *arg_path,
    GVariant *arg_options,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean bluez5_gatt_manager1_call_register_application_finish (
    Bluez5GattManager1 *proxy,
    GAsyncResult *res,
    GError **error);

gboolean bluez5_gatt_manager1_call_register_application_sync (
    Bluez5GattManager1 *proxy,
    const gchar *arg_path,
    GVariant *arg_options,
    GCancellable *cancellable,
    GError **error);



/* ---- */

#define BLUEZ5_TYPE_GATT_MANAGER1_PROXY (bluez5_gatt_manager1_proxy_get_type ())
#define BLUEZ5_GATT_MANAGER1_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_GATT_MANAGER1_PROXY, Bluez5GattManager1Proxy))
#define BLUEZ5_GATT_MANAGER1_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ5_TYPE_GATT_MANAGER1_PROXY, Bluez5GattManager1ProxyClass))
#define BLUEZ5_GATT_MANAGER1_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ5_TYPE_GATT_MANAGER1_PROXY, Bluez5GattManager1ProxyClass))
#define BLUEZ5_IS_GATT_MANAGER1_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_GATT_MANAGER1_PROXY))
#define BLUEZ5_IS_GATT_MANAGER1_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ5_TYPE_GATT_MANAGER1_PROXY))

typedef struct _Bluez5GattManager1Proxy Bluez5GattManager1Proxy;
typedef struct _Bluez5GattManager1ProxyClass Bluez5GattManager1ProxyClass;
typedef struct _Bluez5GattManager1ProxyPrivate Bluez5GattManager1ProxyPrivate;

struct _Bluez5GattManager1Proxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  Bluez5GattManager1ProxyPrivate *priv;
};

struct _Bluez5GattManager1ProxyClass
{
  GDBusProxyClass parent_class;
};

GType bluez5_gatt_manager1_proxy_get_type (void) G_GNUC_CONST;

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

void bluez5_gatt_manager1_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
Bluez5GattManager1 *bluez5_gatt_manager1_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
Bluez5GattManager1 *bluez5_gatt_manager1_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void bluez5_gatt_manager1_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
Bluez5GattManager1 *bluez5_gatt_manager1_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
Bluez5GattManager1 *bluez5_gatt_manager1_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define BLUEZ5_TYPE_GATT_MANAGER1_SKELETON (bluez5_gatt_manager1_skeleton_get_type ())
#define BLUEZ5_GATT_MANAGER1_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_GATT_MANAGER1_SKELETON, Bluez5GattManager1Skeleton))
#define BLUEZ5_GATT_MANAGER1_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ5_TYPE_GATT_MANAGER1_SKELETON, Bluez5GattManager1SkeletonClass))
#define BLUEZ5_GATT_MANAGER1_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ5_TYPE_GATT_MANAGER1_SKELETON, Bluez5GattManager1SkeletonClass))
#define BLUEZ5_IS_GATT_MANAGER1_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_GATT_MANAGER1_SKELETON))
#define BLUEZ5_IS_GATT_MANAGER1_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ5_TYPE_GATT_MANAGER1_SKELETON))

typedef struct _Bluez5GattManager1Skeleton Bluez5GattManager1Skeleton;
typedef struct _Bluez5GattManager1SkeletonClass Bluez5GattManager1SkeletonClass;
typedef struct _Bluez5GattManager1SkeletonPrivate Bluez5GattManager1SkeletonPrivate;

struct _Bluez5GattManager1Skeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  Bluez5GattManager1SkeletonPrivate *priv;
};

struct _Bluez5GattManager1SkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType bluez5_gatt_manager1_skeleton_get_type (void) G_GNUC_CONST;

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

Bluez5GattManager1 *bluez5_gatt_manager1_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.bluez.GattProfile1 */

#define BLUEZ5_TYPE_GATT_PROFILE1 (bluez5_gatt_profile1_get_type ())
#define BLUEZ5_GATT_PROFILE1(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_GATT_PROFILE1, Bluez5GattProfile1))
#define BLUEZ5_IS_GATT_PROFILE1(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_GATT_PROFILE1))
#define BLUEZ5_GATT_PROFILE1_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), BLUEZ5_TYPE_GATT_PROFILE1, Bluez5GattProfile1Iface))

struct _Bluez5GattProfile1;
typedef struct _Bluez5GattProfile1 Bluez5GattProfile1;
typedef struct _Bluez5GattProfile1Iface Bluez5GattProfile1Iface;

struct _Bluez5GattProfile1Iface
{
  GTypeInterface parent_iface;


  gboolean (*handle_release) (
    Bluez5GattProfile1 *object,
    GDBusMethodInvocation *invocation);

  const gchar *const * (*get_uuids) (Bluez5GattProfile1 *object);

};

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

GType bluez5_gatt_profile1_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *bluez5_gatt_profile1_interface_info (void);
guint bluez5_gatt_profile1_override_properties (GObjectClass *klass, guint property_id_begin);


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



/* D-Bus method calls: */
void bluez5_gatt_profile1_call_release (
    Bluez5GattProfile1 *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean bluez5_gatt_profile1_call_release_finish (
    Bluez5GattProfile1 *proxy,
    GAsyncResult *res,
    GError **error);

gboolean bluez5_gatt_profile1_call_release_sync (
    Bluez5GattProfile1 *proxy,
    GCancellable *cancellable,
    GError **error);



/* D-Bus property accessors: */
const gchar *const *bluez5_gatt_profile1_get_uuids (Bluez5GattProfile1 *object);
gchar **bluez5_gatt_profile1_dup_uuids (Bluez5GattProfile1 *object);
void bluez5_gatt_profile1_set_uuids (Bluez5GattProfile1 *object, const gchar *const *value);


/* ---- */

#define BLUEZ5_TYPE_GATT_PROFILE1_PROXY (bluez5_gatt_profile1_proxy_get_type ())
#define BLUEZ5_GATT_PROFILE1_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_GATT_PROFILE1_PROXY, Bluez5GattProfile1Proxy))
#define BLUEZ5_GATT_PROFILE1_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ5_TYPE_GATT_PROFILE1_PROXY, Bluez5GattProfile1ProxyClass))
#define BLUEZ5_GATT_PROFILE1_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ5_TYPE_GATT_PROFILE1_PROXY, Bluez5GattProfile1ProxyClass))
#define BLUEZ5_IS_GATT_PROFILE1_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_GATT_PROFILE1_PROXY))
#define BLUEZ5_IS_GATT_PROFILE1_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ5_TYPE_GATT_PROFILE1_PROXY))

typedef struct _Bluez5GattProfile1Proxy Bluez5GattProfile1Proxy;
typedef struct _Bluez5GattProfile1ProxyClass Bluez5GattProfile1ProxyClass;
typedef struct _Bluez5GattProfile1ProxyPrivate Bluez5GattProfile1ProxyPrivate;

struct _Bluez5GattProfile1Proxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  Bluez5GattProfile1ProxyPrivate *priv;
};

struct _Bluez5GattProfile1ProxyClass
{
  GDBusProxyClass parent_class;
};

GType bluez5_gatt_profile1_proxy_get_type (void) G_GNUC_CONST;

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

void bluez5_gatt_profile1_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
Bluez5GattProfile1 *bluez5_gatt_profile1_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
Bluez5GattProfile1 *bluez5_gatt_profile1_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void bluez5_gatt_profile1_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
Bluez5GattProfile1 *bluez5_gatt_profile1_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
Bluez5GattProfile1 *bluez5_gatt_profile1_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define BLUEZ5_TYPE_GATT_PROFILE1_SKELETON (bluez5_gatt_profile1_skeleton_get_type ())
#define BLUEZ5_GATT_PROFILE1_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_GATT_PROFILE1_SKELETON, Bluez5GattProfile1Skeleton))
#define BLUEZ5_GATT_PROFILE1_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ5_TYPE_GATT_PROFILE1_SKELETON, Bluez5GattProfile1SkeletonClass))
#define BLUEZ5_GATT_PROFILE1_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ5_TYPE_GATT_PROFILE1_SKELETON, Bluez5GattProfile1SkeletonClass))
#define BLUEZ5_IS_GATT_PROFILE1_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_GATT_PROFILE1_SKELETON))
#define BLUEZ5_IS_GATT_PROFILE1_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ5_TYPE_GATT_PROFILE1_SKELETON))

typedef struct _Bluez5GattProfile1Skeleton Bluez5GattProfile1Skeleton;
typedef struct _Bluez5GattProfile1SkeletonClass Bluez5GattProfile1SkeletonClass;
typedef struct _Bluez5GattProfile1SkeletonPrivate Bluez5GattProfile1SkeletonPrivate;

struct _Bluez5GattProfile1Skeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  Bluez5GattProfile1SkeletonPrivate *priv;
};

struct _Bluez5GattProfile1SkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType bluez5_gatt_profile1_skeleton_get_type (void) G_GNUC_CONST;

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

Bluez5GattProfile1 *bluez5_gatt_profile1_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.bluez.GattService1 */

#define BLUEZ5_TYPE_GATT_SERVICE1 (bluez5_gatt_service1_get_type ())
#define BLUEZ5_GATT_SERVICE1(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_GATT_SERVICE1, Bluez5GattService1))
#define BLUEZ5_IS_GATT_SERVICE1(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_GATT_SERVICE1))
#define BLUEZ5_GATT_SERVICE1_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), BLUEZ5_TYPE_GATT_SERVICE1, Bluez5GattService1Iface))

struct _Bluez5GattService1;
typedef struct _Bluez5GattService1 Bluez5GattService1;
typedef struct _Bluez5GattService1Iface Bluez5GattService1Iface;

struct _Bluez5GattService1Iface
{
  GTypeInterface parent_iface;

  const gchar * (*get_device) (Bluez5GattService1 *object);

  gboolean  (*get_primary) (Bluez5GattService1 *object);

  const gchar * (*get_uuid) (Bluez5GattService1 *object);

};

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

GType bluez5_gatt_service1_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *bluez5_gatt_service1_interface_info (void);
guint bluez5_gatt_service1_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus property accessors: */
const gchar *bluez5_gatt_service1_get_uuid (Bluez5GattService1 *object);
gchar *bluez5_gatt_service1_dup_uuid (Bluez5GattService1 *object);
void bluez5_gatt_service1_set_uuid (Bluez5GattService1 *object, const gchar *value);

gboolean bluez5_gatt_service1_get_primary (Bluez5GattService1 *object);
void bluez5_gatt_service1_set_primary (Bluez5GattService1 *object, gboolean value);

const gchar *bluez5_gatt_service1_get_device (Bluez5GattService1 *object);
gchar *bluez5_gatt_service1_dup_device (Bluez5GattService1 *object);
void bluez5_gatt_service1_set_device (Bluez5GattService1 *object, const gchar *value);


/* ---- */

#define BLUEZ5_TYPE_GATT_SERVICE1_PROXY (bluez5_gatt_service1_proxy_get_type ())
#define BLUEZ5_GATT_SERVICE1_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_GATT_SERVICE1_PROXY, Bluez5GattService1Proxy))
#define BLUEZ5_GATT_SERVICE1_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ5_TYPE_GATT_SERVICE1_PROXY, Bluez5GattService1ProxyClass))
#define BLUEZ5_GATT_SERVICE1_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ5_TYPE_GATT_SERVICE1_PROXY, Bluez5GattService1ProxyClass))
#define BLUEZ5_IS_GATT_SERVICE1_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_GATT_SERVICE1_PROXY))
#define BLUEZ5_IS_GATT_SERVICE1_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ5_TYPE_GATT_SERVICE1_PROXY))

typedef struct _Bluez5GattService1Proxy Bluez5GattService1Proxy;
typedef struct _Bluez5GattService1ProxyClass Bluez5GattService1ProxyClass;
typedef struct _Bluez5GattService1ProxyPrivate Bluez5GattService1ProxyPrivate;

struct _Bluez5GattService1Proxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  Bluez5GattService1ProxyPrivate *priv;
};

struct _Bluez5GattService1ProxyClass
{
  GDBusProxyClass parent_class;
};

GType bluez5_gatt_service1_proxy_get_type (void) G_GNUC_CONST;

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

void bluez5_gatt_service1_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
Bluez5GattService1 *bluez5_gatt_service1_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
Bluez5GattService1 *bluez5_gatt_service1_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void bluez5_gatt_service1_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
Bluez5GattService1 *bluez5_gatt_service1_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
Bluez5GattService1 *bluez5_gatt_service1_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define BLUEZ5_TYPE_GATT_SERVICE1_SKELETON (bluez5_gatt_service1_skeleton_get_type ())
#define BLUEZ5_GATT_SERVICE1_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_GATT_SERVICE1_SKELETON, Bluez5GattService1Skeleton))
#define BLUEZ5_GATT_SERVICE1_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ5_TYPE_GATT_SERVICE1_SKELETON, Bluez5GattService1SkeletonClass))
#define BLUEZ5_GATT_SERVICE1_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ5_TYPE_GATT_SERVICE1_SKELETON, Bluez5GattService1SkeletonClass))
#define BLUEZ5_IS_GATT_SERVICE1_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_GATT_SERVICE1_SKELETON))
#define BLUEZ5_IS_GATT_SERVICE1_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ5_TYPE_GATT_SERVICE1_SKELETON))

typedef struct _Bluez5GattService1Skeleton Bluez5GattService1Skeleton;
typedef struct _Bluez5GattService1SkeletonClass Bluez5GattService1SkeletonClass;
typedef struct _Bluez5GattService1SkeletonPrivate Bluez5GattService1SkeletonPrivate;

struct _Bluez5GattService1Skeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  Bluez5GattService1SkeletonPrivate *priv;
};

struct _Bluez5GattService1SkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType bluez5_gatt_service1_skeleton_get_type (void) G_GNUC_CONST;

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

Bluez5GattService1 *bluez5_gatt_service1_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.bluez.GattCharacteristic1 */

#define BLUEZ5_TYPE_GATT_CHARACTERISTIC1 (bluez5_gatt_characteristic1_get_type ())
#define BLUEZ5_GATT_CHARACTERISTIC1(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_GATT_CHARACTERISTIC1, Bluez5GattCharacteristic1))
#define BLUEZ5_IS_GATT_CHARACTERISTIC1(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_GATT_CHARACTERISTIC1))
#define BLUEZ5_GATT_CHARACTERISTIC1_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), BLUEZ5_TYPE_GATT_CHARACTERISTIC1, Bluez5GattCharacteristic1Iface))

struct _Bluez5GattCharacteristic1;
typedef struct _Bluez5GattCharacteristic1 Bluez5GattCharacteristic1;
typedef struct _Bluez5GattCharacteristic1Iface Bluez5GattCharacteristic1Iface;

struct _Bluez5GattCharacteristic1Iface
{
  GTypeInterface parent_iface;


  gboolean (*handle_acquire_notify) (
    Bluez5GattCharacteristic1 *object,
    GDBusMethodInvocation *invocation,
    GUnixFDList *fd_list,
    GVariant *arg_options);

  gboolean (*handle_acquire_write) (
    Bluez5GattCharacteristic1 *object,
    GDBusMethodInvocation *invocation,
    GUnixFDList *fd_list,
    GVariant *arg_options);

  gboolean (*handle_read_value) (
    Bluez5GattCharacteristic1 *object,
    GDBusMethodInvocation *invocation,
    GVariant *arg_options);

  const gchar *const * (*get_flags) (Bluez5GattCharacteristic1 *object);

  gboolean  (*get_notify_acquired) (Bluez5GattCharacteristic1 *object);

  const gchar * (*get_service) (Bluez5GattCharacteristic1 *object);

  const gchar * (*get_uuid) (Bluez5GattCharacteristic1 *object);

  gboolean  (*get_write_acquired) (Bluez5GattCharacteristic1 *object);

};

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

GType bluez5_gatt_characteristic1_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *bluez5_gatt_characteristic1_interface_info (void);
guint bluez5_gatt_characteristic1_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void bluez5_gatt_characteristic1_complete_read_value (
    Bluez5GattCharacteristic1 *object,
    GDBusMethodInvocation *invocation,
    const gchar *value);

void bluez5_gatt_characteristic1_complete_acquire_notify (
    Bluez5GattCharacteristic1 *object,
    GDBusMethodInvocation *invocation,
    GUnixFDList *fd_list,
    GVariant *fd,
    guint16 mtu);

void bluez5_gatt_characteristic1_complete_acquire_write (
    Bluez5GattCharacteristic1 *object,
    GDBusMethodInvocation *invocation,
    GUnixFDList *fd_list,
    GVariant *fd,
    guint16 mtu);



/* D-Bus method calls: */
void bluez5_gatt_characteristic1_call_read_value (
    Bluez5GattCharacteristic1 *proxy,
    GVariant *arg_options,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean bluez5_gatt_characteristic1_call_read_value_finish (
    Bluez5GattCharacteristic1 *proxy,
    gchar **out_value,
    GAsyncResult *res,
    GError **error);

gboolean bluez5_gatt_characteristic1_call_read_value_sync (
    Bluez5GattCharacteristic1 *proxy,
    GVariant *arg_options,
    gchar **out_value,
    GCancellable *cancellable,
    GError **error);

void bluez5_gatt_characteristic1_call_acquire_notify (
    Bluez5GattCharacteristic1 *proxy,
    GVariant *arg_options,
    GUnixFDList *fd_list,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean bluez5_gatt_characteristic1_call_acquire_notify_finish (
    Bluez5GattCharacteristic1 *proxy,
    GVariant **out_fd,
    guint16 *out_mtu,
    GUnixFDList **out_fd_list,
    GAsyncResult *res,
    GError **error);

gboolean bluez5_gatt_characteristic1_call_acquire_notify_sync (
    Bluez5GattCharacteristic1 *proxy,
    GVariant *arg_options,
    GUnixFDList  *fd_list,
    GVariant **out_fd,
    guint16 *out_mtu,
    GUnixFDList **out_fd_list,
    GCancellable *cancellable,
    GError **error);

void bluez5_gatt_characteristic1_call_acquire_write (
    Bluez5GattCharacteristic1 *proxy,
    GVariant *arg_options,
    GUnixFDList *fd_list,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean bluez5_gatt_characteristic1_call_acquire_write_finish (
    Bluez5GattCharacteristic1 *proxy,
    GVariant **out_fd,
    guint16 *out_mtu,
    GUnixFDList **out_fd_list,
    GAsyncResult *res,
    GError **error);

gboolean bluez5_gatt_characteristic1_call_acquire_write_sync (
    Bluez5GattCharacteristic1 *proxy,
    GVariant *arg_options,
    GUnixFDList  *fd_list,
    GVariant **out_fd,
    guint16 *out_mtu,
    GUnixFDList **out_fd_list,
    GCancellable *cancellable,
    GError **error);



/* D-Bus property accessors: */
const gchar *bluez5_gatt_characteristic1_get_uuid (Bluez5GattCharacteristic1 *object);
gchar *bluez5_gatt_characteristic1_dup_uuid (Bluez5GattCharacteristic1 *object);
void bluez5_gatt_characteristic1_set_uuid (Bluez5GattCharacteristic1 *object, const gchar *value);

const gchar *bluez5_gatt_characteristic1_get_service (Bluez5GattCharacteristic1 *object);
gchar *bluez5_gatt_characteristic1_dup_service (Bluez5GattCharacteristic1 *object);
void bluez5_gatt_characteristic1_set_service (Bluez5GattCharacteristic1 *object, const gchar *value);

gboolean bluez5_gatt_characteristic1_get_write_acquired (Bluez5GattCharacteristic1 *object);
void bluez5_gatt_characteristic1_set_write_acquired (Bluez5GattCharacteristic1 *object, gboolean value);

gboolean bluez5_gatt_characteristic1_get_notify_acquired (Bluez5GattCharacteristic1 *object);
void bluez5_gatt_characteristic1_set_notify_acquired (Bluez5GattCharacteristic1 *object, gboolean value);

const gchar *const *bluez5_gatt_characteristic1_get_flags (Bluez5GattCharacteristic1 *object);
gchar **bluez5_gatt_characteristic1_dup_flags (Bluez5GattCharacteristic1 *object);
void bluez5_gatt_characteristic1_set_flags (Bluez5GattCharacteristic1 *object, const gchar *const *value);


/* ---- */

#define BLUEZ5_TYPE_GATT_CHARACTERISTIC1_PROXY (bluez5_gatt_characteristic1_proxy_get_type ())
#define BLUEZ5_GATT_CHARACTERISTIC1_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_GATT_CHARACTERISTIC1_PROXY, Bluez5GattCharacteristic1Proxy))
#define BLUEZ5_GATT_CHARACTERISTIC1_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ5_TYPE_GATT_CHARACTERISTIC1_PROXY, Bluez5GattCharacteristic1ProxyClass))
#define BLUEZ5_GATT_CHARACTERISTIC1_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ5_TYPE_GATT_CHARACTERISTIC1_PROXY, Bluez5GattCharacteristic1ProxyClass))
#define BLUEZ5_IS_GATT_CHARACTERISTIC1_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_GATT_CHARACTERISTIC1_PROXY))
#define BLUEZ5_IS_GATT_CHARACTERISTIC1_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ5_TYPE_GATT_CHARACTERISTIC1_PROXY))

typedef struct _Bluez5GattCharacteristic1Proxy Bluez5GattCharacteristic1Proxy;
typedef struct _Bluez5GattCharacteristic1ProxyClass Bluez5GattCharacteristic1ProxyClass;
typedef struct _Bluez5GattCharacteristic1ProxyPrivate Bluez5GattCharacteristic1ProxyPrivate;

struct _Bluez5GattCharacteristic1Proxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  Bluez5GattCharacteristic1ProxyPrivate *priv;
};

struct _Bluez5GattCharacteristic1ProxyClass
{
  GDBusProxyClass parent_class;
};

GType bluez5_gatt_characteristic1_proxy_get_type (void) G_GNUC_CONST;

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

void bluez5_gatt_characteristic1_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
Bluez5GattCharacteristic1 *bluez5_gatt_characteristic1_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
Bluez5GattCharacteristic1 *bluez5_gatt_characteristic1_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void bluez5_gatt_characteristic1_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
Bluez5GattCharacteristic1 *bluez5_gatt_characteristic1_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
Bluez5GattCharacteristic1 *bluez5_gatt_characteristic1_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define BLUEZ5_TYPE_GATT_CHARACTERISTIC1_SKELETON (bluez5_gatt_characteristic1_skeleton_get_type ())
#define BLUEZ5_GATT_CHARACTERISTIC1_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_GATT_CHARACTERISTIC1_SKELETON, Bluez5GattCharacteristic1Skeleton))
#define BLUEZ5_GATT_CHARACTERISTIC1_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ5_TYPE_GATT_CHARACTERISTIC1_SKELETON, Bluez5GattCharacteristic1SkeletonClass))
#define BLUEZ5_GATT_CHARACTERISTIC1_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ5_TYPE_GATT_CHARACTERISTIC1_SKELETON, Bluez5GattCharacteristic1SkeletonClass))
#define BLUEZ5_IS_GATT_CHARACTERISTIC1_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_GATT_CHARACTERISTIC1_SKELETON))
#define BLUEZ5_IS_GATT_CHARACTERISTIC1_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ5_TYPE_GATT_CHARACTERISTIC1_SKELETON))

typedef struct _Bluez5GattCharacteristic1Skeleton Bluez5GattCharacteristic1Skeleton;
typedef struct _Bluez5GattCharacteristic1SkeletonClass Bluez5GattCharacteristic1SkeletonClass;
typedef struct _Bluez5GattCharacteristic1SkeletonPrivate Bluez5GattCharacteristic1SkeletonPrivate;

struct _Bluez5GattCharacteristic1Skeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  Bluez5GattCharacteristic1SkeletonPrivate *priv;
};

struct _Bluez5GattCharacteristic1SkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType bluez5_gatt_characteristic1_skeleton_get_type (void) G_GNUC_CONST;

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

Bluez5GattCharacteristic1 *bluez5_gatt_characteristic1_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.bluez.GattDescriptor1 */

#define BLUEZ5_TYPE_GATT_DESCRIPTOR1 (bluez5_gatt_descriptor1_get_type ())
#define BLUEZ5_GATT_DESCRIPTOR1(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_GATT_DESCRIPTOR1, Bluez5GattDescriptor1))
#define BLUEZ5_IS_GATT_DESCRIPTOR1(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_GATT_DESCRIPTOR1))
#define BLUEZ5_GATT_DESCRIPTOR1_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), BLUEZ5_TYPE_GATT_DESCRIPTOR1, Bluez5GattDescriptor1Iface))

struct _Bluez5GattDescriptor1;
typedef struct _Bluez5GattDescriptor1 Bluez5GattDescriptor1;
typedef struct _Bluez5GattDescriptor1Iface Bluez5GattDescriptor1Iface;

struct _Bluez5GattDescriptor1Iface
{
  GTypeInterface parent_iface;


  gboolean (*handle_read_value) (
    Bluez5GattDescriptor1 *object,
    GDBusMethodInvocation *invocation,
    GVariant *arg_options);

  const gchar * (*get_characteristic) (Bluez5GattDescriptor1 *object);

  const gchar *const * (*get_flags) (Bluez5GattDescriptor1 *object);

  const gchar * (*get_uuid) (Bluez5GattDescriptor1 *object);

};

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

GType bluez5_gatt_descriptor1_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *bluez5_gatt_descriptor1_interface_info (void);
guint bluez5_gatt_descriptor1_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void bluez5_gatt_descriptor1_complete_read_value (
    Bluez5GattDescriptor1 *object,
    GDBusMethodInvocation *invocation,
    const gchar *value);



/* D-Bus method calls: */
void bluez5_gatt_descriptor1_call_read_value (
    Bluez5GattDescriptor1 *proxy,
    GVariant *arg_options,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean bluez5_gatt_descriptor1_call_read_value_finish (
    Bluez5GattDescriptor1 *proxy,
    gchar **out_value,
    GAsyncResult *res,
    GError **error);

gboolean bluez5_gatt_descriptor1_call_read_value_sync (
    Bluez5GattDescriptor1 *proxy,
    GVariant *arg_options,
    gchar **out_value,
    GCancellable *cancellable,
    GError **error);



/* D-Bus property accessors: */
const gchar *bluez5_gatt_descriptor1_get_uuid (Bluez5GattDescriptor1 *object);
gchar *bluez5_gatt_descriptor1_dup_uuid (Bluez5GattDescriptor1 *object);
void bluez5_gatt_descriptor1_set_uuid (Bluez5GattDescriptor1 *object, const gchar *value);

const gchar *bluez5_gatt_descriptor1_get_characteristic (Bluez5GattDescriptor1 *object);
gchar *bluez5_gatt_descriptor1_dup_characteristic (Bluez5GattDescriptor1 *object);
void bluez5_gatt_descriptor1_set_characteristic (Bluez5GattDescriptor1 *object, const gchar *value);

const gchar *const *bluez5_gatt_descriptor1_get_flags (Bluez5GattDescriptor1 *object);
gchar **bluez5_gatt_descriptor1_dup_flags (Bluez5GattDescriptor1 *object);
void bluez5_gatt_descriptor1_set_flags (Bluez5GattDescriptor1 *object, const gchar *const *value);


/* ---- */

#define BLUEZ5_TYPE_GATT_DESCRIPTOR1_PROXY (bluez5_gatt_descriptor1_proxy_get_type ())
#define BLUEZ5_GATT_DESCRIPTOR1_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_GATT_DESCRIPTOR1_PROXY, Bluez5GattDescriptor1Proxy))
#define BLUEZ5_GATT_DESCRIPTOR1_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ5_TYPE_GATT_DESCRIPTOR1_PROXY, Bluez5GattDescriptor1ProxyClass))
#define BLUEZ5_GATT_DESCRIPTOR1_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ5_TYPE_GATT_DESCRIPTOR1_PROXY, Bluez5GattDescriptor1ProxyClass))
#define BLUEZ5_IS_GATT_DESCRIPTOR1_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_GATT_DESCRIPTOR1_PROXY))
#define BLUEZ5_IS_GATT_DESCRIPTOR1_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ5_TYPE_GATT_DESCRIPTOR1_PROXY))

typedef struct _Bluez5GattDescriptor1Proxy Bluez5GattDescriptor1Proxy;
typedef struct _Bluez5GattDescriptor1ProxyClass Bluez5GattDescriptor1ProxyClass;
typedef struct _Bluez5GattDescriptor1ProxyPrivate Bluez5GattDescriptor1ProxyPrivate;

struct _Bluez5GattDescriptor1Proxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  Bluez5GattDescriptor1ProxyPrivate *priv;
};

struct _Bluez5GattDescriptor1ProxyClass
{
  GDBusProxyClass parent_class;
};

GType bluez5_gatt_descriptor1_proxy_get_type (void) G_GNUC_CONST;

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

void bluez5_gatt_descriptor1_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
Bluez5GattDescriptor1 *bluez5_gatt_descriptor1_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
Bluez5GattDescriptor1 *bluez5_gatt_descriptor1_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void bluez5_gatt_descriptor1_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
Bluez5GattDescriptor1 *bluez5_gatt_descriptor1_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
Bluez5GattDescriptor1 *bluez5_gatt_descriptor1_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define BLUEZ5_TYPE_GATT_DESCRIPTOR1_SKELETON (bluez5_gatt_descriptor1_skeleton_get_type ())
#define BLUEZ5_GATT_DESCRIPTOR1_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_GATT_DESCRIPTOR1_SKELETON, Bluez5GattDescriptor1Skeleton))
#define BLUEZ5_GATT_DESCRIPTOR1_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ5_TYPE_GATT_DESCRIPTOR1_SKELETON, Bluez5GattDescriptor1SkeletonClass))
#define BLUEZ5_GATT_DESCRIPTOR1_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ5_TYPE_GATT_DESCRIPTOR1_SKELETON, Bluez5GattDescriptor1SkeletonClass))
#define BLUEZ5_IS_GATT_DESCRIPTOR1_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_GATT_DESCRIPTOR1_SKELETON))
#define BLUEZ5_IS_GATT_DESCRIPTOR1_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ5_TYPE_GATT_DESCRIPTOR1_SKELETON))

typedef struct _Bluez5GattDescriptor1Skeleton Bluez5GattDescriptor1Skeleton;
typedef struct _Bluez5GattDescriptor1SkeletonClass Bluez5GattDescriptor1SkeletonClass;
typedef struct _Bluez5GattDescriptor1SkeletonPrivate Bluez5GattDescriptor1SkeletonPrivate;

struct _Bluez5GattDescriptor1Skeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  Bluez5GattDescriptor1SkeletonPrivate *priv;
};

struct _Bluez5GattDescriptor1SkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType bluez5_gatt_descriptor1_skeleton_get_type (void) G_GNUC_CONST;

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

Bluez5GattDescriptor1 *bluez5_gatt_descriptor1_skeleton_new (void);


/* ---- */

#define BLUEZ5_TYPE_OBJECT (bluez5_object_get_type ())
#define BLUEZ5_OBJECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_OBJECT, Bluez5Object))
#define BLUEZ5_IS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_OBJECT))
#define BLUEZ5_OBJECT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), BLUEZ5_TYPE_OBJECT, Bluez5Object))

struct _Bluez5Object;
typedef struct _Bluez5Object Bluez5Object;
typedef struct _Bluez5ObjectIface Bluez5ObjectIface;

struct _Bluez5ObjectIface
{
  GTypeInterface parent_iface;
};

GType bluez5_object_get_type (void) G_GNUC_CONST;

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

Bluez5Adapter1 *bluez5_object_get_adapter1 (Bluez5Object *object);
Bluez5Device1 *bluez5_object_get_device1 (Bluez5Object *object);
Bluez5GattManager1 *bluez5_object_get_gatt_manager1 (Bluez5Object *object);
Bluez5GattProfile1 *bluez5_object_get_gatt_profile1 (Bluez5Object *object);
Bluez5GattService1 *bluez5_object_get_gatt_service1 (Bluez5Object *object);
Bluez5GattCharacteristic1 *bluez5_object_get_gatt_characteristic1 (Bluez5Object *object);
Bluez5GattDescriptor1 *bluez5_object_get_gatt_descriptor1 (Bluez5Object *object);
Bluez5Adapter1 *bluez5_object_peek_adapter1 (Bluez5Object *object);
Bluez5Device1 *bluez5_object_peek_device1 (Bluez5Object *object);
Bluez5GattManager1 *bluez5_object_peek_gatt_manager1 (Bluez5Object *object);
Bluez5GattProfile1 *bluez5_object_peek_gatt_profile1 (Bluez5Object *object);
Bluez5GattService1 *bluez5_object_peek_gatt_service1 (Bluez5Object *object);
Bluez5GattCharacteristic1 *bluez5_object_peek_gatt_characteristic1 (Bluez5Object *object);
Bluez5GattDescriptor1 *bluez5_object_peek_gatt_descriptor1 (Bluez5Object *object);

#define BLUEZ5_TYPE_OBJECT_PROXY (bluez5_object_proxy_get_type ())
#define BLUEZ5_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_OBJECT_PROXY, Bluez5ObjectProxy))
#define BLUEZ5_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ5_TYPE_OBJECT_PROXY, Bluez5ObjectProxyClass))
#define BLUEZ5_OBJECT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ5_TYPE_OBJECT_PROXY, Bluez5ObjectProxyClass))
#define BLUEZ5_IS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_OBJECT_PROXY))
#define BLUEZ5_IS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ5_TYPE_OBJECT_PROXY))

typedef struct _Bluez5ObjectProxy Bluez5ObjectProxy;
typedef struct _Bluez5ObjectProxyClass Bluez5ObjectProxyClass;
typedef struct _Bluez5ObjectProxyPrivate Bluez5ObjectProxyPrivate;

struct _Bluez5ObjectProxy
{
  /*< private >*/
  GDBusObjectProxy parent_instance;
  Bluez5ObjectProxyPrivate *priv;
};

struct _Bluez5ObjectProxyClass
{
  GDBusObjectProxyClass parent_class;
};

GType bluez5_object_proxy_get_type (void) G_GNUC_CONST;

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

Bluez5ObjectProxy *bluez5_object_proxy_new (GDBusConnection *connection, const gchar *object_path);

#define BLUEZ5_TYPE_OBJECT_SKELETON (bluez5_object_skeleton_get_type ())
#define BLUEZ5_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_OBJECT_SKELETON, Bluez5ObjectSkeleton))
#define BLUEZ5_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ5_TYPE_OBJECT_SKELETON, Bluez5ObjectSkeletonClass))
#define BLUEZ5_OBJECT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ5_TYPE_OBJECT_SKELETON, Bluez5ObjectSkeletonClass))
#define BLUEZ5_IS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_OBJECT_SKELETON))
#define BLUEZ5_IS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ5_TYPE_OBJECT_SKELETON))

typedef struct _Bluez5ObjectSkeleton Bluez5ObjectSkeleton;
typedef struct _Bluez5ObjectSkeletonClass Bluez5ObjectSkeletonClass;
typedef struct _Bluez5ObjectSkeletonPrivate Bluez5ObjectSkeletonPrivate;

struct _Bluez5ObjectSkeleton
{
  /*< private >*/
  GDBusObjectSkeleton parent_instance;
  Bluez5ObjectSkeletonPrivate *priv;
};

struct _Bluez5ObjectSkeletonClass
{
  GDBusObjectSkeletonClass parent_class;
};

GType bluez5_object_skeleton_get_type (void) G_GNUC_CONST;

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

Bluez5ObjectSkeleton *bluez5_object_skeleton_new (const gchar *object_path);
void bluez5_object_skeleton_set_adapter1 (Bluez5ObjectSkeleton *object, Bluez5Adapter1 *interface_);
void bluez5_object_skeleton_set_device1 (Bluez5ObjectSkeleton *object, Bluez5Device1 *interface_);
void bluez5_object_skeleton_set_gatt_manager1 (Bluez5ObjectSkeleton *object, Bluez5GattManager1 *interface_);
void bluez5_object_skeleton_set_gatt_profile1 (Bluez5ObjectSkeleton *object, Bluez5GattProfile1 *interface_);
void bluez5_object_skeleton_set_gatt_service1 (Bluez5ObjectSkeleton *object, Bluez5GattService1 *interface_);
void bluez5_object_skeleton_set_gatt_characteristic1 (Bluez5ObjectSkeleton *object, Bluez5GattCharacteristic1 *interface_);
void bluez5_object_skeleton_set_gatt_descriptor1 (Bluez5ObjectSkeleton *object, Bluez5GattDescriptor1 *interface_);

/* ---- */

#define BLUEZ5_TYPE_OBJECT_MANAGER_CLIENT (bluez5_object_manager_client_get_type ())
#define BLUEZ5_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ5_TYPE_OBJECT_MANAGER_CLIENT, Bluez5ObjectManagerClient))
#define BLUEZ5_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ5_TYPE_OBJECT_MANAGER_CLIENT, Bluez5ObjectManagerClientClass))
#define BLUEZ5_OBJECT_MANAGER_CLIENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ5_TYPE_OBJECT_MANAGER_CLIENT, Bluez5ObjectManagerClientClass))
#define BLUEZ5_IS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ5_TYPE_OBJECT_MANAGER_CLIENT))
#define BLUEZ5_IS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ5_TYPE_OBJECT_MANAGER_CLIENT))

typedef struct _Bluez5ObjectManagerClient Bluez5ObjectManagerClient;
typedef struct _Bluez5ObjectManagerClientClass Bluez5ObjectManagerClientClass;
typedef struct _Bluez5ObjectManagerClientPrivate Bluez5ObjectManagerClientPrivate;

struct _Bluez5ObjectManagerClient
{
  /*< private >*/
  GDBusObjectManagerClient parent_instance;
  Bluez5ObjectManagerClientPrivate *priv;
};

struct _Bluez5ObjectManagerClientClass
{
  GDBusObjectManagerClientClass parent_class;
};

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

GType bluez5_object_manager_client_get_type (void) G_GNUC_CONST;

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

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

void bluez5_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 *bluez5_object_manager_client_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
GDBusObjectManager *bluez5_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 /* __BLUEZ5_INTERFACE_GEN_H__ */
