/*
 * Generated by gdbus-codegen 2.48.2. DO NOT EDIT.
 *
 * The license of this code is the same as for the source it was derived from.
 */

#ifdef HAVE_CONFIG_H
#  include "config.h"
#endif

#include "connmanbus.h"

#include <string.h>
#ifdef G_OS_UNIX
#  include <gio/gunixfdlist.h>
#endif

typedef struct
{
  GDBusArgInfo parent_struct;
  gboolean use_gvariant;
} _ExtendedGDBusArgInfo;

typedef struct
{
  GDBusMethodInfo parent_struct;
  const gchar *signal_name;
  gboolean pass_fdlist;
} _ExtendedGDBusMethodInfo;

typedef struct
{
  GDBusSignalInfo parent_struct;
  const gchar *signal_name;
} _ExtendedGDBusSignalInfo;

typedef struct
{
  GDBusPropertyInfo parent_struct;
  const gchar *hyphen_name;
  gboolean use_gvariant;
} _ExtendedGDBusPropertyInfo;

typedef struct
{
  GDBusInterfaceInfo parent_struct;
  const gchar *hyphen_name;
} _ExtendedGDBusInterfaceInfo;

typedef struct
{
  const _ExtendedGDBusPropertyInfo *info;
  guint prop_id;
  GValue orig_value; /* the value before the change */
} ChangedProperty;

static void
_changed_property_free (ChangedProperty *data)
{
  g_value_unset (&data->orig_value);
  g_free (data);
}

static gboolean
_g_strv_equal0 (gchar **a, gchar **b)
{
  gboolean ret = FALSE;
  guint n;
  if (a == NULL && b == NULL)
    {
      ret = TRUE;
      goto out;
    }
  if (a == NULL || b == NULL)
    goto out;
  if (g_strv_length (a) != g_strv_length (b))
    goto out;
  for (n = 0; a[n] != NULL; n++)
    if (g_strcmp0 (a[n], b[n]) != 0)
      goto out;
  ret = TRUE;
out:
  return ret;
}

static gboolean
_g_variant_equal0 (GVariant *a, GVariant *b)
{
  gboolean ret = FALSE;
  if (a == NULL && b == NULL)
    {
      ret = TRUE;
      goto out;
    }
  if (a == NULL || b == NULL)
    goto out;
  ret = g_variant_equal (a, b);
out:
  return ret;
}

G_GNUC_UNUSED static gboolean
_g_value_equal (const GValue *a, const GValue *b)
{
  gboolean ret = FALSE;
  g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
  switch (G_VALUE_TYPE (a))
    {
      case G_TYPE_BOOLEAN:
        ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
        break;
      case G_TYPE_UCHAR:
        ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
        break;
      case G_TYPE_INT:
        ret = (g_value_get_int (a) == g_value_get_int (b));
        break;
      case G_TYPE_UINT:
        ret = (g_value_get_uint (a) == g_value_get_uint (b));
        break;
      case G_TYPE_INT64:
        ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
        break;
      case G_TYPE_UINT64:
        ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
        break;
      case G_TYPE_DOUBLE:
        {
          /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
          gdouble da = g_value_get_double (a);
          gdouble db = g_value_get_double (b);
          ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
        }
        break;
      case G_TYPE_STRING:
        ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
        break;
      case G_TYPE_VARIANT:
        ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
        break;
      default:
        if (G_VALUE_TYPE (a) == G_TYPE_STRV)
          ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
        else
          g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
        break;
    }
  return ret;
}

/* ------------------------------------------------------------------------
 * Code for interface net.connman.Manager
 * ------------------------------------------------------------------------
 */

/**
 * SECTION:ConnManBusManager
 * @title: ConnManBusManager
 * @short_description: Generated C code for the net.connman.Manager D-Bus interface
 *
 * This section contains code for working with the <link linkend="gdbus-interface-net-connman-Manager.top_of_page">net.connman.Manager</link> D-Bus interface in C.
 */

/* ---- Introspection data for net.connman.Manager ---- */

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_get_properties_OUT_ARG_properties =
{
  {
    -1,
    (gchar *) "properties",
    (gchar *) "a{sv}",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_method_info_get_properties_OUT_ARG_pointers[] =
{
  &_conn_man_bus_manager_method_info_get_properties_OUT_ARG_properties,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_manager_method_info_get_properties =
{
  {
    -1,
    (gchar *) "GetProperties",
    NULL,
    (GDBusArgInfo **) &_conn_man_bus_manager_method_info_get_properties_OUT_ARG_pointers,
    NULL
  },
  "handle-get-properties",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_set_property_IN_ARG_name =
{
  {
    -1,
    (gchar *) "name",
    (gchar *) "s",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_set_property_IN_ARG_value =
{
  {
    -1,
    (gchar *) "value",
    (gchar *) "v",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_method_info_set_property_IN_ARG_pointers[] =
{
  &_conn_man_bus_manager_method_info_set_property_IN_ARG_name,
  &_conn_man_bus_manager_method_info_set_property_IN_ARG_value,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_manager_method_info_set_property =
{
  {
    -1,
    (gchar *) "SetProperty",
    (GDBusArgInfo **) &_conn_man_bus_manager_method_info_set_property_IN_ARG_pointers,
    NULL,
    NULL
  },
  "handle-set-property",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_get_technologies_OUT_ARG_technologies =
{
  {
    -1,
    (gchar *) "technologies",
    (gchar *) "a(oa{sv})",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_method_info_get_technologies_OUT_ARG_pointers[] =
{
  &_conn_man_bus_manager_method_info_get_technologies_OUT_ARG_technologies,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_manager_method_info_get_technologies =
{
  {
    -1,
    (gchar *) "GetTechnologies",
    NULL,
    (GDBusArgInfo **) &_conn_man_bus_manager_method_info_get_technologies_OUT_ARG_pointers,
    NULL
  },
  "handle-get-technologies",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_remove_provider_IN_ARG_provider =
{
  {
    -1,
    (gchar *) "provider",
    (gchar *) "o",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_method_info_remove_provider_IN_ARG_pointers[] =
{
  &_conn_man_bus_manager_method_info_remove_provider_IN_ARG_provider,
  NULL
};

static const GDBusAnnotationInfo _conn_man_bus_manager_method_remove_provider_annotation_info_0 =
{
  -1,
  (gchar *) "org.freedesktop.DBus.Deprecated",
  (gchar *) "true",
  NULL
};

static const GDBusAnnotationInfo * const _conn_man_bus_manager_method_remove_provider_annotation_info_pointers[] =
{
  &_conn_man_bus_manager_method_remove_provider_annotation_info_0,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_manager_method_info_remove_provider =
{
  {
    -1,
    (gchar *) "RemoveProvider",
    (GDBusArgInfo **) &_conn_man_bus_manager_method_info_remove_provider_IN_ARG_pointers,
    NULL,
    (GDBusAnnotationInfo **) &_conn_man_bus_manager_method_remove_provider_annotation_info_pointers
  },
  "handle-remove-provider",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_get_services_OUT_ARG_services =
{
  {
    -1,
    (gchar *) "services",
    (gchar *) "a(oa{sv})",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_method_info_get_services_OUT_ARG_pointers[] =
{
  &_conn_man_bus_manager_method_info_get_services_OUT_ARG_services,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_manager_method_info_get_services =
{
  {
    -1,
    (gchar *) "GetServices",
    NULL,
    (GDBusArgInfo **) &_conn_man_bus_manager_method_info_get_services_OUT_ARG_pointers,
    NULL
  },
  "handle-get-services",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_get_peers_OUT_ARG_peers =
{
  {
    -1,
    (gchar *) "peers",
    (gchar *) "a(oa{sv})",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_method_info_get_peers_OUT_ARG_pointers[] =
{
  &_conn_man_bus_manager_method_info_get_peers_OUT_ARG_peers,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_manager_method_info_get_peers =
{
  {
    -1,
    (gchar *) "GetPeers",
    NULL,
    (GDBusArgInfo **) &_conn_man_bus_manager_method_info_get_peers_OUT_ARG_pointers,
    NULL
  },
  "handle-get-peers",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_connect_provider_IN_ARG_provider =
{
  {
    -1,
    (gchar *) "provider",
    (gchar *) "a{sv}",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_method_info_connect_provider_IN_ARG_pointers[] =
{
  &_conn_man_bus_manager_method_info_connect_provider_IN_ARG_provider,
  NULL
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_connect_provider_OUT_ARG_path =
{
  {
    -1,
    (gchar *) "path",
    (gchar *) "o",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_method_info_connect_provider_OUT_ARG_pointers[] =
{
  &_conn_man_bus_manager_method_info_connect_provider_OUT_ARG_path,
  NULL
};

static const GDBusAnnotationInfo _conn_man_bus_manager_method_connect_provider_annotation_info_0 =
{
  -1,
  (gchar *) "org.freedesktop.DBus.Deprecated",
  (gchar *) "true",
  NULL
};

static const GDBusAnnotationInfo * const _conn_man_bus_manager_method_connect_provider_annotation_info_pointers[] =
{
  &_conn_man_bus_manager_method_connect_provider_annotation_info_0,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_manager_method_info_connect_provider =
{
  {
    -1,
    (gchar *) "ConnectProvider",
    (GDBusArgInfo **) &_conn_man_bus_manager_method_info_connect_provider_IN_ARG_pointers,
    (GDBusArgInfo **) &_conn_man_bus_manager_method_info_connect_provider_OUT_ARG_pointers,
    (GDBusAnnotationInfo **) &_conn_man_bus_manager_method_connect_provider_annotation_info_pointers
  },
  "handle-connect-provider",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_register_agent_IN_ARG_path =
{
  {
    -1,
    (gchar *) "path",
    (gchar *) "o",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_method_info_register_agent_IN_ARG_pointers[] =
{
  &_conn_man_bus_manager_method_info_register_agent_IN_ARG_path,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_manager_method_info_register_agent =
{
  {
    -1,
    (gchar *) "RegisterAgent",
    (GDBusArgInfo **) &_conn_man_bus_manager_method_info_register_agent_IN_ARG_pointers,
    NULL,
    NULL
  },
  "handle-register-agent",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_unregister_agent_IN_ARG_path =
{
  {
    -1,
    (gchar *) "path",
    (gchar *) "o",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_method_info_unregister_agent_IN_ARG_pointers[] =
{
  &_conn_man_bus_manager_method_info_unregister_agent_IN_ARG_path,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_manager_method_info_unregister_agent =
{
  {
    -1,
    (gchar *) "UnregisterAgent",
    (GDBusArgInfo **) &_conn_man_bus_manager_method_info_unregister_agent_IN_ARG_pointers,
    NULL,
    NULL
  },
  "handle-unregister-agent",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_register_counter_IN_ARG_path =
{
  {
    -1,
    (gchar *) "path",
    (gchar *) "o",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_register_counter_IN_ARG_accuracy =
{
  {
    -1,
    (gchar *) "accuracy",
    (gchar *) "u",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_register_counter_IN_ARG_period =
{
  {
    -1,
    (gchar *) "period",
    (gchar *) "u",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_method_info_register_counter_IN_ARG_pointers[] =
{
  &_conn_man_bus_manager_method_info_register_counter_IN_ARG_path,
  &_conn_man_bus_manager_method_info_register_counter_IN_ARG_accuracy,
  &_conn_man_bus_manager_method_info_register_counter_IN_ARG_period,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_manager_method_info_register_counter =
{
  {
    -1,
    (gchar *) "RegisterCounter",
    (GDBusArgInfo **) &_conn_man_bus_manager_method_info_register_counter_IN_ARG_pointers,
    NULL,
    NULL
  },
  "handle-register-counter",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_unregister_counter_IN_ARG_path =
{
  {
    -1,
    (gchar *) "path",
    (gchar *) "o",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_method_info_unregister_counter_IN_ARG_pointers[] =
{
  &_conn_man_bus_manager_method_info_unregister_counter_IN_ARG_path,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_manager_method_info_unregister_counter =
{
  {
    -1,
    (gchar *) "UnregisterCounter",
    (GDBusArgInfo **) &_conn_man_bus_manager_method_info_unregister_counter_IN_ARG_pointers,
    NULL,
    NULL
  },
  "handle-unregister-counter",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_create_session_IN_ARG_settings =
{
  {
    -1,
    (gchar *) "settings",
    (gchar *) "a{sv}",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_create_session_IN_ARG_notifier =
{
  {
    -1,
    (gchar *) "notifier",
    (gchar *) "o",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_method_info_create_session_IN_ARG_pointers[] =
{
  &_conn_man_bus_manager_method_info_create_session_IN_ARG_settings,
  &_conn_man_bus_manager_method_info_create_session_IN_ARG_notifier,
  NULL
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_create_session_OUT_ARG_session =
{
  {
    -1,
    (gchar *) "session",
    (gchar *) "o",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_method_info_create_session_OUT_ARG_pointers[] =
{
  &_conn_man_bus_manager_method_info_create_session_OUT_ARG_session,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_manager_method_info_create_session =
{
  {
    -1,
    (gchar *) "CreateSession",
    (GDBusArgInfo **) &_conn_man_bus_manager_method_info_create_session_IN_ARG_pointers,
    (GDBusArgInfo **) &_conn_man_bus_manager_method_info_create_session_OUT_ARG_pointers,
    NULL
  },
  "handle-create-session",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_destroy_session_IN_ARG_session =
{
  {
    -1,
    (gchar *) "session",
    (gchar *) "o",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_method_info_destroy_session_IN_ARG_pointers[] =
{
  &_conn_man_bus_manager_method_info_destroy_session_IN_ARG_session,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_manager_method_info_destroy_session =
{
  {
    -1,
    (gchar *) "DestroySession",
    (GDBusArgInfo **) &_conn_man_bus_manager_method_info_destroy_session_IN_ARG_pointers,
    NULL,
    NULL
  },
  "handle-destroy-session",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_request_private_network_OUT_ARG_path =
{
  {
    -1,
    (gchar *) "path",
    (gchar *) "o",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_request_private_network_OUT_ARG_settings =
{
  {
    -1,
    (gchar *) "settings",
    (gchar *) "a{sv}",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_request_private_network_OUT_ARG_socket =
{
  {
    -1,
    (gchar *) "socket",
    (gchar *) "h",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_method_info_request_private_network_OUT_ARG_pointers[] =
{
  &_conn_man_bus_manager_method_info_request_private_network_OUT_ARG_path,
  &_conn_man_bus_manager_method_info_request_private_network_OUT_ARG_settings,
  &_conn_man_bus_manager_method_info_request_private_network_OUT_ARG_socket,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_manager_method_info_request_private_network =
{
  {
    -1,
    (gchar *) "RequestPrivateNetwork",
    NULL,
    (GDBusArgInfo **) &_conn_man_bus_manager_method_info_request_private_network_OUT_ARG_pointers,
    NULL
  },
  "handle-request-private-network",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_release_private_network_IN_ARG_path =
{
  {
    -1,
    (gchar *) "path",
    (gchar *) "o",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_method_info_release_private_network_IN_ARG_pointers[] =
{
  &_conn_man_bus_manager_method_info_release_private_network_IN_ARG_path,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_manager_method_info_release_private_network =
{
  {
    -1,
    (gchar *) "ReleasePrivateNetwork",
    (GDBusArgInfo **) &_conn_man_bus_manager_method_info_release_private_network_IN_ARG_pointers,
    NULL,
    NULL
  },
  "handle-release-private-network",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_register_peer_service_IN_ARG_specification =
{
  {
    -1,
    (gchar *) "specification",
    (gchar *) "a{sv}",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_register_peer_service_IN_ARG_master =
{
  {
    -1,
    (gchar *) "master",
    (gchar *) "b",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_method_info_register_peer_service_IN_ARG_pointers[] =
{
  &_conn_man_bus_manager_method_info_register_peer_service_IN_ARG_specification,
  &_conn_man_bus_manager_method_info_register_peer_service_IN_ARG_master,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_manager_method_info_register_peer_service =
{
  {
    -1,
    (gchar *) "RegisterPeerService",
    (GDBusArgInfo **) &_conn_man_bus_manager_method_info_register_peer_service_IN_ARG_pointers,
    NULL,
    NULL
  },
  "handle-register-peer-service",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_method_info_unregister_peer_service_IN_ARG_specification =
{
  {
    -1,
    (gchar *) "specification",
    (gchar *) "a{sv}",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_method_info_unregister_peer_service_IN_ARG_pointers[] =
{
  &_conn_man_bus_manager_method_info_unregister_peer_service_IN_ARG_specification,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_manager_method_info_unregister_peer_service =
{
  {
    -1,
    (gchar *) "UnregisterPeerService",
    (GDBusArgInfo **) &_conn_man_bus_manager_method_info_unregister_peer_service_IN_ARG_pointers,
    NULL,
    NULL
  },
  "handle-unregister-peer-service",
  FALSE
};

static const _ExtendedGDBusMethodInfo * const _conn_man_bus_manager_method_info_pointers[] =
{
  &_conn_man_bus_manager_method_info_get_properties,
  &_conn_man_bus_manager_method_info_set_property,
  &_conn_man_bus_manager_method_info_get_technologies,
  &_conn_man_bus_manager_method_info_remove_provider,
  &_conn_man_bus_manager_method_info_get_services,
  &_conn_man_bus_manager_method_info_get_peers,
  &_conn_man_bus_manager_method_info_connect_provider,
  &_conn_man_bus_manager_method_info_register_agent,
  &_conn_man_bus_manager_method_info_unregister_agent,
  &_conn_man_bus_manager_method_info_register_counter,
  &_conn_man_bus_manager_method_info_unregister_counter,
  &_conn_man_bus_manager_method_info_create_session,
  &_conn_man_bus_manager_method_info_destroy_session,
  &_conn_man_bus_manager_method_info_request_private_network,
  &_conn_man_bus_manager_method_info_release_private_network,
  &_conn_man_bus_manager_method_info_register_peer_service,
  &_conn_man_bus_manager_method_info_unregister_peer_service,
  NULL
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_signal_info_property_changed_ARG_name =
{
  {
    -1,
    (gchar *) "name",
    (gchar *) "s",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_signal_info_property_changed_ARG_value =
{
  {
    -1,
    (gchar *) "value",
    (gchar *) "v",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_signal_info_property_changed_ARG_pointers[] =
{
  &_conn_man_bus_manager_signal_info_property_changed_ARG_name,
  &_conn_man_bus_manager_signal_info_property_changed_ARG_value,
  NULL
};

static const _ExtendedGDBusSignalInfo _conn_man_bus_manager_signal_info_property_changed =
{
  {
    -1,
    (gchar *) "PropertyChanged",
    (GDBusArgInfo **) &_conn_man_bus_manager_signal_info_property_changed_ARG_pointers,
    NULL
  },
  "property-changed"
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_signal_info_technology_added_ARG_path =
{
  {
    -1,
    (gchar *) "path",
    (gchar *) "o",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_signal_info_technology_added_ARG_properties =
{
  {
    -1,
    (gchar *) "properties",
    (gchar *) "a{sv}",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_signal_info_technology_added_ARG_pointers[] =
{
  &_conn_man_bus_manager_signal_info_technology_added_ARG_path,
  &_conn_man_bus_manager_signal_info_technology_added_ARG_properties,
  NULL
};

static const _ExtendedGDBusSignalInfo _conn_man_bus_manager_signal_info_technology_added =
{
  {
    -1,
    (gchar *) "TechnologyAdded",
    (GDBusArgInfo **) &_conn_man_bus_manager_signal_info_technology_added_ARG_pointers,
    NULL
  },
  "technology-added"
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_signal_info_technology_removed_ARG_path =
{
  {
    -1,
    (gchar *) "path",
    (gchar *) "o",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_signal_info_technology_removed_ARG_pointers[] =
{
  &_conn_man_bus_manager_signal_info_technology_removed_ARG_path,
  NULL
};

static const _ExtendedGDBusSignalInfo _conn_man_bus_manager_signal_info_technology_removed =
{
  {
    -1,
    (gchar *) "TechnologyRemoved",
    (GDBusArgInfo **) &_conn_man_bus_manager_signal_info_technology_removed_ARG_pointers,
    NULL
  },
  "technology-removed"
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_signal_info_services_changed_ARG_changed =
{
  {
    -1,
    (gchar *) "changed",
    (gchar *) "a(oa{sv})",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_signal_info_services_changed_ARG_removed =
{
  {
    -1,
    (gchar *) "removed",
    (gchar *) "ao",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_signal_info_services_changed_ARG_pointers[] =
{
  &_conn_man_bus_manager_signal_info_services_changed_ARG_changed,
  &_conn_man_bus_manager_signal_info_services_changed_ARG_removed,
  NULL
};

static const _ExtendedGDBusSignalInfo _conn_man_bus_manager_signal_info_services_changed =
{
  {
    -1,
    (gchar *) "ServicesChanged",
    (GDBusArgInfo **) &_conn_man_bus_manager_signal_info_services_changed_ARG_pointers,
    NULL
  },
  "services-changed"
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_signal_info_peers_changed_ARG_changed =
{
  {
    -1,
    (gchar *) "changed",
    (gchar *) "a(oa{sv})",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_manager_signal_info_peers_changed_ARG_removed =
{
  {
    -1,
    (gchar *) "removed",
    (gchar *) "ao",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_manager_signal_info_peers_changed_ARG_pointers[] =
{
  &_conn_man_bus_manager_signal_info_peers_changed_ARG_changed,
  &_conn_man_bus_manager_signal_info_peers_changed_ARG_removed,
  NULL
};

static const _ExtendedGDBusSignalInfo _conn_man_bus_manager_signal_info_peers_changed =
{
  {
    -1,
    (gchar *) "PeersChanged",
    (GDBusArgInfo **) &_conn_man_bus_manager_signal_info_peers_changed_ARG_pointers,
    NULL
  },
  "peers-changed"
};

static const _ExtendedGDBusSignalInfo * const _conn_man_bus_manager_signal_info_pointers[] =
{
  &_conn_man_bus_manager_signal_info_property_changed,
  &_conn_man_bus_manager_signal_info_technology_added,
  &_conn_man_bus_manager_signal_info_technology_removed,
  &_conn_man_bus_manager_signal_info_services_changed,
  &_conn_man_bus_manager_signal_info_peers_changed,
  NULL
};

static const _ExtendedGDBusInterfaceInfo _conn_man_bus_manager_interface_info =
{
  {
    -1,
    (gchar *) "net.connman.Manager",
    (GDBusMethodInfo **) &_conn_man_bus_manager_method_info_pointers,
    (GDBusSignalInfo **) &_conn_man_bus_manager_signal_info_pointers,
    NULL,
    NULL
  },
  "manager",
};


/**
 * conn_man_bus_manager_interface_info:
 *
 * Gets a machine-readable description of the <link linkend="gdbus-interface-net-connman-Manager.top_of_page">net.connman.Manager</link> D-Bus interface.
 *
 * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
 */
GDBusInterfaceInfo *
conn_man_bus_manager_interface_info (void)
{
  return (GDBusInterfaceInfo *) &_conn_man_bus_manager_interface_info.parent_struct;
}

/**
 * conn_man_bus_manager_override_properties:
 * @klass: The class structure for a #GObject<!-- -->-derived class.
 * @property_id_begin: The property id to assign to the first overridden property.
 *
 * Overrides all #GObject properties in the #ConnManBusManager interface for a concrete class.
 * The properties are overridden in the order they are defined.
 *
 * Returns: The last property id.
 */
guint
conn_man_bus_manager_override_properties (GObjectClass *klass, guint property_id_begin)
{
  return property_id_begin - 1;
}



/**
 * ConnManBusManager:
 *
 * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-net-connman-Manager.top_of_page">net.connman.Manager</link>.
 */

/**
 * ConnManBusManagerIface:
 * @parent_iface: The parent interface.
 * @handle_connect_provider: Handler for the #ConnManBusManager::handle-connect-provider signal.
 * @handle_create_session: Handler for the #ConnManBusManager::handle-create-session signal.
 * @handle_destroy_session: Handler for the #ConnManBusManager::handle-destroy-session signal.
 * @handle_get_peers: Handler for the #ConnManBusManager::handle-get-peers signal.
 * @handle_get_properties: Handler for the #ConnManBusManager::handle-get-properties signal.
 * @handle_get_services: Handler for the #ConnManBusManager::handle-get-services signal.
 * @handle_get_technologies: Handler for the #ConnManBusManager::handle-get-technologies signal.
 * @handle_register_agent: Handler for the #ConnManBusManager::handle-register-agent signal.
 * @handle_register_counter: Handler for the #ConnManBusManager::handle-register-counter signal.
 * @handle_register_peer_service: Handler for the #ConnManBusManager::handle-register-peer-service signal.
 * @handle_release_private_network: Handler for the #ConnManBusManager::handle-release-private-network signal.
 * @handle_remove_provider: Handler for the #ConnManBusManager::handle-remove-provider signal.
 * @handle_request_private_network: Handler for the #ConnManBusManager::handle-request-private-network signal.
 * @handle_set_property: Handler for the #ConnManBusManager::handle-set-property signal.
 * @handle_unregister_agent: Handler for the #ConnManBusManager::handle-unregister-agent signal.
 * @handle_unregister_counter: Handler for the #ConnManBusManager::handle-unregister-counter signal.
 * @handle_unregister_peer_service: Handler for the #ConnManBusManager::handle-unregister-peer-service signal.
 * @peers_changed: Handler for the #ConnManBusManager::peers-changed signal.
 * @property_changed: Handler for the #ConnManBusManager::property-changed signal.
 * @services_changed: Handler for the #ConnManBusManager::services-changed signal.
 * @technology_added: Handler for the #ConnManBusManager::technology-added signal.
 * @technology_removed: Handler for the #ConnManBusManager::technology-removed signal.
 *
 * Virtual table for the D-Bus interface <link linkend="gdbus-interface-net-connman-Manager.top_of_page">net.connman.Manager</link>.
 */

typedef ConnManBusManagerIface ConnManBusManagerInterface;
G_DEFINE_INTERFACE (ConnManBusManager, conn_man_bus_manager, G_TYPE_OBJECT);

static void
conn_man_bus_manager_default_init (ConnManBusManagerIface *iface)
{
  /* GObject signals for incoming D-Bus method calls: */
  /**
   * ConnManBusManager::handle-get-properties:
   * @object: A #ConnManBusManager.
   * @invocation: A #GDBusMethodInvocation.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Manager.GetProperties">GetProperties()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_manager_complete_get_properties() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-get-properties",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, handle_get_properties),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    1,
    G_TYPE_DBUS_METHOD_INVOCATION);

  /**
   * ConnManBusManager::handle-set-property:
   * @object: A #ConnManBusManager.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_name: Argument passed by remote caller.
   * @arg_value: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Manager.SetProperty">SetProperty()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_manager_complete_set_property() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-set-property",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, handle_set_property),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    3,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_VARIANT);

  /**
   * ConnManBusManager::handle-get-technologies:
   * @object: A #ConnManBusManager.
   * @invocation: A #GDBusMethodInvocation.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Manager.GetTechnologies">GetTechnologies()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_manager_complete_get_technologies() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-get-technologies",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, handle_get_technologies),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    1,
    G_TYPE_DBUS_METHOD_INVOCATION);

  /**
   * ConnManBusManager::handle-remove-provider:
   * @object: A #ConnManBusManager.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_provider: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Manager.RemoveProvider">RemoveProvider()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_manager_complete_remove_provider() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   *
   * Deprecated: The D-Bus method has been deprecated.
   */
  g_signal_new ("handle-remove-provider",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, handle_remove_provider),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    2,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);

  /**
   * ConnManBusManager::handle-get-services:
   * @object: A #ConnManBusManager.
   * @invocation: A #GDBusMethodInvocation.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Manager.GetServices">GetServices()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_manager_complete_get_services() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-get-services",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, handle_get_services),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    1,
    G_TYPE_DBUS_METHOD_INVOCATION);

  /**
   * ConnManBusManager::handle-get-peers:
   * @object: A #ConnManBusManager.
   * @invocation: A #GDBusMethodInvocation.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Manager.GetPeers">GetPeers()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_manager_complete_get_peers() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-get-peers",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, handle_get_peers),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    1,
    G_TYPE_DBUS_METHOD_INVOCATION);

  /**
   * ConnManBusManager::handle-connect-provider:
   * @object: A #ConnManBusManager.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_provider: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Manager.ConnectProvider">ConnectProvider()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_manager_complete_connect_provider() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   *
   * Deprecated: The D-Bus method has been deprecated.
   */
  g_signal_new ("handle-connect-provider",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, handle_connect_provider),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    2,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT);

  /**
   * ConnManBusManager::handle-register-agent:
   * @object: A #ConnManBusManager.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_path: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Manager.RegisterAgent">RegisterAgent()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_manager_complete_register_agent() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-register-agent",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, handle_register_agent),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    2,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);

  /**
   * ConnManBusManager::handle-unregister-agent:
   * @object: A #ConnManBusManager.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_path: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Manager.UnregisterAgent">UnregisterAgent()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_manager_complete_unregister_agent() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-unregister-agent",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, handle_unregister_agent),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    2,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);

  /**
   * ConnManBusManager::handle-register-counter:
   * @object: A #ConnManBusManager.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_path: Argument passed by remote caller.
   * @arg_accuracy: Argument passed by remote caller.
   * @arg_period: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Manager.RegisterCounter">RegisterCounter()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_manager_complete_register_counter() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-register-counter",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, handle_register_counter),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    4,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT);

  /**
   * ConnManBusManager::handle-unregister-counter:
   * @object: A #ConnManBusManager.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_path: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Manager.UnregisterCounter">UnregisterCounter()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_manager_complete_unregister_counter() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-unregister-counter",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, handle_unregister_counter),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    2,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);

  /**
   * ConnManBusManager::handle-create-session:
   * @object: A #ConnManBusManager.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_settings: Argument passed by remote caller.
   * @arg_notifier: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Manager.CreateSession">CreateSession()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_manager_complete_create_session() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-create-session",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, handle_create_session),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    3,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT, G_TYPE_STRING);

  /**
   * ConnManBusManager::handle-destroy-session:
   * @object: A #ConnManBusManager.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_session: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Manager.DestroySession">DestroySession()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_manager_complete_destroy_session() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-destroy-session",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, handle_destroy_session),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    2,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);

  /**
   * ConnManBusManager::handle-request-private-network:
   * @object: A #ConnManBusManager.
   * @invocation: A #GDBusMethodInvocation.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Manager.RequestPrivateNetwork">RequestPrivateNetwork()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_manager_complete_request_private_network() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-request-private-network",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, handle_request_private_network),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    1,
    G_TYPE_DBUS_METHOD_INVOCATION);

  /**
   * ConnManBusManager::handle-release-private-network:
   * @object: A #ConnManBusManager.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_path: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Manager.ReleasePrivateNetwork">ReleasePrivateNetwork()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_manager_complete_release_private_network() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-release-private-network",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, handle_release_private_network),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    2,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);

  /**
   * ConnManBusManager::handle-register-peer-service:
   * @object: A #ConnManBusManager.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_specification: Argument passed by remote caller.
   * @arg_master: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Manager.RegisterPeerService">RegisterPeerService()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_manager_complete_register_peer_service() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-register-peer-service",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, handle_register_peer_service),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    3,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT, G_TYPE_BOOLEAN);

  /**
   * ConnManBusManager::handle-unregister-peer-service:
   * @object: A #ConnManBusManager.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_specification: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Manager.UnregisterPeerService">UnregisterPeerService()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_manager_complete_unregister_peer_service() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-unregister-peer-service",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, handle_unregister_peer_service),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    2,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT);

  /* GObject signals for received D-Bus signals: */
  /**
   * ConnManBusManager::property-changed:
   * @object: A #ConnManBusManager.
   * @arg_name: Argument.
   * @arg_value: Argument.
   *
   * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-net-connman-Manager.PropertyChanged">"PropertyChanged"</link> is received.
   *
   * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
   */
  g_signal_new ("property-changed",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, property_changed),
    NULL,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_NONE,
    2, G_TYPE_STRING, G_TYPE_VARIANT);

  /**
   * ConnManBusManager::technology-added:
   * @object: A #ConnManBusManager.
   * @arg_path: Argument.
   * @arg_properties: Argument.
   *
   * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-net-connman-Manager.TechnologyAdded">"TechnologyAdded"</link> is received.
   *
   * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
   */
  g_signal_new ("technology-added",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, technology_added),
    NULL,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_NONE,
    2, G_TYPE_STRING, G_TYPE_VARIANT);

  /**
   * ConnManBusManager::technology-removed:
   * @object: A #ConnManBusManager.
   * @arg_path: Argument.
   *
   * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-net-connman-Manager.TechnologyRemoved">"TechnologyRemoved"</link> is received.
   *
   * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
   */
  g_signal_new ("technology-removed",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, technology_removed),
    NULL,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_NONE,
    1, G_TYPE_STRING);

  /**
   * ConnManBusManager::services-changed:
   * @object: A #ConnManBusManager.
   * @arg_changed: Argument.
   * @arg_removed: Argument.
   *
   * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-net-connman-Manager.ServicesChanged">"ServicesChanged"</link> is received.
   *
   * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
   */
  g_signal_new ("services-changed",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, services_changed),
    NULL,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_NONE,
    2, G_TYPE_VARIANT, G_TYPE_STRV);

  /**
   * ConnManBusManager::peers-changed:
   * @object: A #ConnManBusManager.
   * @arg_changed: Argument.
   * @arg_removed: Argument.
   *
   * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-net-connman-Manager.PeersChanged">"PeersChanged"</link> is received.
   *
   * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
   */
  g_signal_new ("peers-changed",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusManagerIface, peers_changed),
    NULL,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_NONE,
    2, G_TYPE_VARIANT, G_TYPE_STRV);

}

/**
 * conn_man_bus_manager_emit_property_changed:
 * @object: A #ConnManBusManager.
 * @arg_name: Argument to pass with the signal.
 * @arg_value: Argument to pass with the signal.
 *
 * Emits the <link linkend="gdbus-signal-net-connman-Manager.PropertyChanged">"PropertyChanged"</link> D-Bus signal.
 */
void
conn_man_bus_manager_emit_property_changed (
    ConnManBusManager *object,
    const gchar *arg_name,
    GVariant *arg_value)
{
  g_signal_emit_by_name (object, "property-changed", arg_name, arg_value);
}

/**
 * conn_man_bus_manager_emit_technology_added:
 * @object: A #ConnManBusManager.
 * @arg_path: Argument to pass with the signal.
 * @arg_properties: Argument to pass with the signal.
 *
 * Emits the <link linkend="gdbus-signal-net-connman-Manager.TechnologyAdded">"TechnologyAdded"</link> D-Bus signal.
 */
void
conn_man_bus_manager_emit_technology_added (
    ConnManBusManager *object,
    const gchar *arg_path,
    GVariant *arg_properties)
{
  g_signal_emit_by_name (object, "technology-added", arg_path, arg_properties);
}

/**
 * conn_man_bus_manager_emit_technology_removed:
 * @object: A #ConnManBusManager.
 * @arg_path: Argument to pass with the signal.
 *
 * Emits the <link linkend="gdbus-signal-net-connman-Manager.TechnologyRemoved">"TechnologyRemoved"</link> D-Bus signal.
 */
void
conn_man_bus_manager_emit_technology_removed (
    ConnManBusManager *object,
    const gchar *arg_path)
{
  g_signal_emit_by_name (object, "technology-removed", arg_path);
}

/**
 * conn_man_bus_manager_emit_services_changed:
 * @object: A #ConnManBusManager.
 * @arg_changed: Argument to pass with the signal.
 * @arg_removed: Argument to pass with the signal.
 *
 * Emits the <link linkend="gdbus-signal-net-connman-Manager.ServicesChanged">"ServicesChanged"</link> D-Bus signal.
 */
void
conn_man_bus_manager_emit_services_changed (
    ConnManBusManager *object,
    GVariant *arg_changed,
    const gchar *const *arg_removed)
{
  g_signal_emit_by_name (object, "services-changed", arg_changed, arg_removed);
}

/**
 * conn_man_bus_manager_emit_peers_changed:
 * @object: A #ConnManBusManager.
 * @arg_changed: Argument to pass with the signal.
 * @arg_removed: Argument to pass with the signal.
 *
 * Emits the <link linkend="gdbus-signal-net-connman-Manager.PeersChanged">"PeersChanged"</link> D-Bus signal.
 */
void
conn_man_bus_manager_emit_peers_changed (
    ConnManBusManager *object,
    GVariant *arg_changed,
    const gchar *const *arg_removed)
{
  g_signal_emit_by_name (object, "peers-changed", arg_changed, arg_removed);
}

/**
 * conn_man_bus_manager_call_get_properties:
 * @proxy: A #ConnManBusManagerProxy.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Manager.GetProperties">GetProperties()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_manager_call_get_properties_finish() to get the result of the operation.
 *
 * See conn_man_bus_manager_call_get_properties_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_manager_call_get_properties (
    ConnManBusManager *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "GetProperties",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_manager_call_get_properties_finish:
 * @proxy: A #ConnManBusManagerProxy.
 * @out_properties: (out): Return location for return parameter or %NULL to ignore.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_manager_call_get_properties().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_manager_call_get_properties().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_get_properties_finish (
    ConnManBusManager *proxy,
    GVariant **out_properties,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "(@a{sv})",
                 out_properties);
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_get_properties_sync:
 * @proxy: A #ConnManBusManagerProxy.
 * @out_properties: (out): Return location for return parameter or %NULL to ignore.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Manager.GetProperties">GetProperties()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_manager_call_get_properties() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_get_properties_sync (
    ConnManBusManager *proxy,
    GVariant **out_properties,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "GetProperties",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "(@a{sv})",
                 out_properties);
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_set_property:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_name: Argument to pass with the method invocation.
 * @arg_value: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Manager.SetProperty">SetProperty()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_manager_call_set_property_finish() to get the result of the operation.
 *
 * See conn_man_bus_manager_call_set_property_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_manager_call_set_property (
    ConnManBusManager *proxy,
    const gchar *arg_name,
    GVariant *arg_value,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "SetProperty",
    g_variant_new ("(s@v)",
                   arg_name,
                   arg_value),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_manager_call_set_property_finish:
 * @proxy: A #ConnManBusManagerProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_manager_call_set_property().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_manager_call_set_property().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_set_property_finish (
    ConnManBusManager *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_set_property_sync:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_name: Argument to pass with the method invocation.
 * @arg_value: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Manager.SetProperty">SetProperty()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_manager_call_set_property() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_set_property_sync (
    ConnManBusManager *proxy,
    const gchar *arg_name,
    GVariant *arg_value,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "SetProperty",
    g_variant_new ("(s@v)",
                   arg_name,
                   arg_value),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_get_technologies:
 * @proxy: A #ConnManBusManagerProxy.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Manager.GetTechnologies">GetTechnologies()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_manager_call_get_technologies_finish() to get the result of the operation.
 *
 * See conn_man_bus_manager_call_get_technologies_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_manager_call_get_technologies (
    ConnManBusManager *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "GetTechnologies",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_manager_call_get_technologies_finish:
 * @proxy: A #ConnManBusManagerProxy.
 * @out_technologies: (out): Return location for return parameter or %NULL to ignore.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_manager_call_get_technologies().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_manager_call_get_technologies().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_get_technologies_finish (
    ConnManBusManager *proxy,
    GVariant **out_technologies,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "(@a(oa{sv}))",
                 out_technologies);
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_get_technologies_sync:
 * @proxy: A #ConnManBusManagerProxy.
 * @out_technologies: (out): Return location for return parameter or %NULL to ignore.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Manager.GetTechnologies">GetTechnologies()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_manager_call_get_technologies() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_get_technologies_sync (
    ConnManBusManager *proxy,
    GVariant **out_technologies,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "GetTechnologies",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "(@a(oa{sv}))",
                 out_technologies);
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_remove_provider:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_provider: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Manager.RemoveProvider">RemoveProvider()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_manager_call_remove_provider_finish() to get the result of the operation.
 *
 * See conn_man_bus_manager_call_remove_provider_sync() for the synchronous, blocking version of this method.
 *
 * Deprecated: The D-Bus method has been deprecated.
 */
void
conn_man_bus_manager_call_remove_provider (
    ConnManBusManager *proxy,
    const gchar *arg_provider,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "RemoveProvider",
    g_variant_new ("(o)",
                   arg_provider),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_manager_call_remove_provider_finish:
 * @proxy: A #ConnManBusManagerProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_manager_call_remove_provider().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_manager_call_remove_provider().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 *
 * Deprecated: The D-Bus method has been deprecated.
 */
gboolean
conn_man_bus_manager_call_remove_provider_finish (
    ConnManBusManager *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_remove_provider_sync:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_provider: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Manager.RemoveProvider">RemoveProvider()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_manager_call_remove_provider() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 *
 * Deprecated: The D-Bus method has been deprecated.
 */
gboolean
conn_man_bus_manager_call_remove_provider_sync (
    ConnManBusManager *proxy,
    const gchar *arg_provider,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "RemoveProvider",
    g_variant_new ("(o)",
                   arg_provider),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_get_services:
 * @proxy: A #ConnManBusManagerProxy.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Manager.GetServices">GetServices()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_manager_call_get_services_finish() to get the result of the operation.
 *
 * See conn_man_bus_manager_call_get_services_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_manager_call_get_services (
    ConnManBusManager *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "GetServices",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_manager_call_get_services_finish:
 * @proxy: A #ConnManBusManagerProxy.
 * @out_services: (out): Return location for return parameter or %NULL to ignore.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_manager_call_get_services().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_manager_call_get_services().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_get_services_finish (
    ConnManBusManager *proxy,
    GVariant **out_services,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "(@a(oa{sv}))",
                 out_services);
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_get_services_sync:
 * @proxy: A #ConnManBusManagerProxy.
 * @out_services: (out): Return location for return parameter or %NULL to ignore.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Manager.GetServices">GetServices()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_manager_call_get_services() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_get_services_sync (
    ConnManBusManager *proxy,
    GVariant **out_services,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "GetServices",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "(@a(oa{sv}))",
                 out_services);
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_get_peers:
 * @proxy: A #ConnManBusManagerProxy.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Manager.GetPeers">GetPeers()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_manager_call_get_peers_finish() to get the result of the operation.
 *
 * See conn_man_bus_manager_call_get_peers_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_manager_call_get_peers (
    ConnManBusManager *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "GetPeers",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_manager_call_get_peers_finish:
 * @proxy: A #ConnManBusManagerProxy.
 * @out_peers: (out): Return location for return parameter or %NULL to ignore.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_manager_call_get_peers().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_manager_call_get_peers().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_get_peers_finish (
    ConnManBusManager *proxy,
    GVariant **out_peers,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "(@a(oa{sv}))",
                 out_peers);
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_get_peers_sync:
 * @proxy: A #ConnManBusManagerProxy.
 * @out_peers: (out): Return location for return parameter or %NULL to ignore.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Manager.GetPeers">GetPeers()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_manager_call_get_peers() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_get_peers_sync (
    ConnManBusManager *proxy,
    GVariant **out_peers,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "GetPeers",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "(@a(oa{sv}))",
                 out_peers);
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_connect_provider:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_provider: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Manager.ConnectProvider">ConnectProvider()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_manager_call_connect_provider_finish() to get the result of the operation.
 *
 * See conn_man_bus_manager_call_connect_provider_sync() for the synchronous, blocking version of this method.
 *
 * Deprecated: The D-Bus method has been deprecated.
 */
void
conn_man_bus_manager_call_connect_provider (
    ConnManBusManager *proxy,
    GVariant *arg_provider,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "ConnectProvider",
    g_variant_new ("(@a{sv})",
                   arg_provider),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_manager_call_connect_provider_finish:
 * @proxy: A #ConnManBusManagerProxy.
 * @out_path: (out): Return location for return parameter or %NULL to ignore.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_manager_call_connect_provider().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_manager_call_connect_provider().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 *
 * Deprecated: The D-Bus method has been deprecated.
 */
gboolean
conn_man_bus_manager_call_connect_provider_finish (
    ConnManBusManager *proxy,
    gchar **out_path,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "(o)",
                 out_path);
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_connect_provider_sync:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_provider: Argument to pass with the method invocation.
 * @out_path: (out): Return location for return parameter or %NULL to ignore.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Manager.ConnectProvider">ConnectProvider()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_manager_call_connect_provider() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 *
 * Deprecated: The D-Bus method has been deprecated.
 */
gboolean
conn_man_bus_manager_call_connect_provider_sync (
    ConnManBusManager *proxy,
    GVariant *arg_provider,
    gchar **out_path,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "ConnectProvider",
    g_variant_new ("(@a{sv})",
                   arg_provider),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "(o)",
                 out_path);
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_register_agent:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_path: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Manager.RegisterAgent">RegisterAgent()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_manager_call_register_agent_finish() to get the result of the operation.
 *
 * See conn_man_bus_manager_call_register_agent_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_manager_call_register_agent (
    ConnManBusManager *proxy,
    const gchar *arg_path,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "RegisterAgent",
    g_variant_new ("(o)",
                   arg_path),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_manager_call_register_agent_finish:
 * @proxy: A #ConnManBusManagerProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_manager_call_register_agent().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_manager_call_register_agent().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_register_agent_finish (
    ConnManBusManager *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_register_agent_sync:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_path: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Manager.RegisterAgent">RegisterAgent()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_manager_call_register_agent() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_register_agent_sync (
    ConnManBusManager *proxy,
    const gchar *arg_path,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "RegisterAgent",
    g_variant_new ("(o)",
                   arg_path),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_unregister_agent:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_path: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Manager.UnregisterAgent">UnregisterAgent()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_manager_call_unregister_agent_finish() to get the result of the operation.
 *
 * See conn_man_bus_manager_call_unregister_agent_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_manager_call_unregister_agent (
    ConnManBusManager *proxy,
    const gchar *arg_path,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "UnregisterAgent",
    g_variant_new ("(o)",
                   arg_path),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_manager_call_unregister_agent_finish:
 * @proxy: A #ConnManBusManagerProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_manager_call_unregister_agent().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_manager_call_unregister_agent().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_unregister_agent_finish (
    ConnManBusManager *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_unregister_agent_sync:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_path: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Manager.UnregisterAgent">UnregisterAgent()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_manager_call_unregister_agent() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_unregister_agent_sync (
    ConnManBusManager *proxy,
    const gchar *arg_path,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "UnregisterAgent",
    g_variant_new ("(o)",
                   arg_path),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_register_counter:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_path: Argument to pass with the method invocation.
 * @arg_accuracy: Argument to pass with the method invocation.
 * @arg_period: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Manager.RegisterCounter">RegisterCounter()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_manager_call_register_counter_finish() to get the result of the operation.
 *
 * See conn_man_bus_manager_call_register_counter_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_manager_call_register_counter (
    ConnManBusManager *proxy,
    const gchar *arg_path,
    guint arg_accuracy,
    guint arg_period,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "RegisterCounter",
    g_variant_new ("(ouu)",
                   arg_path,
                   arg_accuracy,
                   arg_period),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_manager_call_register_counter_finish:
 * @proxy: A #ConnManBusManagerProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_manager_call_register_counter().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_manager_call_register_counter().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_register_counter_finish (
    ConnManBusManager *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_register_counter_sync:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_path: Argument to pass with the method invocation.
 * @arg_accuracy: Argument to pass with the method invocation.
 * @arg_period: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Manager.RegisterCounter">RegisterCounter()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_manager_call_register_counter() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_register_counter_sync (
    ConnManBusManager *proxy,
    const gchar *arg_path,
    guint arg_accuracy,
    guint arg_period,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "RegisterCounter",
    g_variant_new ("(ouu)",
                   arg_path,
                   arg_accuracy,
                   arg_period),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_unregister_counter:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_path: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Manager.UnregisterCounter">UnregisterCounter()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_manager_call_unregister_counter_finish() to get the result of the operation.
 *
 * See conn_man_bus_manager_call_unregister_counter_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_manager_call_unregister_counter (
    ConnManBusManager *proxy,
    const gchar *arg_path,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "UnregisterCounter",
    g_variant_new ("(o)",
                   arg_path),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_manager_call_unregister_counter_finish:
 * @proxy: A #ConnManBusManagerProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_manager_call_unregister_counter().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_manager_call_unregister_counter().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_unregister_counter_finish (
    ConnManBusManager *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_unregister_counter_sync:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_path: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Manager.UnregisterCounter">UnregisterCounter()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_manager_call_unregister_counter() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_unregister_counter_sync (
    ConnManBusManager *proxy,
    const gchar *arg_path,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "UnregisterCounter",
    g_variant_new ("(o)",
                   arg_path),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_create_session:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_settings: Argument to pass with the method invocation.
 * @arg_notifier: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Manager.CreateSession">CreateSession()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_manager_call_create_session_finish() to get the result of the operation.
 *
 * See conn_man_bus_manager_call_create_session_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_manager_call_create_session (
    ConnManBusManager *proxy,
    GVariant *arg_settings,
    const gchar *arg_notifier,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "CreateSession",
    g_variant_new ("(@a{sv}o)",
                   arg_settings,
                   arg_notifier),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_manager_call_create_session_finish:
 * @proxy: A #ConnManBusManagerProxy.
 * @out_session: (out): Return location for return parameter or %NULL to ignore.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_manager_call_create_session().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_manager_call_create_session().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_create_session_finish (
    ConnManBusManager *proxy,
    gchar **out_session,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "(o)",
                 out_session);
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_create_session_sync:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_settings: Argument to pass with the method invocation.
 * @arg_notifier: Argument to pass with the method invocation.
 * @out_session: (out): Return location for return parameter or %NULL to ignore.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Manager.CreateSession">CreateSession()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_manager_call_create_session() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_create_session_sync (
    ConnManBusManager *proxy,
    GVariant *arg_settings,
    const gchar *arg_notifier,
    gchar **out_session,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "CreateSession",
    g_variant_new ("(@a{sv}o)",
                   arg_settings,
                   arg_notifier),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "(o)",
                 out_session);
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_destroy_session:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_session: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Manager.DestroySession">DestroySession()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_manager_call_destroy_session_finish() to get the result of the operation.
 *
 * See conn_man_bus_manager_call_destroy_session_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_manager_call_destroy_session (
    ConnManBusManager *proxy,
    const gchar *arg_session,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "DestroySession",
    g_variant_new ("(o)",
                   arg_session),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_manager_call_destroy_session_finish:
 * @proxy: A #ConnManBusManagerProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_manager_call_destroy_session().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_manager_call_destroy_session().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_destroy_session_finish (
    ConnManBusManager *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_destroy_session_sync:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_session: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Manager.DestroySession">DestroySession()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_manager_call_destroy_session() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_destroy_session_sync (
    ConnManBusManager *proxy,
    const gchar *arg_session,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "DestroySession",
    g_variant_new ("(o)",
                   arg_session),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_request_private_network:
 * @proxy: A #ConnManBusManagerProxy.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Manager.RequestPrivateNetwork">RequestPrivateNetwork()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_manager_call_request_private_network_finish() to get the result of the operation.
 *
 * See conn_man_bus_manager_call_request_private_network_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_manager_call_request_private_network (
    ConnManBusManager *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "RequestPrivateNetwork",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_manager_call_request_private_network_finish:
 * @proxy: A #ConnManBusManagerProxy.
 * @out_path: (out): Return location for return parameter or %NULL to ignore.
 * @out_settings: (out): Return location for return parameter or %NULL to ignore.
 * @out_socket: (out): Return location for return parameter or %NULL to ignore.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_manager_call_request_private_network().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_manager_call_request_private_network().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_request_private_network_finish (
    ConnManBusManager *proxy,
    gchar **out_path,
    GVariant **out_settings,
    GVariant **out_socket,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "(o@a{sv}@h)",
                 out_path,
                 out_settings,
                 out_socket);
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_request_private_network_sync:
 * @proxy: A #ConnManBusManagerProxy.
 * @out_path: (out): Return location for return parameter or %NULL to ignore.
 * @out_settings: (out): Return location for return parameter or %NULL to ignore.
 * @out_socket: (out): Return location for return parameter or %NULL to ignore.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Manager.RequestPrivateNetwork">RequestPrivateNetwork()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_manager_call_request_private_network() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_request_private_network_sync (
    ConnManBusManager *proxy,
    gchar **out_path,
    GVariant **out_settings,
    GVariant **out_socket,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "RequestPrivateNetwork",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "(o@a{sv}@h)",
                 out_path,
                 out_settings,
                 out_socket);
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_release_private_network:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_path: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Manager.ReleasePrivateNetwork">ReleasePrivateNetwork()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_manager_call_release_private_network_finish() to get the result of the operation.
 *
 * See conn_man_bus_manager_call_release_private_network_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_manager_call_release_private_network (
    ConnManBusManager *proxy,
    const gchar *arg_path,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "ReleasePrivateNetwork",
    g_variant_new ("(o)",
                   arg_path),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_manager_call_release_private_network_finish:
 * @proxy: A #ConnManBusManagerProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_manager_call_release_private_network().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_manager_call_release_private_network().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_release_private_network_finish (
    ConnManBusManager *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_release_private_network_sync:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_path: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Manager.ReleasePrivateNetwork">ReleasePrivateNetwork()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_manager_call_release_private_network() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_release_private_network_sync (
    ConnManBusManager *proxy,
    const gchar *arg_path,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "ReleasePrivateNetwork",
    g_variant_new ("(o)",
                   arg_path),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_register_peer_service:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_specification: Argument to pass with the method invocation.
 * @arg_master: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Manager.RegisterPeerService">RegisterPeerService()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_manager_call_register_peer_service_finish() to get the result of the operation.
 *
 * See conn_man_bus_manager_call_register_peer_service_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_manager_call_register_peer_service (
    ConnManBusManager *proxy,
    GVariant *arg_specification,
    gboolean arg_master,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "RegisterPeerService",
    g_variant_new ("(@a{sv}b)",
                   arg_specification,
                   arg_master),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_manager_call_register_peer_service_finish:
 * @proxy: A #ConnManBusManagerProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_manager_call_register_peer_service().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_manager_call_register_peer_service().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_register_peer_service_finish (
    ConnManBusManager *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_register_peer_service_sync:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_specification: Argument to pass with the method invocation.
 * @arg_master: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Manager.RegisterPeerService">RegisterPeerService()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_manager_call_register_peer_service() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_register_peer_service_sync (
    ConnManBusManager *proxy,
    GVariant *arg_specification,
    gboolean arg_master,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "RegisterPeerService",
    g_variant_new ("(@a{sv}b)",
                   arg_specification,
                   arg_master),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_unregister_peer_service:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_specification: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Manager.UnregisterPeerService">UnregisterPeerService()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_manager_call_unregister_peer_service_finish() to get the result of the operation.
 *
 * See conn_man_bus_manager_call_unregister_peer_service_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_manager_call_unregister_peer_service (
    ConnManBusManager *proxy,
    GVariant *arg_specification,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "UnregisterPeerService",
    g_variant_new ("(@a{sv})",
                   arg_specification),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_manager_call_unregister_peer_service_finish:
 * @proxy: A #ConnManBusManagerProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_manager_call_unregister_peer_service().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_manager_call_unregister_peer_service().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_unregister_peer_service_finish (
    ConnManBusManager *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_call_unregister_peer_service_sync:
 * @proxy: A #ConnManBusManagerProxy.
 * @arg_specification: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Manager.UnregisterPeerService">UnregisterPeerService()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_manager_call_unregister_peer_service() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_manager_call_unregister_peer_service_sync (
    ConnManBusManager *proxy,
    GVariant *arg_specification,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "UnregisterPeerService",
    g_variant_new ("(@a{sv})",
                   arg_specification),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_manager_complete_get_properties:
 * @object: A #ConnManBusManager.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 * @properties: Parameter to return.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Manager.GetProperties">GetProperties()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_manager_complete_get_properties (
    ConnManBusManager *object,
    GDBusMethodInvocation *invocation,
    GVariant *properties)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("(@a{sv})",
                   properties));
}

/**
 * conn_man_bus_manager_complete_set_property:
 * @object: A #ConnManBusManager.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Manager.SetProperty">SetProperty()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_manager_complete_set_property (
    ConnManBusManager *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/**
 * conn_man_bus_manager_complete_get_technologies:
 * @object: A #ConnManBusManager.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 * @technologies: Parameter to return.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Manager.GetTechnologies">GetTechnologies()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_manager_complete_get_technologies (
    ConnManBusManager *object,
    GDBusMethodInvocation *invocation,
    GVariant *technologies)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("(@a(oa{sv}))",
                   technologies));
}

/**
 * conn_man_bus_manager_complete_remove_provider:
 * @object: A #ConnManBusManager.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Manager.RemoveProvider">RemoveProvider()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 *
 * Deprecated: The D-Bus method has been deprecated.
 */
void
conn_man_bus_manager_complete_remove_provider (
    ConnManBusManager *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/**
 * conn_man_bus_manager_complete_get_services:
 * @object: A #ConnManBusManager.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 * @services: Parameter to return.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Manager.GetServices">GetServices()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_manager_complete_get_services (
    ConnManBusManager *object,
    GDBusMethodInvocation *invocation,
    GVariant *services)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("(@a(oa{sv}))",
                   services));
}

/**
 * conn_man_bus_manager_complete_get_peers:
 * @object: A #ConnManBusManager.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 * @peers: Parameter to return.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Manager.GetPeers">GetPeers()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_manager_complete_get_peers (
    ConnManBusManager *object,
    GDBusMethodInvocation *invocation,
    GVariant *peers)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("(@a(oa{sv}))",
                   peers));
}

/**
 * conn_man_bus_manager_complete_connect_provider:
 * @object: A #ConnManBusManager.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 * @path: Parameter to return.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Manager.ConnectProvider">ConnectProvider()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 *
 * Deprecated: The D-Bus method has been deprecated.
 */
void
conn_man_bus_manager_complete_connect_provider (
    ConnManBusManager *object,
    GDBusMethodInvocation *invocation,
    const gchar *path)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("(o)",
                   path));
}

/**
 * conn_man_bus_manager_complete_register_agent:
 * @object: A #ConnManBusManager.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Manager.RegisterAgent">RegisterAgent()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_manager_complete_register_agent (
    ConnManBusManager *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/**
 * conn_man_bus_manager_complete_unregister_agent:
 * @object: A #ConnManBusManager.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Manager.UnregisterAgent">UnregisterAgent()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_manager_complete_unregister_agent (
    ConnManBusManager *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/**
 * conn_man_bus_manager_complete_register_counter:
 * @object: A #ConnManBusManager.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Manager.RegisterCounter">RegisterCounter()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_manager_complete_register_counter (
    ConnManBusManager *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/**
 * conn_man_bus_manager_complete_unregister_counter:
 * @object: A #ConnManBusManager.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Manager.UnregisterCounter">UnregisterCounter()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_manager_complete_unregister_counter (
    ConnManBusManager *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/**
 * conn_man_bus_manager_complete_create_session:
 * @object: A #ConnManBusManager.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 * @session: Parameter to return.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Manager.CreateSession">CreateSession()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_manager_complete_create_session (
    ConnManBusManager *object,
    GDBusMethodInvocation *invocation,
    const gchar *session)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("(o)",
                   session));
}

/**
 * conn_man_bus_manager_complete_destroy_session:
 * @object: A #ConnManBusManager.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Manager.DestroySession">DestroySession()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_manager_complete_destroy_session (
    ConnManBusManager *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/**
 * conn_man_bus_manager_complete_request_private_network:
 * @object: A #ConnManBusManager.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 * @path: Parameter to return.
 * @settings: Parameter to return.
 * @socket: Parameter to return.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Manager.RequestPrivateNetwork">RequestPrivateNetwork()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_manager_complete_request_private_network (
    ConnManBusManager *object,
    GDBusMethodInvocation *invocation,
    const gchar *path,
    GVariant *settings,
    GVariant *socket)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("(o@a{sv}@h)",
                   path,
                   settings,
                   socket));
}

/**
 * conn_man_bus_manager_complete_release_private_network:
 * @object: A #ConnManBusManager.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Manager.ReleasePrivateNetwork">ReleasePrivateNetwork()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_manager_complete_release_private_network (
    ConnManBusManager *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/**
 * conn_man_bus_manager_complete_register_peer_service:
 * @object: A #ConnManBusManager.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Manager.RegisterPeerService">RegisterPeerService()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_manager_complete_register_peer_service (
    ConnManBusManager *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/**
 * conn_man_bus_manager_complete_unregister_peer_service:
 * @object: A #ConnManBusManager.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Manager.UnregisterPeerService">UnregisterPeerService()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_manager_complete_unregister_peer_service (
    ConnManBusManager *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/* ------------------------------------------------------------------------ */

/**
 * ConnManBusManagerProxy:
 *
 * The #ConnManBusManagerProxy structure contains only private data and should only be accessed using the provided API.
 */

/**
 * ConnManBusManagerProxyClass:
 * @parent_class: The parent class.
 *
 * Class structure for #ConnManBusManagerProxy.
 */

struct _ConnManBusManagerProxyPrivate
{
  GData *qdata;
};

static void conn_man_bus_manager_proxy_iface_init (ConnManBusManagerIface *iface);

#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
G_DEFINE_TYPE_WITH_CODE (ConnManBusManagerProxy, conn_man_bus_manager_proxy, G_TYPE_DBUS_PROXY,
                         G_ADD_PRIVATE (ConnManBusManagerProxy)
                         G_IMPLEMENT_INTERFACE (CONN_MAN_BUS_TYPE_MANAGER, conn_man_bus_manager_proxy_iface_init));

#else
G_DEFINE_TYPE_WITH_CODE (ConnManBusManagerProxy, conn_man_bus_manager_proxy, G_TYPE_DBUS_PROXY,
                         G_IMPLEMENT_INTERFACE (CONN_MAN_BUS_TYPE_MANAGER, conn_man_bus_manager_proxy_iface_init));

#endif
static void
conn_man_bus_manager_proxy_finalize (GObject *object)
{
  ConnManBusManagerProxy *proxy = CONN_MAN_BUS_MANAGER_PROXY (object);
  g_datalist_clear (&proxy->priv->qdata);
  G_OBJECT_CLASS (conn_man_bus_manager_proxy_parent_class)->finalize (object);
}

static void
conn_man_bus_manager_proxy_get_property (GObject      *object,
  guint         prop_id,
  GValue       *value,
  GParamSpec   *pspec G_GNUC_UNUSED)
{
}

static void
conn_man_bus_manager_proxy_set_property (GObject      *object,
  guint         prop_id,
  const GValue *value,
  GParamSpec   *pspec G_GNUC_UNUSED)
{
}

static void
conn_man_bus_manager_proxy_g_signal (GDBusProxy *proxy,
  const gchar *sender_name G_GNUC_UNUSED,
  const gchar *signal_name,
  GVariant *parameters)
{
  _ExtendedGDBusSignalInfo *info;
  GVariantIter iter;
  GVariant *child;
  GValue *paramv;
  guint num_params;
  guint n;
  guint signal_id;
  info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_conn_man_bus_manager_interface_info.parent_struct, signal_name);
  if (info == NULL)
    return;
  num_params = g_variant_n_children (parameters);
  paramv = g_new0 (GValue, num_params + 1);
  g_value_init (&paramv[0], CONN_MAN_BUS_TYPE_MANAGER);
  g_value_set_object (&paramv[0], proxy);
  g_variant_iter_init (&iter, parameters);
  n = 1;
  while ((child = g_variant_iter_next_value (&iter)) != NULL)
    {
      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
      if (arg_info->use_gvariant)
        {
          g_value_init (&paramv[n], G_TYPE_VARIANT);
          g_value_set_variant (&paramv[n], child);
          n++;
        }
      else
        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
      g_variant_unref (child);
    }
  signal_id = g_signal_lookup (info->signal_name, CONN_MAN_BUS_TYPE_MANAGER);
  g_signal_emitv (paramv, signal_id, 0, NULL);
  for (n = 0; n < num_params + 1; n++)
    g_value_unset (&paramv[n]);
  g_free (paramv);
}

static void
conn_man_bus_manager_proxy_g_properties_changed (GDBusProxy *_proxy,
  GVariant *changed_properties,
  const gchar *const *invalidated_properties)
{
  ConnManBusManagerProxy *proxy = CONN_MAN_BUS_MANAGER_PROXY (_proxy);
  guint n;
  const gchar *key;
  GVariantIter *iter;
  _ExtendedGDBusPropertyInfo *info;
  g_variant_get (changed_properties, "a{sv}", &iter);
  while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
    {
      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_conn_man_bus_manager_interface_info.parent_struct, key);
      g_datalist_remove_data (&proxy->priv->qdata, key);
      if (info != NULL)
        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
    }
  g_variant_iter_free (iter);
  for (n = 0; invalidated_properties[n] != NULL; n++)
    {
      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_conn_man_bus_manager_interface_info.parent_struct, invalidated_properties[n]);
      g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
      if (info != NULL)
        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
    }
}

static void
conn_man_bus_manager_proxy_init (ConnManBusManagerProxy *proxy)
{
#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
  proxy->priv = conn_man_bus_manager_proxy_get_instance_private (proxy);
#else
  proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, CONN_MAN_BUS_TYPE_MANAGER_PROXY, ConnManBusManagerProxyPrivate);
#endif

  g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), conn_man_bus_manager_interface_info ());
}

static void
conn_man_bus_manager_proxy_class_init (ConnManBusManagerProxyClass *klass)
{
  GObjectClass *gobject_class;
  GDBusProxyClass *proxy_class;

  gobject_class = G_OBJECT_CLASS (klass);
  gobject_class->finalize     = conn_man_bus_manager_proxy_finalize;
  gobject_class->get_property = conn_man_bus_manager_proxy_get_property;
  gobject_class->set_property = conn_man_bus_manager_proxy_set_property;

  proxy_class = G_DBUS_PROXY_CLASS (klass);
  proxy_class->g_signal = conn_man_bus_manager_proxy_g_signal;
  proxy_class->g_properties_changed = conn_man_bus_manager_proxy_g_properties_changed;

#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
  g_type_class_add_private (klass, sizeof (ConnManBusManagerProxyPrivate));
#endif
}

static void
conn_man_bus_manager_proxy_iface_init (ConnManBusManagerIface *iface)
{
}

/**
 * conn_man_bus_manager_proxy_new:
 * @connection: A #GDBusConnection.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-net-connman-Manager.top_of_page">net.connman.Manager</link>. See g_dbus_proxy_new() for more details.
 *
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_manager_proxy_new_finish() to get the result of the operation.
 *
 * See conn_man_bus_manager_proxy_new_sync() for the synchronous, blocking version of this constructor.
 */
void
conn_man_bus_manager_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data)
{
  g_async_initable_new_async (CONN_MAN_BUS_TYPE_MANAGER_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "net.connman.Manager", NULL);
}

/**
 * conn_man_bus_manager_proxy_new_finish:
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_manager_proxy_new().
 * @error: Return location for error or %NULL
 *
 * Finishes an operation started with conn_man_bus_manager_proxy_new().
 *
 * Returns: (transfer full) (type ConnManBusManagerProxy): The constructed proxy object or %NULL if @error is set.
 */
ConnManBusManager *
conn_man_bus_manager_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error)
{
  GObject *ret;
  GObject *source_object;
  source_object = g_async_result_get_source_object (res);
  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
  g_object_unref (source_object);
  if (ret != NULL)
    return CONN_MAN_BUS_MANAGER (ret);
  else
    return NULL;
}

/**
 * conn_man_bus_manager_proxy_new_sync:
 * @connection: A #GDBusConnection.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL
 *
 * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-net-connman-Manager.top_of_page">net.connman.Manager</link>. See g_dbus_proxy_new_sync() for more details.
 *
 * The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_manager_proxy_new() for the asynchronous version of this constructor.
 *
 * Returns: (transfer full) (type ConnManBusManagerProxy): The constructed proxy object or %NULL if @error is set.
 */
ConnManBusManager *
conn_man_bus_manager_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error)
{
  GInitable *ret;
  ret = g_initable_new (CONN_MAN_BUS_TYPE_MANAGER_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "net.connman.Manager", NULL);
  if (ret != NULL)
    return CONN_MAN_BUS_MANAGER (ret);
  else
    return NULL;
}


/**
 * conn_man_bus_manager_proxy_new_for_bus:
 * @bus_type: A #GBusType.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: A bus name (well-known or unique).
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
 * @user_data: User data to pass to @callback.
 *
 * Like conn_man_bus_manager_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
 *
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_manager_proxy_new_for_bus_finish() to get the result of the operation.
 *
 * See conn_man_bus_manager_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
 */
void
conn_man_bus_manager_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data)
{
  g_async_initable_new_async (CONN_MAN_BUS_TYPE_MANAGER_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "net.connman.Manager", NULL);
}

/**
 * conn_man_bus_manager_proxy_new_for_bus_finish:
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_manager_proxy_new_for_bus().
 * @error: Return location for error or %NULL
 *
 * Finishes an operation started with conn_man_bus_manager_proxy_new_for_bus().
 *
 * Returns: (transfer full) (type ConnManBusManagerProxy): The constructed proxy object or %NULL if @error is set.
 */
ConnManBusManager *
conn_man_bus_manager_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error)
{
  GObject *ret;
  GObject *source_object;
  source_object = g_async_result_get_source_object (res);
  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
  g_object_unref (source_object);
  if (ret != NULL)
    return CONN_MAN_BUS_MANAGER (ret);
  else
    return NULL;
}

/**
 * conn_man_bus_manager_proxy_new_for_bus_sync:
 * @bus_type: A #GBusType.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: A bus name (well-known or unique).
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL
 *
 * Like conn_man_bus_manager_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
 *
 * The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_manager_proxy_new_for_bus() for the asynchronous version of this constructor.
 *
 * Returns: (transfer full) (type ConnManBusManagerProxy): The constructed proxy object or %NULL if @error is set.
 */
ConnManBusManager *
conn_man_bus_manager_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error)
{
  GInitable *ret;
  ret = g_initable_new (CONN_MAN_BUS_TYPE_MANAGER_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "net.connman.Manager", NULL);
  if (ret != NULL)
    return CONN_MAN_BUS_MANAGER (ret);
  else
    return NULL;
}


/* ------------------------------------------------------------------------ */

/**
 * ConnManBusManagerSkeleton:
 *
 * The #ConnManBusManagerSkeleton structure contains only private data and should only be accessed using the provided API.
 */

/**
 * ConnManBusManagerSkeletonClass:
 * @parent_class: The parent class.
 *
 * Class structure for #ConnManBusManagerSkeleton.
 */

struct _ConnManBusManagerSkeletonPrivate
{
  GValue *properties;
  GList *changed_properties;
  GSource *changed_properties_idle_source;
  GMainContext *context;
  GMutex lock;
};

static void
_conn_man_bus_manager_skeleton_handle_method_call (
  GDBusConnection *connection G_GNUC_UNUSED,
  const gchar *sender G_GNUC_UNUSED,
  const gchar *object_path G_GNUC_UNUSED,
  const gchar *interface_name,
  const gchar *method_name,
  GVariant *parameters,
  GDBusMethodInvocation *invocation,
  gpointer user_data)
{
  ConnManBusManagerSkeleton *skeleton = CONN_MAN_BUS_MANAGER_SKELETON (user_data);
  _ExtendedGDBusMethodInfo *info;
  GVariantIter iter;
  GVariant *child;
  GValue *paramv;
  guint num_params;
  guint num_extra;
  guint n;
  guint signal_id;
  GValue return_value = G_VALUE_INIT;
  info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
  g_assert (info != NULL);
  num_params = g_variant_n_children (parameters);
  num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
  n = 0;
  g_value_init (&paramv[n], CONN_MAN_BUS_TYPE_MANAGER);
  g_value_set_object (&paramv[n++], skeleton);
  g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
  g_value_set_object (&paramv[n++], invocation);
  if (info->pass_fdlist)
    {
#ifdef G_OS_UNIX
      g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
      g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
#else
      g_assert_not_reached ();
#endif
    }
  g_variant_iter_init (&iter, parameters);
  while ((child = g_variant_iter_next_value (&iter)) != NULL)
    {
      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
      if (arg_info->use_gvariant)
        {
          g_value_init (&paramv[n], G_TYPE_VARIANT);
          g_value_set_variant (&paramv[n], child);
          n++;
        }
      else
        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
      g_variant_unref (child);
    }
  signal_id = g_signal_lookup (info->signal_name, CONN_MAN_BUS_TYPE_MANAGER);
  g_value_init (&return_value, G_TYPE_BOOLEAN);
  g_signal_emitv (paramv, signal_id, 0, &return_value);
  if (!g_value_get_boolean (&return_value))
    g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name);
  g_value_unset (&return_value);
  for (n = 0; n < num_params + num_extra; n++)
    g_value_unset (&paramv[n]);
  g_free (paramv);
}

static GVariant *
_conn_man_bus_manager_skeleton_handle_get_property (
  GDBusConnection *connection G_GNUC_UNUSED,
  const gchar *sender G_GNUC_UNUSED,
  const gchar *object_path G_GNUC_UNUSED,
  const gchar *interface_name G_GNUC_UNUSED,
  const gchar *property_name,
  GError **error,
  gpointer user_data)
{
  ConnManBusManagerSkeleton *skeleton = CONN_MAN_BUS_MANAGER_SKELETON (user_data);
  GValue value = G_VALUE_INIT;
  GParamSpec *pspec;
  _ExtendedGDBusPropertyInfo *info;
  GVariant *ret;
  ret = NULL;
  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_conn_man_bus_manager_interface_info.parent_struct, property_name);
  g_assert (info != NULL);
  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
  if (pspec == NULL)
    {
      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
    }
  else
    {
      g_value_init (&value, pspec->value_type);
      g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
      ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
      g_value_unset (&value);
    }
  return ret;
}

static gboolean
_conn_man_bus_manager_skeleton_handle_set_property (
  GDBusConnection *connection G_GNUC_UNUSED,
  const gchar *sender G_GNUC_UNUSED,
  const gchar *object_path G_GNUC_UNUSED,
  const gchar *interface_name G_GNUC_UNUSED,
  const gchar *property_name,
  GVariant *variant,
  GError **error,
  gpointer user_data)
{
  ConnManBusManagerSkeleton *skeleton = CONN_MAN_BUS_MANAGER_SKELETON (user_data);
  GValue value = G_VALUE_INIT;
  GParamSpec *pspec;
  _ExtendedGDBusPropertyInfo *info;
  gboolean ret;
  ret = FALSE;
  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_conn_man_bus_manager_interface_info.parent_struct, property_name);
  g_assert (info != NULL);
  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
  if (pspec == NULL)
    {
      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
    }
  else
    {
      if (info->use_gvariant)
        g_value_set_variant (&value, variant);
      else
        g_dbus_gvariant_to_gvalue (variant, &value);
      g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
      g_value_unset (&value);
      ret = TRUE;
    }
  return ret;
}

static const GDBusInterfaceVTable _conn_man_bus_manager_skeleton_vtable =
{
  _conn_man_bus_manager_skeleton_handle_method_call,
  _conn_man_bus_manager_skeleton_handle_get_property,
  _conn_man_bus_manager_skeleton_handle_set_property,
  {NULL}
};

static GDBusInterfaceInfo *
conn_man_bus_manager_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
{
  return conn_man_bus_manager_interface_info ();
}

static GDBusInterfaceVTable *
conn_man_bus_manager_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
{
  return (GDBusInterfaceVTable *) &_conn_man_bus_manager_skeleton_vtable;
}

static GVariant *
conn_man_bus_manager_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
{
  ConnManBusManagerSkeleton *skeleton = CONN_MAN_BUS_MANAGER_SKELETON (_skeleton);

  GVariantBuilder builder;
  guint n;
  g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
  if (_conn_man_bus_manager_interface_info.parent_struct.properties == NULL)
    goto out;
  for (n = 0; _conn_man_bus_manager_interface_info.parent_struct.properties[n] != NULL; n++)
    {
      GDBusPropertyInfo *info = _conn_man_bus_manager_interface_info.parent_struct.properties[n];
      if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
        {
          GVariant *value;
          value = _conn_man_bus_manager_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "net.connman.Manager", info->name, NULL, skeleton);
          if (value != NULL)
            {
              g_variant_take_ref (value);
              g_variant_builder_add (&builder, "{sv}", info->name, value);
              g_variant_unref (value);
            }
        }
    }
out:
  return g_variant_builder_end (&builder);
}

static void
conn_man_bus_manager_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
{
}

static void
_conn_man_bus_manager_on_signal_property_changed (
    ConnManBusManager *object,
    const gchar *arg_name,
    GVariant *arg_value)
{
  ConnManBusManagerSkeleton *skeleton = CONN_MAN_BUS_MANAGER_SKELETON (object);

  GList      *connections, *l;
  GVariant   *signal_variant;
  connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));

  signal_variant = g_variant_ref_sink (g_variant_new ("(s@v)",
                   arg_name,
                   arg_value));
  for (l = connections; l != NULL; l = l->next)
    {
      GDBusConnection *connection = l->data;
      g_dbus_connection_emit_signal (connection,
        NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "net.connman.Manager", "PropertyChanged",
        signal_variant, NULL);
    }
  g_variant_unref (signal_variant);
  g_list_free_full (connections, g_object_unref);
}

static void
_conn_man_bus_manager_on_signal_technology_added (
    ConnManBusManager *object,
    const gchar *arg_path,
    GVariant *arg_properties)
{
  ConnManBusManagerSkeleton *skeleton = CONN_MAN_BUS_MANAGER_SKELETON (object);

  GList      *connections, *l;
  GVariant   *signal_variant;
  connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));

  signal_variant = g_variant_ref_sink (g_variant_new ("(o@a{sv})",
                   arg_path,
                   arg_properties));
  for (l = connections; l != NULL; l = l->next)
    {
      GDBusConnection *connection = l->data;
      g_dbus_connection_emit_signal (connection,
        NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "net.connman.Manager", "TechnologyAdded",
        signal_variant, NULL);
    }
  g_variant_unref (signal_variant);
  g_list_free_full (connections, g_object_unref);
}

static void
_conn_man_bus_manager_on_signal_technology_removed (
    ConnManBusManager *object,
    const gchar *arg_path)
{
  ConnManBusManagerSkeleton *skeleton = CONN_MAN_BUS_MANAGER_SKELETON (object);

  GList      *connections, *l;
  GVariant   *signal_variant;
  connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));

  signal_variant = g_variant_ref_sink (g_variant_new ("(o)",
                   arg_path));
  for (l = connections; l != NULL; l = l->next)
    {
      GDBusConnection *connection = l->data;
      g_dbus_connection_emit_signal (connection,
        NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "net.connman.Manager", "TechnologyRemoved",
        signal_variant, NULL);
    }
  g_variant_unref (signal_variant);
  g_list_free_full (connections, g_object_unref);
}

static void
_conn_man_bus_manager_on_signal_services_changed (
    ConnManBusManager *object,
    GVariant *arg_changed,
    const gchar *const *arg_removed)
{
  ConnManBusManagerSkeleton *skeleton = CONN_MAN_BUS_MANAGER_SKELETON (object);

  GList      *connections, *l;
  GVariant   *signal_variant;
  connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));

  signal_variant = g_variant_ref_sink (g_variant_new ("(@a(oa{sv})^ao)",
                   arg_changed,
                   arg_removed));
  for (l = connections; l != NULL; l = l->next)
    {
      GDBusConnection *connection = l->data;
      g_dbus_connection_emit_signal (connection,
        NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "net.connman.Manager", "ServicesChanged",
        signal_variant, NULL);
    }
  g_variant_unref (signal_variant);
  g_list_free_full (connections, g_object_unref);
}

static void
_conn_man_bus_manager_on_signal_peers_changed (
    ConnManBusManager *object,
    GVariant *arg_changed,
    const gchar *const *arg_removed)
{
  ConnManBusManagerSkeleton *skeleton = CONN_MAN_BUS_MANAGER_SKELETON (object);

  GList      *connections, *l;
  GVariant   *signal_variant;
  connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));

  signal_variant = g_variant_ref_sink (g_variant_new ("(@a(oa{sv})^ao)",
                   arg_changed,
                   arg_removed));
  for (l = connections; l != NULL; l = l->next)
    {
      GDBusConnection *connection = l->data;
      g_dbus_connection_emit_signal (connection,
        NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "net.connman.Manager", "PeersChanged",
        signal_variant, NULL);
    }
  g_variant_unref (signal_variant);
  g_list_free_full (connections, g_object_unref);
}

static void conn_man_bus_manager_skeleton_iface_init (ConnManBusManagerIface *iface);
#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
G_DEFINE_TYPE_WITH_CODE (ConnManBusManagerSkeleton, conn_man_bus_manager_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
                         G_ADD_PRIVATE (ConnManBusManagerSkeleton)
                         G_IMPLEMENT_INTERFACE (CONN_MAN_BUS_TYPE_MANAGER, conn_man_bus_manager_skeleton_iface_init));

#else
G_DEFINE_TYPE_WITH_CODE (ConnManBusManagerSkeleton, conn_man_bus_manager_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
                         G_IMPLEMENT_INTERFACE (CONN_MAN_BUS_TYPE_MANAGER, conn_man_bus_manager_skeleton_iface_init));

#endif
static void
conn_man_bus_manager_skeleton_finalize (GObject *object)
{
  ConnManBusManagerSkeleton *skeleton = CONN_MAN_BUS_MANAGER_SKELETON (object);
  g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
  if (skeleton->priv->changed_properties_idle_source != NULL)
    g_source_destroy (skeleton->priv->changed_properties_idle_source);
  g_main_context_unref (skeleton->priv->context);
  g_mutex_clear (&skeleton->priv->lock);
  G_OBJECT_CLASS (conn_man_bus_manager_skeleton_parent_class)->finalize (object);
}

static void
conn_man_bus_manager_skeleton_init (ConnManBusManagerSkeleton *skeleton)
{
#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
  skeleton->priv = conn_man_bus_manager_skeleton_get_instance_private (skeleton);
#else
  skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, CONN_MAN_BUS_TYPE_MANAGER_SKELETON, ConnManBusManagerSkeletonPrivate);
#endif

  g_mutex_init (&skeleton->priv->lock);
  skeleton->priv->context = g_main_context_ref_thread_default ();
}

static void
conn_man_bus_manager_skeleton_class_init (ConnManBusManagerSkeletonClass *klass)
{
  GObjectClass *gobject_class;
  GDBusInterfaceSkeletonClass *skeleton_class;

  gobject_class = G_OBJECT_CLASS (klass);
  gobject_class->finalize = conn_man_bus_manager_skeleton_finalize;

  skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
  skeleton_class->get_info = conn_man_bus_manager_skeleton_dbus_interface_get_info;
  skeleton_class->get_properties = conn_man_bus_manager_skeleton_dbus_interface_get_properties;
  skeleton_class->flush = conn_man_bus_manager_skeleton_dbus_interface_flush;
  skeleton_class->get_vtable = conn_man_bus_manager_skeleton_dbus_interface_get_vtable;

#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
  g_type_class_add_private (klass, sizeof (ConnManBusManagerSkeletonPrivate));
#endif
}

static void
conn_man_bus_manager_skeleton_iface_init (ConnManBusManagerIface *iface)
{
  iface->property_changed = _conn_man_bus_manager_on_signal_property_changed;
  iface->technology_added = _conn_man_bus_manager_on_signal_technology_added;
  iface->technology_removed = _conn_man_bus_manager_on_signal_technology_removed;
  iface->services_changed = _conn_man_bus_manager_on_signal_services_changed;
  iface->peers_changed = _conn_man_bus_manager_on_signal_peers_changed;
}

/**
 * conn_man_bus_manager_skeleton_new:
 *
 * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-net-connman-Manager.top_of_page">net.connman.Manager</link>.
 *
 * Returns: (transfer full) (type ConnManBusManagerSkeleton): The skeleton object.
 */
ConnManBusManager *
conn_man_bus_manager_skeleton_new (void)
{
  return CONN_MAN_BUS_MANAGER (g_object_new (CONN_MAN_BUS_TYPE_MANAGER_SKELETON, NULL));
}

/* ------------------------------------------------------------------------
 * Code for interface net.connman.Clock
 * ------------------------------------------------------------------------
 */

/**
 * SECTION:ConnManBusClock
 * @title: ConnManBusClock
 * @short_description: Generated C code for the net.connman.Clock D-Bus interface
 *
 * This section contains code for working with the <link linkend="gdbus-interface-net-connman-Clock.top_of_page">net.connman.Clock</link> D-Bus interface in C.
 */

/* ---- Introspection data for net.connman.Clock ---- */

static const _ExtendedGDBusArgInfo _conn_man_bus_clock_method_info_get_properties_OUT_ARG_properties =
{
  {
    -1,
    (gchar *) "properties",
    (gchar *) "a{sv}",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_clock_method_info_get_properties_OUT_ARG_pointers[] =
{
  &_conn_man_bus_clock_method_info_get_properties_OUT_ARG_properties,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_clock_method_info_get_properties =
{
  {
    -1,
    (gchar *) "GetProperties",
    NULL,
    (GDBusArgInfo **) &_conn_man_bus_clock_method_info_get_properties_OUT_ARG_pointers,
    NULL
  },
  "handle-get-properties",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_clock_method_info_set_property_IN_ARG_name =
{
  {
    -1,
    (gchar *) "name",
    (gchar *) "s",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_clock_method_info_set_property_IN_ARG_value =
{
  {
    -1,
    (gchar *) "value",
    (gchar *) "v",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_clock_method_info_set_property_IN_ARG_pointers[] =
{
  &_conn_man_bus_clock_method_info_set_property_IN_ARG_name,
  &_conn_man_bus_clock_method_info_set_property_IN_ARG_value,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_clock_method_info_set_property =
{
  {
    -1,
    (gchar *) "SetProperty",
    (GDBusArgInfo **) &_conn_man_bus_clock_method_info_set_property_IN_ARG_pointers,
    NULL,
    NULL
  },
  "handle-set-property",
  FALSE
};

static const _ExtendedGDBusMethodInfo * const _conn_man_bus_clock_method_info_pointers[] =
{
  &_conn_man_bus_clock_method_info_get_properties,
  &_conn_man_bus_clock_method_info_set_property,
  NULL
};

static const _ExtendedGDBusArgInfo _conn_man_bus_clock_signal_info_property_changed_ARG_name =
{
  {
    -1,
    (gchar *) "name",
    (gchar *) "s",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_clock_signal_info_property_changed_ARG_value =
{
  {
    -1,
    (gchar *) "value",
    (gchar *) "v",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_clock_signal_info_property_changed_ARG_pointers[] =
{
  &_conn_man_bus_clock_signal_info_property_changed_ARG_name,
  &_conn_man_bus_clock_signal_info_property_changed_ARG_value,
  NULL
};

static const _ExtendedGDBusSignalInfo _conn_man_bus_clock_signal_info_property_changed =
{
  {
    -1,
    (gchar *) "PropertyChanged",
    (GDBusArgInfo **) &_conn_man_bus_clock_signal_info_property_changed_ARG_pointers,
    NULL
  },
  "property-changed"
};

static const _ExtendedGDBusSignalInfo * const _conn_man_bus_clock_signal_info_pointers[] =
{
  &_conn_man_bus_clock_signal_info_property_changed,
  NULL
};

static const _ExtendedGDBusInterfaceInfo _conn_man_bus_clock_interface_info =
{
  {
    -1,
    (gchar *) "net.connman.Clock",
    (GDBusMethodInfo **) &_conn_man_bus_clock_method_info_pointers,
    (GDBusSignalInfo **) &_conn_man_bus_clock_signal_info_pointers,
    NULL,
    NULL
  },
  "clock",
};


/**
 * conn_man_bus_clock_interface_info:
 *
 * Gets a machine-readable description of the <link linkend="gdbus-interface-net-connman-Clock.top_of_page">net.connman.Clock</link> D-Bus interface.
 *
 * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
 */
GDBusInterfaceInfo *
conn_man_bus_clock_interface_info (void)
{
  return (GDBusInterfaceInfo *) &_conn_man_bus_clock_interface_info.parent_struct;
}

/**
 * conn_man_bus_clock_override_properties:
 * @klass: The class structure for a #GObject<!-- -->-derived class.
 * @property_id_begin: The property id to assign to the first overridden property.
 *
 * Overrides all #GObject properties in the #ConnManBusClock interface for a concrete class.
 * The properties are overridden in the order they are defined.
 *
 * Returns: The last property id.
 */
guint
conn_man_bus_clock_override_properties (GObjectClass *klass, guint property_id_begin)
{
  return property_id_begin - 1;
}



/**
 * ConnManBusClock:
 *
 * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-net-connman-Clock.top_of_page">net.connman.Clock</link>.
 */

/**
 * ConnManBusClockIface:
 * @parent_iface: The parent interface.
 * @handle_get_properties: Handler for the #ConnManBusClock::handle-get-properties signal.
 * @handle_set_property: Handler for the #ConnManBusClock::handle-set-property signal.
 * @property_changed: Handler for the #ConnManBusClock::property-changed signal.
 *
 * Virtual table for the D-Bus interface <link linkend="gdbus-interface-net-connman-Clock.top_of_page">net.connman.Clock</link>.
 */

typedef ConnManBusClockIface ConnManBusClockInterface;
G_DEFINE_INTERFACE (ConnManBusClock, conn_man_bus_clock, G_TYPE_OBJECT);

static void
conn_man_bus_clock_default_init (ConnManBusClockIface *iface)
{
  /* GObject signals for incoming D-Bus method calls: */
  /**
   * ConnManBusClock::handle-get-properties:
   * @object: A #ConnManBusClock.
   * @invocation: A #GDBusMethodInvocation.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Clock.GetProperties">GetProperties()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_clock_complete_get_properties() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-get-properties",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusClockIface, handle_get_properties),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    1,
    G_TYPE_DBUS_METHOD_INVOCATION);

  /**
   * ConnManBusClock::handle-set-property:
   * @object: A #ConnManBusClock.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_name: Argument passed by remote caller.
   * @arg_value: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Clock.SetProperty">SetProperty()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_clock_complete_set_property() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-set-property",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusClockIface, handle_set_property),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    3,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_VARIANT);

  /* GObject signals for received D-Bus signals: */
  /**
   * ConnManBusClock::property-changed:
   * @object: A #ConnManBusClock.
   * @arg_name: Argument.
   * @arg_value: Argument.
   *
   * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-net-connman-Clock.PropertyChanged">"PropertyChanged"</link> is received.
   *
   * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
   */
  g_signal_new ("property-changed",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusClockIface, property_changed),
    NULL,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_NONE,
    2, G_TYPE_STRING, G_TYPE_VARIANT);

}

/**
 * conn_man_bus_clock_emit_property_changed:
 * @object: A #ConnManBusClock.
 * @arg_name: Argument to pass with the signal.
 * @arg_value: Argument to pass with the signal.
 *
 * Emits the <link linkend="gdbus-signal-net-connman-Clock.PropertyChanged">"PropertyChanged"</link> D-Bus signal.
 */
void
conn_man_bus_clock_emit_property_changed (
    ConnManBusClock *object,
    const gchar *arg_name,
    GVariant *arg_value)
{
  g_signal_emit_by_name (object, "property-changed", arg_name, arg_value);
}

/**
 * conn_man_bus_clock_call_get_properties:
 * @proxy: A #ConnManBusClockProxy.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Clock.GetProperties">GetProperties()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_clock_call_get_properties_finish() to get the result of the operation.
 *
 * See conn_man_bus_clock_call_get_properties_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_clock_call_get_properties (
    ConnManBusClock *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "GetProperties",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_clock_call_get_properties_finish:
 * @proxy: A #ConnManBusClockProxy.
 * @out_properties: (out): Return location for return parameter or %NULL to ignore.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_clock_call_get_properties().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_clock_call_get_properties().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_clock_call_get_properties_finish (
    ConnManBusClock *proxy,
    GVariant **out_properties,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "(@a{sv})",
                 out_properties);
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_clock_call_get_properties_sync:
 * @proxy: A #ConnManBusClockProxy.
 * @out_properties: (out): Return location for return parameter or %NULL to ignore.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Clock.GetProperties">GetProperties()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_clock_call_get_properties() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_clock_call_get_properties_sync (
    ConnManBusClock *proxy,
    GVariant **out_properties,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "GetProperties",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "(@a{sv})",
                 out_properties);
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_clock_call_set_property:
 * @proxy: A #ConnManBusClockProxy.
 * @arg_name: Argument to pass with the method invocation.
 * @arg_value: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Clock.SetProperty">SetProperty()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_clock_call_set_property_finish() to get the result of the operation.
 *
 * See conn_man_bus_clock_call_set_property_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_clock_call_set_property (
    ConnManBusClock *proxy,
    const gchar *arg_name,
    GVariant *arg_value,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "SetProperty",
    g_variant_new ("(s@v)",
                   arg_name,
                   arg_value),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_clock_call_set_property_finish:
 * @proxy: A #ConnManBusClockProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_clock_call_set_property().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_clock_call_set_property().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_clock_call_set_property_finish (
    ConnManBusClock *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_clock_call_set_property_sync:
 * @proxy: A #ConnManBusClockProxy.
 * @arg_name: Argument to pass with the method invocation.
 * @arg_value: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Clock.SetProperty">SetProperty()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_clock_call_set_property() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_clock_call_set_property_sync (
    ConnManBusClock *proxy,
    const gchar *arg_name,
    GVariant *arg_value,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "SetProperty",
    g_variant_new ("(s@v)",
                   arg_name,
                   arg_value),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_clock_complete_get_properties:
 * @object: A #ConnManBusClock.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 * @properties: Parameter to return.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Clock.GetProperties">GetProperties()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_clock_complete_get_properties (
    ConnManBusClock *object,
    GDBusMethodInvocation *invocation,
    GVariant *properties)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("(@a{sv})",
                   properties));
}

/**
 * conn_man_bus_clock_complete_set_property:
 * @object: A #ConnManBusClock.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Clock.SetProperty">SetProperty()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_clock_complete_set_property (
    ConnManBusClock *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/* ------------------------------------------------------------------------ */

/**
 * ConnManBusClockProxy:
 *
 * The #ConnManBusClockProxy structure contains only private data and should only be accessed using the provided API.
 */

/**
 * ConnManBusClockProxyClass:
 * @parent_class: The parent class.
 *
 * Class structure for #ConnManBusClockProxy.
 */

struct _ConnManBusClockProxyPrivate
{
  GData *qdata;
};

static void conn_man_bus_clock_proxy_iface_init (ConnManBusClockIface *iface);

#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
G_DEFINE_TYPE_WITH_CODE (ConnManBusClockProxy, conn_man_bus_clock_proxy, G_TYPE_DBUS_PROXY,
                         G_ADD_PRIVATE (ConnManBusClockProxy)
                         G_IMPLEMENT_INTERFACE (CONN_MAN_BUS_TYPE_CLOCK, conn_man_bus_clock_proxy_iface_init));

#else
G_DEFINE_TYPE_WITH_CODE (ConnManBusClockProxy, conn_man_bus_clock_proxy, G_TYPE_DBUS_PROXY,
                         G_IMPLEMENT_INTERFACE (CONN_MAN_BUS_TYPE_CLOCK, conn_man_bus_clock_proxy_iface_init));

#endif
static void
conn_man_bus_clock_proxy_finalize (GObject *object)
{
  ConnManBusClockProxy *proxy = CONN_MAN_BUS_CLOCK_PROXY (object);
  g_datalist_clear (&proxy->priv->qdata);
  G_OBJECT_CLASS (conn_man_bus_clock_proxy_parent_class)->finalize (object);
}

static void
conn_man_bus_clock_proxy_get_property (GObject      *object,
  guint         prop_id,
  GValue       *value,
  GParamSpec   *pspec G_GNUC_UNUSED)
{
}

static void
conn_man_bus_clock_proxy_set_property (GObject      *object,
  guint         prop_id,
  const GValue *value,
  GParamSpec   *pspec G_GNUC_UNUSED)
{
}

static void
conn_man_bus_clock_proxy_g_signal (GDBusProxy *proxy,
  const gchar *sender_name G_GNUC_UNUSED,
  const gchar *signal_name,
  GVariant *parameters)
{
  _ExtendedGDBusSignalInfo *info;
  GVariantIter iter;
  GVariant *child;
  GValue *paramv;
  guint num_params;
  guint n;
  guint signal_id;
  info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_conn_man_bus_clock_interface_info.parent_struct, signal_name);
  if (info == NULL)
    return;
  num_params = g_variant_n_children (parameters);
  paramv = g_new0 (GValue, num_params + 1);
  g_value_init (&paramv[0], CONN_MAN_BUS_TYPE_CLOCK);
  g_value_set_object (&paramv[0], proxy);
  g_variant_iter_init (&iter, parameters);
  n = 1;
  while ((child = g_variant_iter_next_value (&iter)) != NULL)
    {
      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
      if (arg_info->use_gvariant)
        {
          g_value_init (&paramv[n], G_TYPE_VARIANT);
          g_value_set_variant (&paramv[n], child);
          n++;
        }
      else
        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
      g_variant_unref (child);
    }
  signal_id = g_signal_lookup (info->signal_name, CONN_MAN_BUS_TYPE_CLOCK);
  g_signal_emitv (paramv, signal_id, 0, NULL);
  for (n = 0; n < num_params + 1; n++)
    g_value_unset (&paramv[n]);
  g_free (paramv);
}

static void
conn_man_bus_clock_proxy_g_properties_changed (GDBusProxy *_proxy,
  GVariant *changed_properties,
  const gchar *const *invalidated_properties)
{
  ConnManBusClockProxy *proxy = CONN_MAN_BUS_CLOCK_PROXY (_proxy);
  guint n;
  const gchar *key;
  GVariantIter *iter;
  _ExtendedGDBusPropertyInfo *info;
  g_variant_get (changed_properties, "a{sv}", &iter);
  while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
    {
      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_conn_man_bus_clock_interface_info.parent_struct, key);
      g_datalist_remove_data (&proxy->priv->qdata, key);
      if (info != NULL)
        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
    }
  g_variant_iter_free (iter);
  for (n = 0; invalidated_properties[n] != NULL; n++)
    {
      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_conn_man_bus_clock_interface_info.parent_struct, invalidated_properties[n]);
      g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
      if (info != NULL)
        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
    }
}

static void
conn_man_bus_clock_proxy_init (ConnManBusClockProxy *proxy)
{
#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
  proxy->priv = conn_man_bus_clock_proxy_get_instance_private (proxy);
#else
  proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, CONN_MAN_BUS_TYPE_CLOCK_PROXY, ConnManBusClockProxyPrivate);
#endif

  g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), conn_man_bus_clock_interface_info ());
}

static void
conn_man_bus_clock_proxy_class_init (ConnManBusClockProxyClass *klass)
{
  GObjectClass *gobject_class;
  GDBusProxyClass *proxy_class;

  gobject_class = G_OBJECT_CLASS (klass);
  gobject_class->finalize     = conn_man_bus_clock_proxy_finalize;
  gobject_class->get_property = conn_man_bus_clock_proxy_get_property;
  gobject_class->set_property = conn_man_bus_clock_proxy_set_property;

  proxy_class = G_DBUS_PROXY_CLASS (klass);
  proxy_class->g_signal = conn_man_bus_clock_proxy_g_signal;
  proxy_class->g_properties_changed = conn_man_bus_clock_proxy_g_properties_changed;

#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
  g_type_class_add_private (klass, sizeof (ConnManBusClockProxyPrivate));
#endif
}

static void
conn_man_bus_clock_proxy_iface_init (ConnManBusClockIface *iface)
{
}

/**
 * conn_man_bus_clock_proxy_new:
 * @connection: A #GDBusConnection.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-net-connman-Clock.top_of_page">net.connman.Clock</link>. See g_dbus_proxy_new() for more details.
 *
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_clock_proxy_new_finish() to get the result of the operation.
 *
 * See conn_man_bus_clock_proxy_new_sync() for the synchronous, blocking version of this constructor.
 */
void
conn_man_bus_clock_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data)
{
  g_async_initable_new_async (CONN_MAN_BUS_TYPE_CLOCK_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "net.connman.Clock", NULL);
}

/**
 * conn_man_bus_clock_proxy_new_finish:
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_clock_proxy_new().
 * @error: Return location for error or %NULL
 *
 * Finishes an operation started with conn_man_bus_clock_proxy_new().
 *
 * Returns: (transfer full) (type ConnManBusClockProxy): The constructed proxy object or %NULL if @error is set.
 */
ConnManBusClock *
conn_man_bus_clock_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error)
{
  GObject *ret;
  GObject *source_object;
  source_object = g_async_result_get_source_object (res);
  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
  g_object_unref (source_object);
  if (ret != NULL)
    return CONN_MAN_BUS_CLOCK (ret);
  else
    return NULL;
}

/**
 * conn_man_bus_clock_proxy_new_sync:
 * @connection: A #GDBusConnection.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL
 *
 * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-net-connman-Clock.top_of_page">net.connman.Clock</link>. See g_dbus_proxy_new_sync() for more details.
 *
 * The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_clock_proxy_new() for the asynchronous version of this constructor.
 *
 * Returns: (transfer full) (type ConnManBusClockProxy): The constructed proxy object or %NULL if @error is set.
 */
ConnManBusClock *
conn_man_bus_clock_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error)
{
  GInitable *ret;
  ret = g_initable_new (CONN_MAN_BUS_TYPE_CLOCK_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "net.connman.Clock", NULL);
  if (ret != NULL)
    return CONN_MAN_BUS_CLOCK (ret);
  else
    return NULL;
}


/**
 * conn_man_bus_clock_proxy_new_for_bus:
 * @bus_type: A #GBusType.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: A bus name (well-known or unique).
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
 * @user_data: User data to pass to @callback.
 *
 * Like conn_man_bus_clock_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
 *
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_clock_proxy_new_for_bus_finish() to get the result of the operation.
 *
 * See conn_man_bus_clock_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
 */
void
conn_man_bus_clock_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data)
{
  g_async_initable_new_async (CONN_MAN_BUS_TYPE_CLOCK_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "net.connman.Clock", NULL);
}

/**
 * conn_man_bus_clock_proxy_new_for_bus_finish:
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_clock_proxy_new_for_bus().
 * @error: Return location for error or %NULL
 *
 * Finishes an operation started with conn_man_bus_clock_proxy_new_for_bus().
 *
 * Returns: (transfer full) (type ConnManBusClockProxy): The constructed proxy object or %NULL if @error is set.
 */
ConnManBusClock *
conn_man_bus_clock_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error)
{
  GObject *ret;
  GObject *source_object;
  source_object = g_async_result_get_source_object (res);
  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
  g_object_unref (source_object);
  if (ret != NULL)
    return CONN_MAN_BUS_CLOCK (ret);
  else
    return NULL;
}

/**
 * conn_man_bus_clock_proxy_new_for_bus_sync:
 * @bus_type: A #GBusType.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: A bus name (well-known or unique).
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL
 *
 * Like conn_man_bus_clock_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
 *
 * The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_clock_proxy_new_for_bus() for the asynchronous version of this constructor.
 *
 * Returns: (transfer full) (type ConnManBusClockProxy): The constructed proxy object or %NULL if @error is set.
 */
ConnManBusClock *
conn_man_bus_clock_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error)
{
  GInitable *ret;
  ret = g_initable_new (CONN_MAN_BUS_TYPE_CLOCK_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "net.connman.Clock", NULL);
  if (ret != NULL)
    return CONN_MAN_BUS_CLOCK (ret);
  else
    return NULL;
}


/* ------------------------------------------------------------------------ */

/**
 * ConnManBusClockSkeleton:
 *
 * The #ConnManBusClockSkeleton structure contains only private data and should only be accessed using the provided API.
 */

/**
 * ConnManBusClockSkeletonClass:
 * @parent_class: The parent class.
 *
 * Class structure for #ConnManBusClockSkeleton.
 */

struct _ConnManBusClockSkeletonPrivate
{
  GValue *properties;
  GList *changed_properties;
  GSource *changed_properties_idle_source;
  GMainContext *context;
  GMutex lock;
};

static void
_conn_man_bus_clock_skeleton_handle_method_call (
  GDBusConnection *connection G_GNUC_UNUSED,
  const gchar *sender G_GNUC_UNUSED,
  const gchar *object_path G_GNUC_UNUSED,
  const gchar *interface_name,
  const gchar *method_name,
  GVariant *parameters,
  GDBusMethodInvocation *invocation,
  gpointer user_data)
{
  ConnManBusClockSkeleton *skeleton = CONN_MAN_BUS_CLOCK_SKELETON (user_data);
  _ExtendedGDBusMethodInfo *info;
  GVariantIter iter;
  GVariant *child;
  GValue *paramv;
  guint num_params;
  guint num_extra;
  guint n;
  guint signal_id;
  GValue return_value = G_VALUE_INIT;
  info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
  g_assert (info != NULL);
  num_params = g_variant_n_children (parameters);
  num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
  n = 0;
  g_value_init (&paramv[n], CONN_MAN_BUS_TYPE_CLOCK);
  g_value_set_object (&paramv[n++], skeleton);
  g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
  g_value_set_object (&paramv[n++], invocation);
  if (info->pass_fdlist)
    {
#ifdef G_OS_UNIX
      g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
      g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
#else
      g_assert_not_reached ();
#endif
    }
  g_variant_iter_init (&iter, parameters);
  while ((child = g_variant_iter_next_value (&iter)) != NULL)
    {
      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
      if (arg_info->use_gvariant)
        {
          g_value_init (&paramv[n], G_TYPE_VARIANT);
          g_value_set_variant (&paramv[n], child);
          n++;
        }
      else
        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
      g_variant_unref (child);
    }
  signal_id = g_signal_lookup (info->signal_name, CONN_MAN_BUS_TYPE_CLOCK);
  g_value_init (&return_value, G_TYPE_BOOLEAN);
  g_signal_emitv (paramv, signal_id, 0, &return_value);
  if (!g_value_get_boolean (&return_value))
    g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name);
  g_value_unset (&return_value);
  for (n = 0; n < num_params + num_extra; n++)
    g_value_unset (&paramv[n]);
  g_free (paramv);
}

static GVariant *
_conn_man_bus_clock_skeleton_handle_get_property (
  GDBusConnection *connection G_GNUC_UNUSED,
  const gchar *sender G_GNUC_UNUSED,
  const gchar *object_path G_GNUC_UNUSED,
  const gchar *interface_name G_GNUC_UNUSED,
  const gchar *property_name,
  GError **error,
  gpointer user_data)
{
  ConnManBusClockSkeleton *skeleton = CONN_MAN_BUS_CLOCK_SKELETON (user_data);
  GValue value = G_VALUE_INIT;
  GParamSpec *pspec;
  _ExtendedGDBusPropertyInfo *info;
  GVariant *ret;
  ret = NULL;
  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_conn_man_bus_clock_interface_info.parent_struct, property_name);
  g_assert (info != NULL);
  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
  if (pspec == NULL)
    {
      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
    }
  else
    {
      g_value_init (&value, pspec->value_type);
      g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
      ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
      g_value_unset (&value);
    }
  return ret;
}

static gboolean
_conn_man_bus_clock_skeleton_handle_set_property (
  GDBusConnection *connection G_GNUC_UNUSED,
  const gchar *sender G_GNUC_UNUSED,
  const gchar *object_path G_GNUC_UNUSED,
  const gchar *interface_name G_GNUC_UNUSED,
  const gchar *property_name,
  GVariant *variant,
  GError **error,
  gpointer user_data)
{
  ConnManBusClockSkeleton *skeleton = CONN_MAN_BUS_CLOCK_SKELETON (user_data);
  GValue value = G_VALUE_INIT;
  GParamSpec *pspec;
  _ExtendedGDBusPropertyInfo *info;
  gboolean ret;
  ret = FALSE;
  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_conn_man_bus_clock_interface_info.parent_struct, property_name);
  g_assert (info != NULL);
  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
  if (pspec == NULL)
    {
      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
    }
  else
    {
      if (info->use_gvariant)
        g_value_set_variant (&value, variant);
      else
        g_dbus_gvariant_to_gvalue (variant, &value);
      g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
      g_value_unset (&value);
      ret = TRUE;
    }
  return ret;
}

static const GDBusInterfaceVTable _conn_man_bus_clock_skeleton_vtable =
{
  _conn_man_bus_clock_skeleton_handle_method_call,
  _conn_man_bus_clock_skeleton_handle_get_property,
  _conn_man_bus_clock_skeleton_handle_set_property,
  {NULL}
};

static GDBusInterfaceInfo *
conn_man_bus_clock_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
{
  return conn_man_bus_clock_interface_info ();
}

static GDBusInterfaceVTable *
conn_man_bus_clock_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
{
  return (GDBusInterfaceVTable *) &_conn_man_bus_clock_skeleton_vtable;
}

static GVariant *
conn_man_bus_clock_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
{
  ConnManBusClockSkeleton *skeleton = CONN_MAN_BUS_CLOCK_SKELETON (_skeleton);

  GVariantBuilder builder;
  guint n;
  g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
  if (_conn_man_bus_clock_interface_info.parent_struct.properties == NULL)
    goto out;
  for (n = 0; _conn_man_bus_clock_interface_info.parent_struct.properties[n] != NULL; n++)
    {
      GDBusPropertyInfo *info = _conn_man_bus_clock_interface_info.parent_struct.properties[n];
      if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
        {
          GVariant *value;
          value = _conn_man_bus_clock_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "net.connman.Clock", info->name, NULL, skeleton);
          if (value != NULL)
            {
              g_variant_take_ref (value);
              g_variant_builder_add (&builder, "{sv}", info->name, value);
              g_variant_unref (value);
            }
        }
    }
out:
  return g_variant_builder_end (&builder);
}

static void
conn_man_bus_clock_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
{
}

static void
_conn_man_bus_clock_on_signal_property_changed (
    ConnManBusClock *object,
    const gchar *arg_name,
    GVariant *arg_value)
{
  ConnManBusClockSkeleton *skeleton = CONN_MAN_BUS_CLOCK_SKELETON (object);

  GList      *connections, *l;
  GVariant   *signal_variant;
  connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));

  signal_variant = g_variant_ref_sink (g_variant_new ("(s@v)",
                   arg_name,
                   arg_value));
  for (l = connections; l != NULL; l = l->next)
    {
      GDBusConnection *connection = l->data;
      g_dbus_connection_emit_signal (connection,
        NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "net.connman.Clock", "PropertyChanged",
        signal_variant, NULL);
    }
  g_variant_unref (signal_variant);
  g_list_free_full (connections, g_object_unref);
}

static void conn_man_bus_clock_skeleton_iface_init (ConnManBusClockIface *iface);
#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
G_DEFINE_TYPE_WITH_CODE (ConnManBusClockSkeleton, conn_man_bus_clock_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
                         G_ADD_PRIVATE (ConnManBusClockSkeleton)
                         G_IMPLEMENT_INTERFACE (CONN_MAN_BUS_TYPE_CLOCK, conn_man_bus_clock_skeleton_iface_init));

#else
G_DEFINE_TYPE_WITH_CODE (ConnManBusClockSkeleton, conn_man_bus_clock_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
                         G_IMPLEMENT_INTERFACE (CONN_MAN_BUS_TYPE_CLOCK, conn_man_bus_clock_skeleton_iface_init));

#endif
static void
conn_man_bus_clock_skeleton_finalize (GObject *object)
{
  ConnManBusClockSkeleton *skeleton = CONN_MAN_BUS_CLOCK_SKELETON (object);
  g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
  if (skeleton->priv->changed_properties_idle_source != NULL)
    g_source_destroy (skeleton->priv->changed_properties_idle_source);
  g_main_context_unref (skeleton->priv->context);
  g_mutex_clear (&skeleton->priv->lock);
  G_OBJECT_CLASS (conn_man_bus_clock_skeleton_parent_class)->finalize (object);
}

static void
conn_man_bus_clock_skeleton_init (ConnManBusClockSkeleton *skeleton)
{
#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
  skeleton->priv = conn_man_bus_clock_skeleton_get_instance_private (skeleton);
#else
  skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, CONN_MAN_BUS_TYPE_CLOCK_SKELETON, ConnManBusClockSkeletonPrivate);
#endif

  g_mutex_init (&skeleton->priv->lock);
  skeleton->priv->context = g_main_context_ref_thread_default ();
}

static void
conn_man_bus_clock_skeleton_class_init (ConnManBusClockSkeletonClass *klass)
{
  GObjectClass *gobject_class;
  GDBusInterfaceSkeletonClass *skeleton_class;

  gobject_class = G_OBJECT_CLASS (klass);
  gobject_class->finalize = conn_man_bus_clock_skeleton_finalize;

  skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
  skeleton_class->get_info = conn_man_bus_clock_skeleton_dbus_interface_get_info;
  skeleton_class->get_properties = conn_man_bus_clock_skeleton_dbus_interface_get_properties;
  skeleton_class->flush = conn_man_bus_clock_skeleton_dbus_interface_flush;
  skeleton_class->get_vtable = conn_man_bus_clock_skeleton_dbus_interface_get_vtable;

#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
  g_type_class_add_private (klass, sizeof (ConnManBusClockSkeletonPrivate));
#endif
}

static void
conn_man_bus_clock_skeleton_iface_init (ConnManBusClockIface *iface)
{
  iface->property_changed = _conn_man_bus_clock_on_signal_property_changed;
}

/**
 * conn_man_bus_clock_skeleton_new:
 *
 * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-net-connman-Clock.top_of_page">net.connman.Clock</link>.
 *
 * Returns: (transfer full) (type ConnManBusClockSkeleton): The skeleton object.
 */
ConnManBusClock *
conn_man_bus_clock_skeleton_new (void)
{
  return CONN_MAN_BUS_CLOCK (g_object_new (CONN_MAN_BUS_TYPE_CLOCK_SKELETON, NULL));
}

/* ------------------------------------------------------------------------
 * Code for interface net.connman.Technology
 * ------------------------------------------------------------------------
 */

/**
 * SECTION:ConnManBusTechnology
 * @title: ConnManBusTechnology
 * @short_description: Generated C code for the net.connman.Technology D-Bus interface
 *
 * This section contains code for working with the <link linkend="gdbus-interface-net-connman-Technology.top_of_page">net.connman.Technology</link> D-Bus interface in C.
 */

/* ---- Introspection data for net.connman.Technology ---- */

static const _ExtendedGDBusArgInfo _conn_man_bus_technology_method_info_get_properties_OUT_ARG_properties =
{
  {
    -1,
    (gchar *) "properties",
    (gchar *) "a{sv}",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_technology_method_info_get_properties_OUT_ARG_pointers[] =
{
  &_conn_man_bus_technology_method_info_get_properties_OUT_ARG_properties,
  NULL
};

static const GDBusAnnotationInfo _conn_man_bus_technology_method_get_properties_annotation_info_0 =
{
  -1,
  (gchar *) "org.freedesktop.DBus.Deprecated",
  (gchar *) "true",
  NULL
};

static const GDBusAnnotationInfo * const _conn_man_bus_technology_method_get_properties_annotation_info_pointers[] =
{
  &_conn_man_bus_technology_method_get_properties_annotation_info_0,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_technology_method_info_get_properties =
{
  {
    -1,
    (gchar *) "GetProperties",
    NULL,
    (GDBusArgInfo **) &_conn_man_bus_technology_method_info_get_properties_OUT_ARG_pointers,
    (GDBusAnnotationInfo **) &_conn_man_bus_technology_method_get_properties_annotation_info_pointers
  },
  "handle-get-properties",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_technology_method_info_set_property_IN_ARG_name =
{
  {
    -1,
    (gchar *) "name",
    (gchar *) "s",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_technology_method_info_set_property_IN_ARG_value =
{
  {
    -1,
    (gchar *) "value",
    (gchar *) "v",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_technology_method_info_set_property_IN_ARG_pointers[] =
{
  &_conn_man_bus_technology_method_info_set_property_IN_ARG_name,
  &_conn_man_bus_technology_method_info_set_property_IN_ARG_value,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_technology_method_info_set_property =
{
  {
    -1,
    (gchar *) "SetProperty",
    (GDBusArgInfo **) &_conn_man_bus_technology_method_info_set_property_IN_ARG_pointers,
    NULL,
    NULL
  },
  "handle-set-property",
  FALSE
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_technology_method_info_scan =
{
  {
    -1,
    (gchar *) "Scan",
    NULL,
    NULL,
    NULL
  },
  "handle-scan",
  FALSE
};

static const _ExtendedGDBusMethodInfo * const _conn_man_bus_technology_method_info_pointers[] =
{
  &_conn_man_bus_technology_method_info_get_properties,
  &_conn_man_bus_technology_method_info_set_property,
  &_conn_man_bus_technology_method_info_scan,
  NULL
};

static const _ExtendedGDBusArgInfo _conn_man_bus_technology_signal_info_property_changed_ARG_name =
{
  {
    -1,
    (gchar *) "name",
    (gchar *) "s",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_technology_signal_info_property_changed_ARG_value =
{
  {
    -1,
    (gchar *) "value",
    (gchar *) "v",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_technology_signal_info_property_changed_ARG_pointers[] =
{
  &_conn_man_bus_technology_signal_info_property_changed_ARG_name,
  &_conn_man_bus_technology_signal_info_property_changed_ARG_value,
  NULL
};

static const _ExtendedGDBusSignalInfo _conn_man_bus_technology_signal_info_property_changed =
{
  {
    -1,
    (gchar *) "PropertyChanged",
    (GDBusArgInfo **) &_conn_man_bus_technology_signal_info_property_changed_ARG_pointers,
    NULL
  },
  "property-changed"
};

static const _ExtendedGDBusSignalInfo * const _conn_man_bus_technology_signal_info_pointers[] =
{
  &_conn_man_bus_technology_signal_info_property_changed,
  NULL
};

static const _ExtendedGDBusInterfaceInfo _conn_man_bus_technology_interface_info =
{
  {
    -1,
    (gchar *) "net.connman.Technology",
    (GDBusMethodInfo **) &_conn_man_bus_technology_method_info_pointers,
    (GDBusSignalInfo **) &_conn_man_bus_technology_signal_info_pointers,
    NULL,
    NULL
  },
  "technology",
};


/**
 * conn_man_bus_technology_interface_info:
 *
 * Gets a machine-readable description of the <link linkend="gdbus-interface-net-connman-Technology.top_of_page">net.connman.Technology</link> D-Bus interface.
 *
 * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
 */
GDBusInterfaceInfo *
conn_man_bus_technology_interface_info (void)
{
  return (GDBusInterfaceInfo *) &_conn_man_bus_technology_interface_info.parent_struct;
}

/**
 * conn_man_bus_technology_override_properties:
 * @klass: The class structure for a #GObject<!-- -->-derived class.
 * @property_id_begin: The property id to assign to the first overridden property.
 *
 * Overrides all #GObject properties in the #ConnManBusTechnology interface for a concrete class.
 * The properties are overridden in the order they are defined.
 *
 * Returns: The last property id.
 */
guint
conn_man_bus_technology_override_properties (GObjectClass *klass, guint property_id_begin)
{
  return property_id_begin - 1;
}



/**
 * ConnManBusTechnology:
 *
 * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-net-connman-Technology.top_of_page">net.connman.Technology</link>.
 */

/**
 * ConnManBusTechnologyIface:
 * @parent_iface: The parent interface.
 * @handle_get_properties: Handler for the #ConnManBusTechnology::handle-get-properties signal.
 * @handle_scan: Handler for the #ConnManBusTechnology::handle-scan signal.
 * @handle_set_property: Handler for the #ConnManBusTechnology::handle-set-property signal.
 * @property_changed: Handler for the #ConnManBusTechnology::property-changed signal.
 *
 * Virtual table for the D-Bus interface <link linkend="gdbus-interface-net-connman-Technology.top_of_page">net.connman.Technology</link>.
 */

typedef ConnManBusTechnologyIface ConnManBusTechnologyInterface;
G_DEFINE_INTERFACE (ConnManBusTechnology, conn_man_bus_technology, G_TYPE_OBJECT);

static void
conn_man_bus_technology_default_init (ConnManBusTechnologyIface *iface)
{
  /* GObject signals for incoming D-Bus method calls: */
  /**
   * ConnManBusTechnology::handle-get-properties:
   * @object: A #ConnManBusTechnology.
   * @invocation: A #GDBusMethodInvocation.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Technology.GetProperties">GetProperties()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_technology_complete_get_properties() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   *
   * Deprecated: The D-Bus method has been deprecated.
   */
  g_signal_new ("handle-get-properties",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusTechnologyIface, handle_get_properties),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    1,
    G_TYPE_DBUS_METHOD_INVOCATION);

  /**
   * ConnManBusTechnology::handle-set-property:
   * @object: A #ConnManBusTechnology.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_name: Argument passed by remote caller.
   * @arg_value: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Technology.SetProperty">SetProperty()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_technology_complete_set_property() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-set-property",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusTechnologyIface, handle_set_property),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    3,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_VARIANT);

  /**
   * ConnManBusTechnology::handle-scan:
   * @object: A #ConnManBusTechnology.
   * @invocation: A #GDBusMethodInvocation.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Technology.Scan">Scan()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_technology_complete_scan() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-scan",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusTechnologyIface, handle_scan),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    1,
    G_TYPE_DBUS_METHOD_INVOCATION);

  /* GObject signals for received D-Bus signals: */
  /**
   * ConnManBusTechnology::property-changed:
   * @object: A #ConnManBusTechnology.
   * @arg_name: Argument.
   * @arg_value: Argument.
   *
   * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-net-connman-Technology.PropertyChanged">"PropertyChanged"</link> is received.
   *
   * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
   */
  g_signal_new ("property-changed",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusTechnologyIface, property_changed),
    NULL,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_NONE,
    2, G_TYPE_STRING, G_TYPE_VARIANT);

}

/**
 * conn_man_bus_technology_emit_property_changed:
 * @object: A #ConnManBusTechnology.
 * @arg_name: Argument to pass with the signal.
 * @arg_value: Argument to pass with the signal.
 *
 * Emits the <link linkend="gdbus-signal-net-connman-Technology.PropertyChanged">"PropertyChanged"</link> D-Bus signal.
 */
void
conn_man_bus_technology_emit_property_changed (
    ConnManBusTechnology *object,
    const gchar *arg_name,
    GVariant *arg_value)
{
  g_signal_emit_by_name (object, "property-changed", arg_name, arg_value);
}

/**
 * conn_man_bus_technology_call_get_properties:
 * @proxy: A #ConnManBusTechnologyProxy.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Technology.GetProperties">GetProperties()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_technology_call_get_properties_finish() to get the result of the operation.
 *
 * See conn_man_bus_technology_call_get_properties_sync() for the synchronous, blocking version of this method.
 *
 * Deprecated: The D-Bus method has been deprecated.
 */
void
conn_man_bus_technology_call_get_properties (
    ConnManBusTechnology *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "GetProperties",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_technology_call_get_properties_finish:
 * @proxy: A #ConnManBusTechnologyProxy.
 * @out_properties: (out): Return location for return parameter or %NULL to ignore.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_technology_call_get_properties().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_technology_call_get_properties().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 *
 * Deprecated: The D-Bus method has been deprecated.
 */
gboolean
conn_man_bus_technology_call_get_properties_finish (
    ConnManBusTechnology *proxy,
    GVariant **out_properties,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "(@a{sv})",
                 out_properties);
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_technology_call_get_properties_sync:
 * @proxy: A #ConnManBusTechnologyProxy.
 * @out_properties: (out): Return location for return parameter or %NULL to ignore.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Technology.GetProperties">GetProperties()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_technology_call_get_properties() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 *
 * Deprecated: The D-Bus method has been deprecated.
 */
gboolean
conn_man_bus_technology_call_get_properties_sync (
    ConnManBusTechnology *proxy,
    GVariant **out_properties,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "GetProperties",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "(@a{sv})",
                 out_properties);
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_technology_call_set_property:
 * @proxy: A #ConnManBusTechnologyProxy.
 * @arg_name: Argument to pass with the method invocation.
 * @arg_value: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Technology.SetProperty">SetProperty()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_technology_call_set_property_finish() to get the result of the operation.
 *
 * See conn_man_bus_technology_call_set_property_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_technology_call_set_property (
    ConnManBusTechnology *proxy,
    const gchar *arg_name,
    GVariant *arg_value,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "SetProperty",
    g_variant_new ("(s@v)",
                   arg_name,
                   arg_value),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_technology_call_set_property_finish:
 * @proxy: A #ConnManBusTechnologyProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_technology_call_set_property().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_technology_call_set_property().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_technology_call_set_property_finish (
    ConnManBusTechnology *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_technology_call_set_property_sync:
 * @proxy: A #ConnManBusTechnologyProxy.
 * @arg_name: Argument to pass with the method invocation.
 * @arg_value: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Technology.SetProperty">SetProperty()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_technology_call_set_property() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_technology_call_set_property_sync (
    ConnManBusTechnology *proxy,
    const gchar *arg_name,
    GVariant *arg_value,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "SetProperty",
    g_variant_new ("(s@v)",
                   arg_name,
                   arg_value),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_technology_call_scan:
 * @proxy: A #ConnManBusTechnologyProxy.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Technology.Scan">Scan()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_technology_call_scan_finish() to get the result of the operation.
 *
 * See conn_man_bus_technology_call_scan_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_technology_call_scan (
    ConnManBusTechnology *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "Scan",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_technology_call_scan_finish:
 * @proxy: A #ConnManBusTechnologyProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_technology_call_scan().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_technology_call_scan().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_technology_call_scan_finish (
    ConnManBusTechnology *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_technology_call_scan_sync:
 * @proxy: A #ConnManBusTechnologyProxy.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Technology.Scan">Scan()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_technology_call_scan() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_technology_call_scan_sync (
    ConnManBusTechnology *proxy,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "Scan",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_technology_complete_get_properties:
 * @object: A #ConnManBusTechnology.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 * @properties: Parameter to return.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Technology.GetProperties">GetProperties()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 *
 * Deprecated: The D-Bus method has been deprecated.
 */
void
conn_man_bus_technology_complete_get_properties (
    ConnManBusTechnology *object,
    GDBusMethodInvocation *invocation,
    GVariant *properties)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("(@a{sv})",
                   properties));
}

/**
 * conn_man_bus_technology_complete_set_property:
 * @object: A #ConnManBusTechnology.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Technology.SetProperty">SetProperty()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_technology_complete_set_property (
    ConnManBusTechnology *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/**
 * conn_man_bus_technology_complete_scan:
 * @object: A #ConnManBusTechnology.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Technology.Scan">Scan()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_technology_complete_scan (
    ConnManBusTechnology *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/* ------------------------------------------------------------------------ */

/**
 * ConnManBusTechnologyProxy:
 *
 * The #ConnManBusTechnologyProxy structure contains only private data and should only be accessed using the provided API.
 */

/**
 * ConnManBusTechnologyProxyClass:
 * @parent_class: The parent class.
 *
 * Class structure for #ConnManBusTechnologyProxy.
 */

struct _ConnManBusTechnologyProxyPrivate
{
  GData *qdata;
};

static void conn_man_bus_technology_proxy_iface_init (ConnManBusTechnologyIface *iface);

#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
G_DEFINE_TYPE_WITH_CODE (ConnManBusTechnologyProxy, conn_man_bus_technology_proxy, G_TYPE_DBUS_PROXY,
                         G_ADD_PRIVATE (ConnManBusTechnologyProxy)
                         G_IMPLEMENT_INTERFACE (CONN_MAN_BUS_TYPE_TECHNOLOGY, conn_man_bus_technology_proxy_iface_init));

#else
G_DEFINE_TYPE_WITH_CODE (ConnManBusTechnologyProxy, conn_man_bus_technology_proxy, G_TYPE_DBUS_PROXY,
                         G_IMPLEMENT_INTERFACE (CONN_MAN_BUS_TYPE_TECHNOLOGY, conn_man_bus_technology_proxy_iface_init));

#endif
static void
conn_man_bus_technology_proxy_finalize (GObject *object)
{
  ConnManBusTechnologyProxy *proxy = CONN_MAN_BUS_TECHNOLOGY_PROXY (object);
  g_datalist_clear (&proxy->priv->qdata);
  G_OBJECT_CLASS (conn_man_bus_technology_proxy_parent_class)->finalize (object);
}

static void
conn_man_bus_technology_proxy_get_property (GObject      *object,
  guint         prop_id,
  GValue       *value,
  GParamSpec   *pspec G_GNUC_UNUSED)
{
}

static void
conn_man_bus_technology_proxy_set_property (GObject      *object,
  guint         prop_id,
  const GValue *value,
  GParamSpec   *pspec G_GNUC_UNUSED)
{
}

static void
conn_man_bus_technology_proxy_g_signal (GDBusProxy *proxy,
  const gchar *sender_name G_GNUC_UNUSED,
  const gchar *signal_name,
  GVariant *parameters)
{
  _ExtendedGDBusSignalInfo *info;
  GVariantIter iter;
  GVariant *child;
  GValue *paramv;
  guint num_params;
  guint n;
  guint signal_id;
  info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_conn_man_bus_technology_interface_info.parent_struct, signal_name);
  if (info == NULL)
    return;
  num_params = g_variant_n_children (parameters);
  paramv = g_new0 (GValue, num_params + 1);
  g_value_init (&paramv[0], CONN_MAN_BUS_TYPE_TECHNOLOGY);
  g_value_set_object (&paramv[0], proxy);
  g_variant_iter_init (&iter, parameters);
  n = 1;
  while ((child = g_variant_iter_next_value (&iter)) != NULL)
    {
      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
      if (arg_info->use_gvariant)
        {
          g_value_init (&paramv[n], G_TYPE_VARIANT);
          g_value_set_variant (&paramv[n], child);
          n++;
        }
      else
        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
      g_variant_unref (child);
    }
  signal_id = g_signal_lookup (info->signal_name, CONN_MAN_BUS_TYPE_TECHNOLOGY);
  g_signal_emitv (paramv, signal_id, 0, NULL);
  for (n = 0; n < num_params + 1; n++)
    g_value_unset (&paramv[n]);
  g_free (paramv);
}

static void
conn_man_bus_technology_proxy_g_properties_changed (GDBusProxy *_proxy,
  GVariant *changed_properties,
  const gchar *const *invalidated_properties)
{
  ConnManBusTechnologyProxy *proxy = CONN_MAN_BUS_TECHNOLOGY_PROXY (_proxy);
  guint n;
  const gchar *key;
  GVariantIter *iter;
  _ExtendedGDBusPropertyInfo *info;
  g_variant_get (changed_properties, "a{sv}", &iter);
  while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
    {
      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_conn_man_bus_technology_interface_info.parent_struct, key);
      g_datalist_remove_data (&proxy->priv->qdata, key);
      if (info != NULL)
        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
    }
  g_variant_iter_free (iter);
  for (n = 0; invalidated_properties[n] != NULL; n++)
    {
      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_conn_man_bus_technology_interface_info.parent_struct, invalidated_properties[n]);
      g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
      if (info != NULL)
        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
    }
}

static void
conn_man_bus_technology_proxy_init (ConnManBusTechnologyProxy *proxy)
{
#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
  proxy->priv = conn_man_bus_technology_proxy_get_instance_private (proxy);
#else
  proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, CONN_MAN_BUS_TYPE_TECHNOLOGY_PROXY, ConnManBusTechnologyProxyPrivate);
#endif

  g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), conn_man_bus_technology_interface_info ());
}

static void
conn_man_bus_technology_proxy_class_init (ConnManBusTechnologyProxyClass *klass)
{
  GObjectClass *gobject_class;
  GDBusProxyClass *proxy_class;

  gobject_class = G_OBJECT_CLASS (klass);
  gobject_class->finalize     = conn_man_bus_technology_proxy_finalize;
  gobject_class->get_property = conn_man_bus_technology_proxy_get_property;
  gobject_class->set_property = conn_man_bus_technology_proxy_set_property;

  proxy_class = G_DBUS_PROXY_CLASS (klass);
  proxy_class->g_signal = conn_man_bus_technology_proxy_g_signal;
  proxy_class->g_properties_changed = conn_man_bus_technology_proxy_g_properties_changed;

#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
  g_type_class_add_private (klass, sizeof (ConnManBusTechnologyProxyPrivate));
#endif
}

static void
conn_man_bus_technology_proxy_iface_init (ConnManBusTechnologyIface *iface)
{
}

/**
 * conn_man_bus_technology_proxy_new:
 * @connection: A #GDBusConnection.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-net-connman-Technology.top_of_page">net.connman.Technology</link>. See g_dbus_proxy_new() for more details.
 *
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_technology_proxy_new_finish() to get the result of the operation.
 *
 * See conn_man_bus_technology_proxy_new_sync() for the synchronous, blocking version of this constructor.
 */
void
conn_man_bus_technology_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data)
{
  g_async_initable_new_async (CONN_MAN_BUS_TYPE_TECHNOLOGY_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "net.connman.Technology", NULL);
}

/**
 * conn_man_bus_technology_proxy_new_finish:
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_technology_proxy_new().
 * @error: Return location for error or %NULL
 *
 * Finishes an operation started with conn_man_bus_technology_proxy_new().
 *
 * Returns: (transfer full) (type ConnManBusTechnologyProxy): The constructed proxy object or %NULL if @error is set.
 */
ConnManBusTechnology *
conn_man_bus_technology_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error)
{
  GObject *ret;
  GObject *source_object;
  source_object = g_async_result_get_source_object (res);
  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
  g_object_unref (source_object);
  if (ret != NULL)
    return CONN_MAN_BUS_TECHNOLOGY (ret);
  else
    return NULL;
}

/**
 * conn_man_bus_technology_proxy_new_sync:
 * @connection: A #GDBusConnection.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL
 *
 * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-net-connman-Technology.top_of_page">net.connman.Technology</link>. See g_dbus_proxy_new_sync() for more details.
 *
 * The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_technology_proxy_new() for the asynchronous version of this constructor.
 *
 * Returns: (transfer full) (type ConnManBusTechnologyProxy): The constructed proxy object or %NULL if @error is set.
 */
ConnManBusTechnology *
conn_man_bus_technology_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error)
{
  GInitable *ret;
  ret = g_initable_new (CONN_MAN_BUS_TYPE_TECHNOLOGY_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "net.connman.Technology", NULL);
  if (ret != NULL)
    return CONN_MAN_BUS_TECHNOLOGY (ret);
  else
    return NULL;
}


/**
 * conn_man_bus_technology_proxy_new_for_bus:
 * @bus_type: A #GBusType.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: A bus name (well-known or unique).
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
 * @user_data: User data to pass to @callback.
 *
 * Like conn_man_bus_technology_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
 *
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_technology_proxy_new_for_bus_finish() to get the result of the operation.
 *
 * See conn_man_bus_technology_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
 */
void
conn_man_bus_technology_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data)
{
  g_async_initable_new_async (CONN_MAN_BUS_TYPE_TECHNOLOGY_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "net.connman.Technology", NULL);
}

/**
 * conn_man_bus_technology_proxy_new_for_bus_finish:
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_technology_proxy_new_for_bus().
 * @error: Return location for error or %NULL
 *
 * Finishes an operation started with conn_man_bus_technology_proxy_new_for_bus().
 *
 * Returns: (transfer full) (type ConnManBusTechnologyProxy): The constructed proxy object or %NULL if @error is set.
 */
ConnManBusTechnology *
conn_man_bus_technology_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error)
{
  GObject *ret;
  GObject *source_object;
  source_object = g_async_result_get_source_object (res);
  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
  g_object_unref (source_object);
  if (ret != NULL)
    return CONN_MAN_BUS_TECHNOLOGY (ret);
  else
    return NULL;
}

/**
 * conn_man_bus_technology_proxy_new_for_bus_sync:
 * @bus_type: A #GBusType.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: A bus name (well-known or unique).
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL
 *
 * Like conn_man_bus_technology_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
 *
 * The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_technology_proxy_new_for_bus() for the asynchronous version of this constructor.
 *
 * Returns: (transfer full) (type ConnManBusTechnologyProxy): The constructed proxy object or %NULL if @error is set.
 */
ConnManBusTechnology *
conn_man_bus_technology_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error)
{
  GInitable *ret;
  ret = g_initable_new (CONN_MAN_BUS_TYPE_TECHNOLOGY_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "net.connman.Technology", NULL);
  if (ret != NULL)
    return CONN_MAN_BUS_TECHNOLOGY (ret);
  else
    return NULL;
}


/* ------------------------------------------------------------------------ */

/**
 * ConnManBusTechnologySkeleton:
 *
 * The #ConnManBusTechnologySkeleton structure contains only private data and should only be accessed using the provided API.
 */

/**
 * ConnManBusTechnologySkeletonClass:
 * @parent_class: The parent class.
 *
 * Class structure for #ConnManBusTechnologySkeleton.
 */

struct _ConnManBusTechnologySkeletonPrivate
{
  GValue *properties;
  GList *changed_properties;
  GSource *changed_properties_idle_source;
  GMainContext *context;
  GMutex lock;
};

static void
_conn_man_bus_technology_skeleton_handle_method_call (
  GDBusConnection *connection G_GNUC_UNUSED,
  const gchar *sender G_GNUC_UNUSED,
  const gchar *object_path G_GNUC_UNUSED,
  const gchar *interface_name,
  const gchar *method_name,
  GVariant *parameters,
  GDBusMethodInvocation *invocation,
  gpointer user_data)
{
  ConnManBusTechnologySkeleton *skeleton = CONN_MAN_BUS_TECHNOLOGY_SKELETON (user_data);
  _ExtendedGDBusMethodInfo *info;
  GVariantIter iter;
  GVariant *child;
  GValue *paramv;
  guint num_params;
  guint num_extra;
  guint n;
  guint signal_id;
  GValue return_value = G_VALUE_INIT;
  info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
  g_assert (info != NULL);
  num_params = g_variant_n_children (parameters);
  num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
  n = 0;
  g_value_init (&paramv[n], CONN_MAN_BUS_TYPE_TECHNOLOGY);
  g_value_set_object (&paramv[n++], skeleton);
  g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
  g_value_set_object (&paramv[n++], invocation);
  if (info->pass_fdlist)
    {
#ifdef G_OS_UNIX
      g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
      g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
#else
      g_assert_not_reached ();
#endif
    }
  g_variant_iter_init (&iter, parameters);
  while ((child = g_variant_iter_next_value (&iter)) != NULL)
    {
      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
      if (arg_info->use_gvariant)
        {
          g_value_init (&paramv[n], G_TYPE_VARIANT);
          g_value_set_variant (&paramv[n], child);
          n++;
        }
      else
        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
      g_variant_unref (child);
    }
  signal_id = g_signal_lookup (info->signal_name, CONN_MAN_BUS_TYPE_TECHNOLOGY);
  g_value_init (&return_value, G_TYPE_BOOLEAN);
  g_signal_emitv (paramv, signal_id, 0, &return_value);
  if (!g_value_get_boolean (&return_value))
    g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name);
  g_value_unset (&return_value);
  for (n = 0; n < num_params + num_extra; n++)
    g_value_unset (&paramv[n]);
  g_free (paramv);
}

static GVariant *
_conn_man_bus_technology_skeleton_handle_get_property (
  GDBusConnection *connection G_GNUC_UNUSED,
  const gchar *sender G_GNUC_UNUSED,
  const gchar *object_path G_GNUC_UNUSED,
  const gchar *interface_name G_GNUC_UNUSED,
  const gchar *property_name,
  GError **error,
  gpointer user_data)
{
  ConnManBusTechnologySkeleton *skeleton = CONN_MAN_BUS_TECHNOLOGY_SKELETON (user_data);
  GValue value = G_VALUE_INIT;
  GParamSpec *pspec;
  _ExtendedGDBusPropertyInfo *info;
  GVariant *ret;
  ret = NULL;
  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_conn_man_bus_technology_interface_info.parent_struct, property_name);
  g_assert (info != NULL);
  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
  if (pspec == NULL)
    {
      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
    }
  else
    {
      g_value_init (&value, pspec->value_type);
      g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
      ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
      g_value_unset (&value);
    }
  return ret;
}

static gboolean
_conn_man_bus_technology_skeleton_handle_set_property (
  GDBusConnection *connection G_GNUC_UNUSED,
  const gchar *sender G_GNUC_UNUSED,
  const gchar *object_path G_GNUC_UNUSED,
  const gchar *interface_name G_GNUC_UNUSED,
  const gchar *property_name,
  GVariant *variant,
  GError **error,
  gpointer user_data)
{
  ConnManBusTechnologySkeleton *skeleton = CONN_MAN_BUS_TECHNOLOGY_SKELETON (user_data);
  GValue value = G_VALUE_INIT;
  GParamSpec *pspec;
  _ExtendedGDBusPropertyInfo *info;
  gboolean ret;
  ret = FALSE;
  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_conn_man_bus_technology_interface_info.parent_struct, property_name);
  g_assert (info != NULL);
  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
  if (pspec == NULL)
    {
      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
    }
  else
    {
      if (info->use_gvariant)
        g_value_set_variant (&value, variant);
      else
        g_dbus_gvariant_to_gvalue (variant, &value);
      g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
      g_value_unset (&value);
      ret = TRUE;
    }
  return ret;
}

static const GDBusInterfaceVTable _conn_man_bus_technology_skeleton_vtable =
{
  _conn_man_bus_technology_skeleton_handle_method_call,
  _conn_man_bus_technology_skeleton_handle_get_property,
  _conn_man_bus_technology_skeleton_handle_set_property,
  {NULL}
};

static GDBusInterfaceInfo *
conn_man_bus_technology_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
{
  return conn_man_bus_technology_interface_info ();
}

static GDBusInterfaceVTable *
conn_man_bus_technology_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
{
  return (GDBusInterfaceVTable *) &_conn_man_bus_technology_skeleton_vtable;
}

static GVariant *
conn_man_bus_technology_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
{
  ConnManBusTechnologySkeleton *skeleton = CONN_MAN_BUS_TECHNOLOGY_SKELETON (_skeleton);

  GVariantBuilder builder;
  guint n;
  g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
  if (_conn_man_bus_technology_interface_info.parent_struct.properties == NULL)
    goto out;
  for (n = 0; _conn_man_bus_technology_interface_info.parent_struct.properties[n] != NULL; n++)
    {
      GDBusPropertyInfo *info = _conn_man_bus_technology_interface_info.parent_struct.properties[n];
      if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
        {
          GVariant *value;
          value = _conn_man_bus_technology_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "net.connman.Technology", info->name, NULL, skeleton);
          if (value != NULL)
            {
              g_variant_take_ref (value);
              g_variant_builder_add (&builder, "{sv}", info->name, value);
              g_variant_unref (value);
            }
        }
    }
out:
  return g_variant_builder_end (&builder);
}

static void
conn_man_bus_technology_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
{
}

static void
_conn_man_bus_technology_on_signal_property_changed (
    ConnManBusTechnology *object,
    const gchar *arg_name,
    GVariant *arg_value)
{
  ConnManBusTechnologySkeleton *skeleton = CONN_MAN_BUS_TECHNOLOGY_SKELETON (object);

  GList      *connections, *l;
  GVariant   *signal_variant;
  connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));

  signal_variant = g_variant_ref_sink (g_variant_new ("(s@v)",
                   arg_name,
                   arg_value));
  for (l = connections; l != NULL; l = l->next)
    {
      GDBusConnection *connection = l->data;
      g_dbus_connection_emit_signal (connection,
        NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "net.connman.Technology", "PropertyChanged",
        signal_variant, NULL);
    }
  g_variant_unref (signal_variant);
  g_list_free_full (connections, g_object_unref);
}

static void conn_man_bus_technology_skeleton_iface_init (ConnManBusTechnologyIface *iface);
#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
G_DEFINE_TYPE_WITH_CODE (ConnManBusTechnologySkeleton, conn_man_bus_technology_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
                         G_ADD_PRIVATE (ConnManBusTechnologySkeleton)
                         G_IMPLEMENT_INTERFACE (CONN_MAN_BUS_TYPE_TECHNOLOGY, conn_man_bus_technology_skeleton_iface_init));

#else
G_DEFINE_TYPE_WITH_CODE (ConnManBusTechnologySkeleton, conn_man_bus_technology_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
                         G_IMPLEMENT_INTERFACE (CONN_MAN_BUS_TYPE_TECHNOLOGY, conn_man_bus_technology_skeleton_iface_init));

#endif
static void
conn_man_bus_technology_skeleton_finalize (GObject *object)
{
  ConnManBusTechnologySkeleton *skeleton = CONN_MAN_BUS_TECHNOLOGY_SKELETON (object);
  g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
  if (skeleton->priv->changed_properties_idle_source != NULL)
    g_source_destroy (skeleton->priv->changed_properties_idle_source);
  g_main_context_unref (skeleton->priv->context);
  g_mutex_clear (&skeleton->priv->lock);
  G_OBJECT_CLASS (conn_man_bus_technology_skeleton_parent_class)->finalize (object);
}

static void
conn_man_bus_technology_skeleton_init (ConnManBusTechnologySkeleton *skeleton)
{
#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
  skeleton->priv = conn_man_bus_technology_skeleton_get_instance_private (skeleton);
#else
  skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, CONN_MAN_BUS_TYPE_TECHNOLOGY_SKELETON, ConnManBusTechnologySkeletonPrivate);
#endif

  g_mutex_init (&skeleton->priv->lock);
  skeleton->priv->context = g_main_context_ref_thread_default ();
}

static void
conn_man_bus_technology_skeleton_class_init (ConnManBusTechnologySkeletonClass *klass)
{
  GObjectClass *gobject_class;
  GDBusInterfaceSkeletonClass *skeleton_class;

  gobject_class = G_OBJECT_CLASS (klass);
  gobject_class->finalize = conn_man_bus_technology_skeleton_finalize;

  skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
  skeleton_class->get_info = conn_man_bus_technology_skeleton_dbus_interface_get_info;
  skeleton_class->get_properties = conn_man_bus_technology_skeleton_dbus_interface_get_properties;
  skeleton_class->flush = conn_man_bus_technology_skeleton_dbus_interface_flush;
  skeleton_class->get_vtable = conn_man_bus_technology_skeleton_dbus_interface_get_vtable;

#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
  g_type_class_add_private (klass, sizeof (ConnManBusTechnologySkeletonPrivate));
#endif
}

static void
conn_man_bus_technology_skeleton_iface_init (ConnManBusTechnologyIface *iface)
{
  iface->property_changed = _conn_man_bus_technology_on_signal_property_changed;
}

/**
 * conn_man_bus_technology_skeleton_new:
 *
 * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-net-connman-Technology.top_of_page">net.connman.Technology</link>.
 *
 * Returns: (transfer full) (type ConnManBusTechnologySkeleton): The skeleton object.
 */
ConnManBusTechnology *
conn_man_bus_technology_skeleton_new (void)
{
  return CONN_MAN_BUS_TECHNOLOGY (g_object_new (CONN_MAN_BUS_TYPE_TECHNOLOGY_SKELETON, NULL));
}

/* ------------------------------------------------------------------------
 * Code for interface net.connman.Service
 * ------------------------------------------------------------------------
 */

/**
 * SECTION:ConnManBusService
 * @title: ConnManBusService
 * @short_description: Generated C code for the net.connman.Service D-Bus interface
 *
 * This section contains code for working with the <link linkend="gdbus-interface-net-connman-Service.top_of_page">net.connman.Service</link> D-Bus interface in C.
 */

/* ---- Introspection data for net.connman.Service ---- */

static const _ExtendedGDBusArgInfo _conn_man_bus_service_method_info_get_properties_OUT_ARG_properties =
{
  {
    -1,
    (gchar *) "properties",
    (gchar *) "a{sv}",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_service_method_info_get_properties_OUT_ARG_pointers[] =
{
  &_conn_man_bus_service_method_info_get_properties_OUT_ARG_properties,
  NULL
};

static const GDBusAnnotationInfo _conn_man_bus_service_method_get_properties_annotation_info_0 =
{
  -1,
  (gchar *) "org.freedesktop.DBus.Deprecated",
  (gchar *) "true",
  NULL
};

static const GDBusAnnotationInfo * const _conn_man_bus_service_method_get_properties_annotation_info_pointers[] =
{
  &_conn_man_bus_service_method_get_properties_annotation_info_0,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_service_method_info_get_properties =
{
  {
    -1,
    (gchar *) "GetProperties",
    NULL,
    (GDBusArgInfo **) &_conn_man_bus_service_method_info_get_properties_OUT_ARG_pointers,
    (GDBusAnnotationInfo **) &_conn_man_bus_service_method_get_properties_annotation_info_pointers
  },
  "handle-get-properties",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_service_method_info_set_property_IN_ARG_name =
{
  {
    -1,
    (gchar *) "name",
    (gchar *) "s",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_service_method_info_set_property_IN_ARG_value =
{
  {
    -1,
    (gchar *) "value",
    (gchar *) "v",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_service_method_info_set_property_IN_ARG_pointers[] =
{
  &_conn_man_bus_service_method_info_set_property_IN_ARG_name,
  &_conn_man_bus_service_method_info_set_property_IN_ARG_value,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_service_method_info_set_property =
{
  {
    -1,
    (gchar *) "SetProperty",
    (GDBusArgInfo **) &_conn_man_bus_service_method_info_set_property_IN_ARG_pointers,
    NULL,
    NULL
  },
  "handle-set-property",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_service_method_info_clear_property_IN_ARG_name =
{
  {
    -1,
    (gchar *) "name",
    (gchar *) "s",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_service_method_info_clear_property_IN_ARG_pointers[] =
{
  &_conn_man_bus_service_method_info_clear_property_IN_ARG_name,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_service_method_info_clear_property =
{
  {
    -1,
    (gchar *) "ClearProperty",
    (GDBusArgInfo **) &_conn_man_bus_service_method_info_clear_property_IN_ARG_pointers,
    NULL,
    NULL
  },
  "handle-clear-property",
  FALSE
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_service_method_info_connect =
{
  {
    -1,
    (gchar *) "Connect",
    NULL,
    NULL,
    NULL
  },
  "handle-connect",
  FALSE
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_service_method_info_disconnect =
{
  {
    -1,
    (gchar *) "Disconnect",
    NULL,
    NULL,
    NULL
  },
  "handle-disconnect",
  FALSE
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_service_method_info_remove =
{
  {
    -1,
    (gchar *) "Remove",
    NULL,
    NULL,
    NULL
  },
  "handle-remove",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_service_method_info_move_before_IN_ARG_service =
{
  {
    -1,
    (gchar *) "service",
    (gchar *) "o",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_service_method_info_move_before_IN_ARG_pointers[] =
{
  &_conn_man_bus_service_method_info_move_before_IN_ARG_service,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_service_method_info_move_before =
{
  {
    -1,
    (gchar *) "MoveBefore",
    (GDBusArgInfo **) &_conn_man_bus_service_method_info_move_before_IN_ARG_pointers,
    NULL,
    NULL
  },
  "handle-move-before",
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_service_method_info_move_after_IN_ARG_service =
{
  {
    -1,
    (gchar *) "service",
    (gchar *) "o",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_service_method_info_move_after_IN_ARG_pointers[] =
{
  &_conn_man_bus_service_method_info_move_after_IN_ARG_service,
  NULL
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_service_method_info_move_after =
{
  {
    -1,
    (gchar *) "MoveAfter",
    (GDBusArgInfo **) &_conn_man_bus_service_method_info_move_after_IN_ARG_pointers,
    NULL,
    NULL
  },
  "handle-move-after",
  FALSE
};

static const _ExtendedGDBusMethodInfo _conn_man_bus_service_method_info_reset_counters =
{
  {
    -1,
    (gchar *) "ResetCounters",
    NULL,
    NULL,
    NULL
  },
  "handle-reset-counters",
  FALSE
};

static const _ExtendedGDBusMethodInfo * const _conn_man_bus_service_method_info_pointers[] =
{
  &_conn_man_bus_service_method_info_get_properties,
  &_conn_man_bus_service_method_info_set_property,
  &_conn_man_bus_service_method_info_clear_property,
  &_conn_man_bus_service_method_info_connect,
  &_conn_man_bus_service_method_info_disconnect,
  &_conn_man_bus_service_method_info_remove,
  &_conn_man_bus_service_method_info_move_before,
  &_conn_man_bus_service_method_info_move_after,
  &_conn_man_bus_service_method_info_reset_counters,
  NULL
};

static const _ExtendedGDBusArgInfo _conn_man_bus_service_signal_info_property_changed_ARG_name =
{
  {
    -1,
    (gchar *) "name",
    (gchar *) "s",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _conn_man_bus_service_signal_info_property_changed_ARG_value =
{
  {
    -1,
    (gchar *) "value",
    (gchar *) "v",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _conn_man_bus_service_signal_info_property_changed_ARG_pointers[] =
{
  &_conn_man_bus_service_signal_info_property_changed_ARG_name,
  &_conn_man_bus_service_signal_info_property_changed_ARG_value,
  NULL
};

static const _ExtendedGDBusSignalInfo _conn_man_bus_service_signal_info_property_changed =
{
  {
    -1,
    (gchar *) "PropertyChanged",
    (GDBusArgInfo **) &_conn_man_bus_service_signal_info_property_changed_ARG_pointers,
    NULL
  },
  "property-changed"
};

static const _ExtendedGDBusSignalInfo * const _conn_man_bus_service_signal_info_pointers[] =
{
  &_conn_man_bus_service_signal_info_property_changed,
  NULL
};

static const _ExtendedGDBusInterfaceInfo _conn_man_bus_service_interface_info =
{
  {
    -1,
    (gchar *) "net.connman.Service",
    (GDBusMethodInfo **) &_conn_man_bus_service_method_info_pointers,
    (GDBusSignalInfo **) &_conn_man_bus_service_signal_info_pointers,
    NULL,
    NULL
  },
  "service",
};


/**
 * conn_man_bus_service_interface_info:
 *
 * Gets a machine-readable description of the <link linkend="gdbus-interface-net-connman-Service.top_of_page">net.connman.Service</link> D-Bus interface.
 *
 * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
 */
GDBusInterfaceInfo *
conn_man_bus_service_interface_info (void)
{
  return (GDBusInterfaceInfo *) &_conn_man_bus_service_interface_info.parent_struct;
}

/**
 * conn_man_bus_service_override_properties:
 * @klass: The class structure for a #GObject<!-- -->-derived class.
 * @property_id_begin: The property id to assign to the first overridden property.
 *
 * Overrides all #GObject properties in the #ConnManBusService interface for a concrete class.
 * The properties are overridden in the order they are defined.
 *
 * Returns: The last property id.
 */
guint
conn_man_bus_service_override_properties (GObjectClass *klass, guint property_id_begin)
{
  return property_id_begin - 1;
}



/**
 * ConnManBusService:
 *
 * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-net-connman-Service.top_of_page">net.connman.Service</link>.
 */

/**
 * ConnManBusServiceIface:
 * @parent_iface: The parent interface.
 * @handle_clear_property: Handler for the #ConnManBusService::handle-clear-property signal.
 * @handle_connect: Handler for the #ConnManBusService::handle-connect signal.
 * @handle_disconnect: Handler for the #ConnManBusService::handle-disconnect signal.
 * @handle_get_properties: Handler for the #ConnManBusService::handle-get-properties signal.
 * @handle_move_after: Handler for the #ConnManBusService::handle-move-after signal.
 * @handle_move_before: Handler for the #ConnManBusService::handle-move-before signal.
 * @handle_remove: Handler for the #ConnManBusService::handle-remove signal.
 * @handle_reset_counters: Handler for the #ConnManBusService::handle-reset-counters signal.
 * @handle_set_property: Handler for the #ConnManBusService::handle-set-property signal.
 * @property_changed: Handler for the #ConnManBusService::property-changed signal.
 *
 * Virtual table for the D-Bus interface <link linkend="gdbus-interface-net-connman-Service.top_of_page">net.connman.Service</link>.
 */

typedef ConnManBusServiceIface ConnManBusServiceInterface;
G_DEFINE_INTERFACE (ConnManBusService, conn_man_bus_service, G_TYPE_OBJECT);

static void
conn_man_bus_service_default_init (ConnManBusServiceIface *iface)
{
  /* GObject signals for incoming D-Bus method calls: */
  /**
   * ConnManBusService::handle-get-properties:
   * @object: A #ConnManBusService.
   * @invocation: A #GDBusMethodInvocation.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Service.GetProperties">GetProperties()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_service_complete_get_properties() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   *
   * Deprecated: The D-Bus method has been deprecated.
   */
  g_signal_new ("handle-get-properties",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusServiceIface, handle_get_properties),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    1,
    G_TYPE_DBUS_METHOD_INVOCATION);

  /**
   * ConnManBusService::handle-set-property:
   * @object: A #ConnManBusService.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_name: Argument passed by remote caller.
   * @arg_value: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Service.SetProperty">SetProperty()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_service_complete_set_property() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-set-property",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusServiceIface, handle_set_property),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    3,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_VARIANT);

  /**
   * ConnManBusService::handle-clear-property:
   * @object: A #ConnManBusService.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_name: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Service.ClearProperty">ClearProperty()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_service_complete_clear_property() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-clear-property",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusServiceIface, handle_clear_property),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    2,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);

  /**
   * ConnManBusService::handle-connect:
   * @object: A #ConnManBusService.
   * @invocation: A #GDBusMethodInvocation.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Service.Connect">Connect()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_service_complete_connect() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-connect",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusServiceIface, handle_connect),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    1,
    G_TYPE_DBUS_METHOD_INVOCATION);

  /**
   * ConnManBusService::handle-disconnect:
   * @object: A #ConnManBusService.
   * @invocation: A #GDBusMethodInvocation.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Service.Disconnect">Disconnect()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_service_complete_disconnect() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-disconnect",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusServiceIface, handle_disconnect),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    1,
    G_TYPE_DBUS_METHOD_INVOCATION);

  /**
   * ConnManBusService::handle-remove:
   * @object: A #ConnManBusService.
   * @invocation: A #GDBusMethodInvocation.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Service.Remove">Remove()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_service_complete_remove() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-remove",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusServiceIface, handle_remove),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    1,
    G_TYPE_DBUS_METHOD_INVOCATION);

  /**
   * ConnManBusService::handle-move-before:
   * @object: A #ConnManBusService.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_service: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Service.MoveBefore">MoveBefore()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_service_complete_move_before() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-move-before",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusServiceIface, handle_move_before),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    2,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);

  /**
   * ConnManBusService::handle-move-after:
   * @object: A #ConnManBusService.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_service: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Service.MoveAfter">MoveAfter()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_service_complete_move_after() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-move-after",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusServiceIface, handle_move_after),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    2,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);

  /**
   * ConnManBusService::handle-reset-counters:
   * @object: A #ConnManBusService.
   * @invocation: A #GDBusMethodInvocation.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-net-connman-Service.ResetCounters">ResetCounters()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call conn_man_bus_service_complete_reset_counters() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-reset-counters",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusServiceIface, handle_reset_counters),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    1,
    G_TYPE_DBUS_METHOD_INVOCATION);

  /* GObject signals for received D-Bus signals: */
  /**
   * ConnManBusService::property-changed:
   * @object: A #ConnManBusService.
   * @arg_name: Argument.
   * @arg_value: Argument.
   *
   * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-net-connman-Service.PropertyChanged">"PropertyChanged"</link> is received.
   *
   * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
   */
  g_signal_new ("property-changed",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (ConnManBusServiceIface, property_changed),
    NULL,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_NONE,
    2, G_TYPE_STRING, G_TYPE_VARIANT);

}

/**
 * conn_man_bus_service_emit_property_changed:
 * @object: A #ConnManBusService.
 * @arg_name: Argument to pass with the signal.
 * @arg_value: Argument to pass with the signal.
 *
 * Emits the <link linkend="gdbus-signal-net-connman-Service.PropertyChanged">"PropertyChanged"</link> D-Bus signal.
 */
void
conn_man_bus_service_emit_property_changed (
    ConnManBusService *object,
    const gchar *arg_name,
    GVariant *arg_value)
{
  g_signal_emit_by_name (object, "property-changed", arg_name, arg_value);
}

/**
 * conn_man_bus_service_call_get_properties:
 * @proxy: A #ConnManBusServiceProxy.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Service.GetProperties">GetProperties()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_service_call_get_properties_finish() to get the result of the operation.
 *
 * See conn_man_bus_service_call_get_properties_sync() for the synchronous, blocking version of this method.
 *
 * Deprecated: The D-Bus method has been deprecated.
 */
void
conn_man_bus_service_call_get_properties (
    ConnManBusService *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "GetProperties",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_service_call_get_properties_finish:
 * @proxy: A #ConnManBusServiceProxy.
 * @out_properties: (out): Return location for return parameter or %NULL to ignore.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_service_call_get_properties().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_service_call_get_properties().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 *
 * Deprecated: The D-Bus method has been deprecated.
 */
gboolean
conn_man_bus_service_call_get_properties_finish (
    ConnManBusService *proxy,
    GVariant **out_properties,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "(@a{sv})",
                 out_properties);
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_service_call_get_properties_sync:
 * @proxy: A #ConnManBusServiceProxy.
 * @out_properties: (out): Return location for return parameter or %NULL to ignore.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Service.GetProperties">GetProperties()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_service_call_get_properties() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 *
 * Deprecated: The D-Bus method has been deprecated.
 */
gboolean
conn_man_bus_service_call_get_properties_sync (
    ConnManBusService *proxy,
    GVariant **out_properties,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "GetProperties",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "(@a{sv})",
                 out_properties);
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_service_call_set_property:
 * @proxy: A #ConnManBusServiceProxy.
 * @arg_name: Argument to pass with the method invocation.
 * @arg_value: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Service.SetProperty">SetProperty()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_service_call_set_property_finish() to get the result of the operation.
 *
 * See conn_man_bus_service_call_set_property_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_service_call_set_property (
    ConnManBusService *proxy,
    const gchar *arg_name,
    GVariant *arg_value,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "SetProperty",
    g_variant_new ("(s@v)",
                   arg_name,
                   arg_value),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_service_call_set_property_finish:
 * @proxy: A #ConnManBusServiceProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_service_call_set_property().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_service_call_set_property().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_service_call_set_property_finish (
    ConnManBusService *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_service_call_set_property_sync:
 * @proxy: A #ConnManBusServiceProxy.
 * @arg_name: Argument to pass with the method invocation.
 * @arg_value: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Service.SetProperty">SetProperty()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_service_call_set_property() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_service_call_set_property_sync (
    ConnManBusService *proxy,
    const gchar *arg_name,
    GVariant *arg_value,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "SetProperty",
    g_variant_new ("(s@v)",
                   arg_name,
                   arg_value),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_service_call_clear_property:
 * @proxy: A #ConnManBusServiceProxy.
 * @arg_name: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Service.ClearProperty">ClearProperty()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_service_call_clear_property_finish() to get the result of the operation.
 *
 * See conn_man_bus_service_call_clear_property_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_service_call_clear_property (
    ConnManBusService *proxy,
    const gchar *arg_name,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "ClearProperty",
    g_variant_new ("(s)",
                   arg_name),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_service_call_clear_property_finish:
 * @proxy: A #ConnManBusServiceProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_service_call_clear_property().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_service_call_clear_property().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_service_call_clear_property_finish (
    ConnManBusService *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_service_call_clear_property_sync:
 * @proxy: A #ConnManBusServiceProxy.
 * @arg_name: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Service.ClearProperty">ClearProperty()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_service_call_clear_property() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_service_call_clear_property_sync (
    ConnManBusService *proxy,
    const gchar *arg_name,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "ClearProperty",
    g_variant_new ("(s)",
                   arg_name),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_service_call_connect:
 * @proxy: A #ConnManBusServiceProxy.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Service.Connect">Connect()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_service_call_connect_finish() to get the result of the operation.
 *
 * See conn_man_bus_service_call_connect_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_service_call_connect (
    ConnManBusService *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "Connect",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_service_call_connect_finish:
 * @proxy: A #ConnManBusServiceProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_service_call_connect().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_service_call_connect().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_service_call_connect_finish (
    ConnManBusService *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_service_call_connect_sync:
 * @proxy: A #ConnManBusServiceProxy.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Service.Connect">Connect()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_service_call_connect() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_service_call_connect_sync (
    ConnManBusService *proxy,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "Connect",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_service_call_disconnect:
 * @proxy: A #ConnManBusServiceProxy.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Service.Disconnect">Disconnect()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_service_call_disconnect_finish() to get the result of the operation.
 *
 * See conn_man_bus_service_call_disconnect_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_service_call_disconnect (
    ConnManBusService *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "Disconnect",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_service_call_disconnect_finish:
 * @proxy: A #ConnManBusServiceProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_service_call_disconnect().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_service_call_disconnect().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_service_call_disconnect_finish (
    ConnManBusService *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_service_call_disconnect_sync:
 * @proxy: A #ConnManBusServiceProxy.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Service.Disconnect">Disconnect()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_service_call_disconnect() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_service_call_disconnect_sync (
    ConnManBusService *proxy,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "Disconnect",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_service_call_remove:
 * @proxy: A #ConnManBusServiceProxy.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Service.Remove">Remove()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_service_call_remove_finish() to get the result of the operation.
 *
 * See conn_man_bus_service_call_remove_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_service_call_remove (
    ConnManBusService *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "Remove",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_service_call_remove_finish:
 * @proxy: A #ConnManBusServiceProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_service_call_remove().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_service_call_remove().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_service_call_remove_finish (
    ConnManBusService *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_service_call_remove_sync:
 * @proxy: A #ConnManBusServiceProxy.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Service.Remove">Remove()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_service_call_remove() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_service_call_remove_sync (
    ConnManBusService *proxy,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "Remove",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_service_call_move_before:
 * @proxy: A #ConnManBusServiceProxy.
 * @arg_service: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Service.MoveBefore">MoveBefore()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_service_call_move_before_finish() to get the result of the operation.
 *
 * See conn_man_bus_service_call_move_before_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_service_call_move_before (
    ConnManBusService *proxy,
    const gchar *arg_service,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "MoveBefore",
    g_variant_new ("(o)",
                   arg_service),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_service_call_move_before_finish:
 * @proxy: A #ConnManBusServiceProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_service_call_move_before().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_service_call_move_before().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_service_call_move_before_finish (
    ConnManBusService *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_service_call_move_before_sync:
 * @proxy: A #ConnManBusServiceProxy.
 * @arg_service: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Service.MoveBefore">MoveBefore()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_service_call_move_before() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_service_call_move_before_sync (
    ConnManBusService *proxy,
    const gchar *arg_service,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "MoveBefore",
    g_variant_new ("(o)",
                   arg_service),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_service_call_move_after:
 * @proxy: A #ConnManBusServiceProxy.
 * @arg_service: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Service.MoveAfter">MoveAfter()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_service_call_move_after_finish() to get the result of the operation.
 *
 * See conn_man_bus_service_call_move_after_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_service_call_move_after (
    ConnManBusService *proxy,
    const gchar *arg_service,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "MoveAfter",
    g_variant_new ("(o)",
                   arg_service),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_service_call_move_after_finish:
 * @proxy: A #ConnManBusServiceProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_service_call_move_after().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_service_call_move_after().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_service_call_move_after_finish (
    ConnManBusService *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_service_call_move_after_sync:
 * @proxy: A #ConnManBusServiceProxy.
 * @arg_service: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Service.MoveAfter">MoveAfter()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_service_call_move_after() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_service_call_move_after_sync (
    ConnManBusService *proxy,
    const gchar *arg_service,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "MoveAfter",
    g_variant_new ("(o)",
                   arg_service),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_service_call_reset_counters:
 * @proxy: A #ConnManBusServiceProxy.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-net-connman-Service.ResetCounters">ResetCounters()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_service_call_reset_counters_finish() to get the result of the operation.
 *
 * See conn_man_bus_service_call_reset_counters_sync() for the synchronous, blocking version of this method.
 */
void
conn_man_bus_service_call_reset_counters (
    ConnManBusService *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "ResetCounters",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * conn_man_bus_service_call_reset_counters_finish:
 * @proxy: A #ConnManBusServiceProxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_service_call_reset_counters().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with conn_man_bus_service_call_reset_counters().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_service_call_reset_counters_finish (
    ConnManBusService *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_service_call_reset_counters_sync:
 * @proxy: A #ConnManBusServiceProxy.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-net-connman-Service.ResetCounters">ResetCounters()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_service_call_reset_counters() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
conn_man_bus_service_call_reset_counters_sync (
    ConnManBusService *proxy,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "ResetCounters",
    g_variant_new ("()"),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * conn_man_bus_service_complete_get_properties:
 * @object: A #ConnManBusService.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 * @properties: Parameter to return.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Service.GetProperties">GetProperties()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 *
 * Deprecated: The D-Bus method has been deprecated.
 */
void
conn_man_bus_service_complete_get_properties (
    ConnManBusService *object,
    GDBusMethodInvocation *invocation,
    GVariant *properties)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("(@a{sv})",
                   properties));
}

/**
 * conn_man_bus_service_complete_set_property:
 * @object: A #ConnManBusService.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Service.SetProperty">SetProperty()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_service_complete_set_property (
    ConnManBusService *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/**
 * conn_man_bus_service_complete_clear_property:
 * @object: A #ConnManBusService.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Service.ClearProperty">ClearProperty()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_service_complete_clear_property (
    ConnManBusService *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/**
 * conn_man_bus_service_complete_connect:
 * @object: A #ConnManBusService.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Service.Connect">Connect()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_service_complete_connect (
    ConnManBusService *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/**
 * conn_man_bus_service_complete_disconnect:
 * @object: A #ConnManBusService.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Service.Disconnect">Disconnect()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_service_complete_disconnect (
    ConnManBusService *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/**
 * conn_man_bus_service_complete_remove:
 * @object: A #ConnManBusService.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Service.Remove">Remove()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_service_complete_remove (
    ConnManBusService *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/**
 * conn_man_bus_service_complete_move_before:
 * @object: A #ConnManBusService.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Service.MoveBefore">MoveBefore()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_service_complete_move_before (
    ConnManBusService *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/**
 * conn_man_bus_service_complete_move_after:
 * @object: A #ConnManBusService.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Service.MoveAfter">MoveAfter()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_service_complete_move_after (
    ConnManBusService *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/**
 * conn_man_bus_service_complete_reset_counters:
 * @object: A #ConnManBusService.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-net-connman-Service.ResetCounters">ResetCounters()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
conn_man_bus_service_complete_reset_counters (
    ConnManBusService *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/* ------------------------------------------------------------------------ */

/**
 * ConnManBusServiceProxy:
 *
 * The #ConnManBusServiceProxy structure contains only private data and should only be accessed using the provided API.
 */

/**
 * ConnManBusServiceProxyClass:
 * @parent_class: The parent class.
 *
 * Class structure for #ConnManBusServiceProxy.
 */

struct _ConnManBusServiceProxyPrivate
{
  GData *qdata;
};

static void conn_man_bus_service_proxy_iface_init (ConnManBusServiceIface *iface);

#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
G_DEFINE_TYPE_WITH_CODE (ConnManBusServiceProxy, conn_man_bus_service_proxy, G_TYPE_DBUS_PROXY,
                         G_ADD_PRIVATE (ConnManBusServiceProxy)
                         G_IMPLEMENT_INTERFACE (CONN_MAN_BUS_TYPE_SERVICE, conn_man_bus_service_proxy_iface_init));

#else
G_DEFINE_TYPE_WITH_CODE (ConnManBusServiceProxy, conn_man_bus_service_proxy, G_TYPE_DBUS_PROXY,
                         G_IMPLEMENT_INTERFACE (CONN_MAN_BUS_TYPE_SERVICE, conn_man_bus_service_proxy_iface_init));

#endif
static void
conn_man_bus_service_proxy_finalize (GObject *object)
{
  ConnManBusServiceProxy *proxy = CONN_MAN_BUS_SERVICE_PROXY (object);
  g_datalist_clear (&proxy->priv->qdata);
  G_OBJECT_CLASS (conn_man_bus_service_proxy_parent_class)->finalize (object);
}

static void
conn_man_bus_service_proxy_get_property (GObject      *object,
  guint         prop_id,
  GValue       *value,
  GParamSpec   *pspec G_GNUC_UNUSED)
{
}

static void
conn_man_bus_service_proxy_set_property (GObject      *object,
  guint         prop_id,
  const GValue *value,
  GParamSpec   *pspec G_GNUC_UNUSED)
{
}

static void
conn_man_bus_service_proxy_g_signal (GDBusProxy *proxy,
  const gchar *sender_name G_GNUC_UNUSED,
  const gchar *signal_name,
  GVariant *parameters)
{
  _ExtendedGDBusSignalInfo *info;
  GVariantIter iter;
  GVariant *child;
  GValue *paramv;
  guint num_params;
  guint n;
  guint signal_id;
  info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_conn_man_bus_service_interface_info.parent_struct, signal_name);
  if (info == NULL)
    return;
  num_params = g_variant_n_children (parameters);
  paramv = g_new0 (GValue, num_params + 1);
  g_value_init (&paramv[0], CONN_MAN_BUS_TYPE_SERVICE);
  g_value_set_object (&paramv[0], proxy);
  g_variant_iter_init (&iter, parameters);
  n = 1;
  while ((child = g_variant_iter_next_value (&iter)) != NULL)
    {
      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
      if (arg_info->use_gvariant)
        {
          g_value_init (&paramv[n], G_TYPE_VARIANT);
          g_value_set_variant (&paramv[n], child);
          n++;
        }
      else
        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
      g_variant_unref (child);
    }
  signal_id = g_signal_lookup (info->signal_name, CONN_MAN_BUS_TYPE_SERVICE);
  g_signal_emitv (paramv, signal_id, 0, NULL);
  for (n = 0; n < num_params + 1; n++)
    g_value_unset (&paramv[n]);
  g_free (paramv);
}

static void
conn_man_bus_service_proxy_g_properties_changed (GDBusProxy *_proxy,
  GVariant *changed_properties,
  const gchar *const *invalidated_properties)
{
  ConnManBusServiceProxy *proxy = CONN_MAN_BUS_SERVICE_PROXY (_proxy);
  guint n;
  const gchar *key;
  GVariantIter *iter;
  _ExtendedGDBusPropertyInfo *info;
  g_variant_get (changed_properties, "a{sv}", &iter);
  while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
    {
      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_conn_man_bus_service_interface_info.parent_struct, key);
      g_datalist_remove_data (&proxy->priv->qdata, key);
      if (info != NULL)
        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
    }
  g_variant_iter_free (iter);
  for (n = 0; invalidated_properties[n] != NULL; n++)
    {
      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_conn_man_bus_service_interface_info.parent_struct, invalidated_properties[n]);
      g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
      if (info != NULL)
        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
    }
}

static void
conn_man_bus_service_proxy_init (ConnManBusServiceProxy *proxy)
{
#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
  proxy->priv = conn_man_bus_service_proxy_get_instance_private (proxy);
#else
  proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, CONN_MAN_BUS_TYPE_SERVICE_PROXY, ConnManBusServiceProxyPrivate);
#endif

  g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), conn_man_bus_service_interface_info ());
}

static void
conn_man_bus_service_proxy_class_init (ConnManBusServiceProxyClass *klass)
{
  GObjectClass *gobject_class;
  GDBusProxyClass *proxy_class;

  gobject_class = G_OBJECT_CLASS (klass);
  gobject_class->finalize     = conn_man_bus_service_proxy_finalize;
  gobject_class->get_property = conn_man_bus_service_proxy_get_property;
  gobject_class->set_property = conn_man_bus_service_proxy_set_property;

  proxy_class = G_DBUS_PROXY_CLASS (klass);
  proxy_class->g_signal = conn_man_bus_service_proxy_g_signal;
  proxy_class->g_properties_changed = conn_man_bus_service_proxy_g_properties_changed;

#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
  g_type_class_add_private (klass, sizeof (ConnManBusServiceProxyPrivate));
#endif
}

static void
conn_man_bus_service_proxy_iface_init (ConnManBusServiceIface *iface)
{
}

/**
 * conn_man_bus_service_proxy_new:
 * @connection: A #GDBusConnection.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-net-connman-Service.top_of_page">net.connman.Service</link>. See g_dbus_proxy_new() for more details.
 *
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_service_proxy_new_finish() to get the result of the operation.
 *
 * See conn_man_bus_service_proxy_new_sync() for the synchronous, blocking version of this constructor.
 */
void
conn_man_bus_service_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data)
{
  g_async_initable_new_async (CONN_MAN_BUS_TYPE_SERVICE_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "net.connman.Service", NULL);
}

/**
 * conn_man_bus_service_proxy_new_finish:
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_service_proxy_new().
 * @error: Return location for error or %NULL
 *
 * Finishes an operation started with conn_man_bus_service_proxy_new().
 *
 * Returns: (transfer full) (type ConnManBusServiceProxy): The constructed proxy object or %NULL if @error is set.
 */
ConnManBusService *
conn_man_bus_service_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error)
{
  GObject *ret;
  GObject *source_object;
  source_object = g_async_result_get_source_object (res);
  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
  g_object_unref (source_object);
  if (ret != NULL)
    return CONN_MAN_BUS_SERVICE (ret);
  else
    return NULL;
}

/**
 * conn_man_bus_service_proxy_new_sync:
 * @connection: A #GDBusConnection.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL
 *
 * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-net-connman-Service.top_of_page">net.connman.Service</link>. See g_dbus_proxy_new_sync() for more details.
 *
 * The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_service_proxy_new() for the asynchronous version of this constructor.
 *
 * Returns: (transfer full) (type ConnManBusServiceProxy): The constructed proxy object or %NULL if @error is set.
 */
ConnManBusService *
conn_man_bus_service_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error)
{
  GInitable *ret;
  ret = g_initable_new (CONN_MAN_BUS_TYPE_SERVICE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "net.connman.Service", NULL);
  if (ret != NULL)
    return CONN_MAN_BUS_SERVICE (ret);
  else
    return NULL;
}


/**
 * conn_man_bus_service_proxy_new_for_bus:
 * @bus_type: A #GBusType.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: A bus name (well-known or unique).
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
 * @user_data: User data to pass to @callback.
 *
 * Like conn_man_bus_service_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
 *
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call conn_man_bus_service_proxy_new_for_bus_finish() to get the result of the operation.
 *
 * See conn_man_bus_service_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
 */
void
conn_man_bus_service_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data)
{
  g_async_initable_new_async (CONN_MAN_BUS_TYPE_SERVICE_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "net.connman.Service", NULL);
}

/**
 * conn_man_bus_service_proxy_new_for_bus_finish:
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to conn_man_bus_service_proxy_new_for_bus().
 * @error: Return location for error or %NULL
 *
 * Finishes an operation started with conn_man_bus_service_proxy_new_for_bus().
 *
 * Returns: (transfer full) (type ConnManBusServiceProxy): The constructed proxy object or %NULL if @error is set.
 */
ConnManBusService *
conn_man_bus_service_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error)
{
  GObject *ret;
  GObject *source_object;
  source_object = g_async_result_get_source_object (res);
  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
  g_object_unref (source_object);
  if (ret != NULL)
    return CONN_MAN_BUS_SERVICE (ret);
  else
    return NULL;
}

/**
 * conn_man_bus_service_proxy_new_for_bus_sync:
 * @bus_type: A #GBusType.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: A bus name (well-known or unique).
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL
 *
 * Like conn_man_bus_service_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
 *
 * The calling thread is blocked until a reply is received.
 *
 * See conn_man_bus_service_proxy_new_for_bus() for the asynchronous version of this constructor.
 *
 * Returns: (transfer full) (type ConnManBusServiceProxy): The constructed proxy object or %NULL if @error is set.
 */
ConnManBusService *
conn_man_bus_service_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error)
{
  GInitable *ret;
  ret = g_initable_new (CONN_MAN_BUS_TYPE_SERVICE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "net.connman.Service", NULL);
  if (ret != NULL)
    return CONN_MAN_BUS_SERVICE (ret);
  else
    return NULL;
}


/* ------------------------------------------------------------------------ */

/**
 * ConnManBusServiceSkeleton:
 *
 * The #ConnManBusServiceSkeleton structure contains only private data and should only be accessed using the provided API.
 */

/**
 * ConnManBusServiceSkeletonClass:
 * @parent_class: The parent class.
 *
 * Class structure for #ConnManBusServiceSkeleton.
 */

struct _ConnManBusServiceSkeletonPrivate
{
  GValue *properties;
  GList *changed_properties;
  GSource *changed_properties_idle_source;
  GMainContext *context;
  GMutex lock;
};

static void
_conn_man_bus_service_skeleton_handle_method_call (
  GDBusConnection *connection G_GNUC_UNUSED,
  const gchar *sender G_GNUC_UNUSED,
  const gchar *object_path G_GNUC_UNUSED,
  const gchar *interface_name,
  const gchar *method_name,
  GVariant *parameters,
  GDBusMethodInvocation *invocation,
  gpointer user_data)
{
  ConnManBusServiceSkeleton *skeleton = CONN_MAN_BUS_SERVICE_SKELETON (user_data);
  _ExtendedGDBusMethodInfo *info;
  GVariantIter iter;
  GVariant *child;
  GValue *paramv;
  guint num_params;
  guint num_extra;
  guint n;
  guint signal_id;
  GValue return_value = G_VALUE_INIT;
  info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
  g_assert (info != NULL);
  num_params = g_variant_n_children (parameters);
  num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
  n = 0;
  g_value_init (&paramv[n], CONN_MAN_BUS_TYPE_SERVICE);
  g_value_set_object (&paramv[n++], skeleton);
  g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
  g_value_set_object (&paramv[n++], invocation);
  if (info->pass_fdlist)
    {
#ifdef G_OS_UNIX
      g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
      g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
#else
      g_assert_not_reached ();
#endif
    }
  g_variant_iter_init (&iter, parameters);
  while ((child = g_variant_iter_next_value (&iter)) != NULL)
    {
      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
      if (arg_info->use_gvariant)
        {
          g_value_init (&paramv[n], G_TYPE_VARIANT);
          g_value_set_variant (&paramv[n], child);
          n++;
        }
      else
        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
      g_variant_unref (child);
    }
  signal_id = g_signal_lookup (info->signal_name, CONN_MAN_BUS_TYPE_SERVICE);
  g_value_init (&return_value, G_TYPE_BOOLEAN);
  g_signal_emitv (paramv, signal_id, 0, &return_value);
  if (!g_value_get_boolean (&return_value))
    g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name);
  g_value_unset (&return_value);
  for (n = 0; n < num_params + num_extra; n++)
    g_value_unset (&paramv[n]);
  g_free (paramv);
}

static GVariant *
_conn_man_bus_service_skeleton_handle_get_property (
  GDBusConnection *connection G_GNUC_UNUSED,
  const gchar *sender G_GNUC_UNUSED,
  const gchar *object_path G_GNUC_UNUSED,
  const gchar *interface_name G_GNUC_UNUSED,
  const gchar *property_name,
  GError **error,
  gpointer user_data)
{
  ConnManBusServiceSkeleton *skeleton = CONN_MAN_BUS_SERVICE_SKELETON (user_data);
  GValue value = G_VALUE_INIT;
  GParamSpec *pspec;
  _ExtendedGDBusPropertyInfo *info;
  GVariant *ret;
  ret = NULL;
  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_conn_man_bus_service_interface_info.parent_struct, property_name);
  g_assert (info != NULL);
  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
  if (pspec == NULL)
    {
      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
    }
  else
    {
      g_value_init (&value, pspec->value_type);
      g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
      ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
      g_value_unset (&value);
    }
  return ret;
}

static gboolean
_conn_man_bus_service_skeleton_handle_set_property (
  GDBusConnection *connection G_GNUC_UNUSED,
  const gchar *sender G_GNUC_UNUSED,
  const gchar *object_path G_GNUC_UNUSED,
  const gchar *interface_name G_GNUC_UNUSED,
  const gchar *property_name,
  GVariant *variant,
  GError **error,
  gpointer user_data)
{
  ConnManBusServiceSkeleton *skeleton = CONN_MAN_BUS_SERVICE_SKELETON (user_data);
  GValue value = G_VALUE_INIT;
  GParamSpec *pspec;
  _ExtendedGDBusPropertyInfo *info;
  gboolean ret;
  ret = FALSE;
  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_conn_man_bus_service_interface_info.parent_struct, property_name);
  g_assert (info != NULL);
  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
  if (pspec == NULL)
    {
      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
    }
  else
    {
      if (info->use_gvariant)
        g_value_set_variant (&value, variant);
      else
        g_dbus_gvariant_to_gvalue (variant, &value);
      g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
      g_value_unset (&value);
      ret = TRUE;
    }
  return ret;
}

static const GDBusInterfaceVTable _conn_man_bus_service_skeleton_vtable =
{
  _conn_man_bus_service_skeleton_handle_method_call,
  _conn_man_bus_service_skeleton_handle_get_property,
  _conn_man_bus_service_skeleton_handle_set_property,
  {NULL}
};

static GDBusInterfaceInfo *
conn_man_bus_service_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
{
  return conn_man_bus_service_interface_info ();
}

static GDBusInterfaceVTable *
conn_man_bus_service_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
{
  return (GDBusInterfaceVTable *) &_conn_man_bus_service_skeleton_vtable;
}

static GVariant *
conn_man_bus_service_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
{
  ConnManBusServiceSkeleton *skeleton = CONN_MAN_BUS_SERVICE_SKELETON (_skeleton);

  GVariantBuilder builder;
  guint n;
  g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
  if (_conn_man_bus_service_interface_info.parent_struct.properties == NULL)
    goto out;
  for (n = 0; _conn_man_bus_service_interface_info.parent_struct.properties[n] != NULL; n++)
    {
      GDBusPropertyInfo *info = _conn_man_bus_service_interface_info.parent_struct.properties[n];
      if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
        {
          GVariant *value;
          value = _conn_man_bus_service_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "net.connman.Service", info->name, NULL, skeleton);
          if (value != NULL)
            {
              g_variant_take_ref (value);
              g_variant_builder_add (&builder, "{sv}", info->name, value);
              g_variant_unref (value);
            }
        }
    }
out:
  return g_variant_builder_end (&builder);
}

static void
conn_man_bus_service_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
{
}

static void
_conn_man_bus_service_on_signal_property_changed (
    ConnManBusService *object,
    const gchar *arg_name,
    GVariant *arg_value)
{
  ConnManBusServiceSkeleton *skeleton = CONN_MAN_BUS_SERVICE_SKELETON (object);

  GList      *connections, *l;
  GVariant   *signal_variant;
  connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));

  signal_variant = g_variant_ref_sink (g_variant_new ("(s@v)",
                   arg_name,
                   arg_value));
  for (l = connections; l != NULL; l = l->next)
    {
      GDBusConnection *connection = l->data;
      g_dbus_connection_emit_signal (connection,
        NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "net.connman.Service", "PropertyChanged",
        signal_variant, NULL);
    }
  g_variant_unref (signal_variant);
  g_list_free_full (connections, g_object_unref);
}

static void conn_man_bus_service_skeleton_iface_init (ConnManBusServiceIface *iface);
#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
G_DEFINE_TYPE_WITH_CODE (ConnManBusServiceSkeleton, conn_man_bus_service_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
                         G_ADD_PRIVATE (ConnManBusServiceSkeleton)
                         G_IMPLEMENT_INTERFACE (CONN_MAN_BUS_TYPE_SERVICE, conn_man_bus_service_skeleton_iface_init));

#else
G_DEFINE_TYPE_WITH_CODE (ConnManBusServiceSkeleton, conn_man_bus_service_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
                         G_IMPLEMENT_INTERFACE (CONN_MAN_BUS_TYPE_SERVICE, conn_man_bus_service_skeleton_iface_init));

#endif
static void
conn_man_bus_service_skeleton_finalize (GObject *object)
{
  ConnManBusServiceSkeleton *skeleton = CONN_MAN_BUS_SERVICE_SKELETON (object);
  g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
  if (skeleton->priv->changed_properties_idle_source != NULL)
    g_source_destroy (skeleton->priv->changed_properties_idle_source);
  g_main_context_unref (skeleton->priv->context);
  g_mutex_clear (&skeleton->priv->lock);
  G_OBJECT_CLASS (conn_man_bus_service_skeleton_parent_class)->finalize (object);
}

static void
conn_man_bus_service_skeleton_init (ConnManBusServiceSkeleton *skeleton)
{
#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
  skeleton->priv = conn_man_bus_service_skeleton_get_instance_private (skeleton);
#else
  skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, CONN_MAN_BUS_TYPE_SERVICE_SKELETON, ConnManBusServiceSkeletonPrivate);
#endif

  g_mutex_init (&skeleton->priv->lock);
  skeleton->priv->context = g_main_context_ref_thread_default ();
}

static void
conn_man_bus_service_skeleton_class_init (ConnManBusServiceSkeletonClass *klass)
{
  GObjectClass *gobject_class;
  GDBusInterfaceSkeletonClass *skeleton_class;

  gobject_class = G_OBJECT_CLASS (klass);
  gobject_class->finalize = conn_man_bus_service_skeleton_finalize;

  skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
  skeleton_class->get_info = conn_man_bus_service_skeleton_dbus_interface_get_info;
  skeleton_class->get_properties = conn_man_bus_service_skeleton_dbus_interface_get_properties;
  skeleton_class->flush = conn_man_bus_service_skeleton_dbus_interface_flush;
  skeleton_class->get_vtable = conn_man_bus_service_skeleton_dbus_interface_get_vtable;

#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
  g_type_class_add_private (klass, sizeof (ConnManBusServiceSkeletonPrivate));
#endif
}

static void
conn_man_bus_service_skeleton_iface_init (ConnManBusServiceIface *iface)
{
  iface->property_changed = _conn_man_bus_service_on_signal_property_changed;
}

/**
 * conn_man_bus_service_skeleton_new:
 *
 * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-net-connman-Service.top_of_page">net.connman.Service</link>.
 *
 * Returns: (transfer full) (type ConnManBusServiceSkeleton): The skeleton object.
 */
ConnManBusService *
conn_man_bus_service_skeleton_new (void)
{
  return CONN_MAN_BUS_SERVICE (g_object_new (CONN_MAN_BUS_TYPE_SERVICE_SKELETON, NULL));
}

