AC_INIT([libneardal], [0.1.0])
AM_INIT_AUTOMAKE([foreign -Wall -Werror])
+
AC_PROG_LIBTOOL
AC_CONFIG_HEADERS([config.h])
fi
## Check dependances
-PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.22, dummy=yes,
- AC_MSG_ERROR(GLib >= 2.22 is required))
+GLIB_REQUIRED=2.30.0
+PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED, dummy=yes,
+ AC_MSG_ERROR(GLib >= $GLIB_REQUIRED is required))
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
-PKG_CHECK_MODULES(DBUS, dbus-glib-1, [have_dbus="yes"], [have_dbus="no"])
-AC_SUBST(DBUS_CFLAGS)
-AC_SUBST(DBUS_LIBS)
+PKG_CHECK_MODULES(GIO_UNIX, gio-unix-2.0 >= $GLIB_REQUIRED, dummy=yes,
+ AC_MSG_ERROR(gio-unix >= $GLIB_REQUIRED is required))
+AC_SUBST(GIO_UNIX_CFLAGS)
+AC_SUBST(GIO_UNIX_LIBS)
AC_CHECK_PROGS([DOXYGEN], [doxygen])
if test -z "$DOXYGEN";
neardal_LT_AGE = 0
#Rule to generate the binding headers
-neard-manager-proxy.h: interface/org.neard.Manager.xml
- dbus-binding-tool --mode=glib-client $<> $@
-
-neard-adapter-proxy.h: interface/org.neard.Adapter.xml
- dbus-binding-tool --mode=glib-client $<> $@
-
-neard-target-proxy.h: interface/org.neard.Target.xml
- dbus-binding-tool --mode=glib-client $<> $@
-
-neard-record-proxy.h: interface/org.neard.Record.xml
- dbus-binding-tool --mode=glib-client $<> $@
-
-BUILT_SOURCES = neard-manager-proxy.h \
- neard-adapter-proxy.h \
- neard-target-proxy.h \
- neard-record-proxy.h
+neard_manager_proxy.h: interface/org.neard.Manager.xml
+ gdbus-codegen --generate-c-code neard_manager_proxy \
+ --c-namespace orgNeardMgr \
+ --interface-prefix org.neard.Manager \
+ $<
+
+neard_adapter_proxy.h: interface/org.neard.Adapter.xml
+ gdbus-codegen --generate-c-code neard_adapter_proxy \
+ --c-namespace orgNeardAdp \
+ --interface-prefix org.neard.Adapter \
+ $<
+
+neard_target_proxy.h: interface/org.neard.Target.xml
+ gdbus-codegen --generate-c-code neard_target_proxy \
+ --c-namespace orgNeardTgt \
+ --interface-prefix org.neard.Target \
+ $<
+
+neard_record_proxy.h: interface/org.neard.Record.xml
+ gdbus-codegen --generate-c-code neard_record_proxy \
+ --c-namespace orgNeardRcd \
+ --interface-prefix org.neard.Record \
+ $<
+
+BUILT_SOURCES = neard_manager_proxy.h \
+ neard_adapter_proxy.h \
+ neard_target_proxy.h \
+ neard_record_proxy.h
neardal_PRV_HDR = \
neardal_adapter.h \
lib_LTLIBRARIES = libneardal.la
libneardal_la_SOURCES = neardal.c \
neardal_adapter.c \
+ neard_adapter_proxy.c \
neardal_errors.c \
neardal_manager.c \
+ neard_manager_proxy.c \
neardal_record.c \
+ neard_record_proxy.c \
neardal_target.c \
+ neard_target_proxy.c \
neardal_tools.c \
neardal_traces.c
libneardal_la_LDFLAGS = -version-info $(neardal_LT_CURRENT):$(neardal_LT_REVISION):$(neardal_LT_AGE)
-libneardal_la_CFLAGS = $(GLIB_CFLAGS) $(DBUS_CFLAGS)
+libneardal_la_CFLAGS = $(GLIB_CFLAGS) $(GIO_UNIX_CFLAGS)
-libneardal_la_LIBADD = $(GLIB_LIBS) $(DBUS_LIBS)
+libneardal_la_LIBADD = $(GLIB_LIBS) $(GIO_UNIX_LIBS)
neardalheadersdir = $(includedir)/neardal
--- /dev/null
+/*
+ * Generated by gdbus-codegen 2.30.0. 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 "neard_adapter_proxy.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:
+ ret = (g_value_get_double (a) == g_value_get_double (b));
+ 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 org.neard.Adapter
+ * ------------------------------------------------------------------------
+ */
+
+/**
+ * SECTION:orgNeardAdp
+ * @title: orgNeardAdp
+ * @short_description: Generated C code for the org.neard.Adapter D-Bus interface
+ *
+ * This section contains code for working with the <link linkend="gdbus-interface-org-neard-Adapter.top_of_page">org.neard.Adapter</link> D-Bus interface in C.
+ */
+
+/* ---- Introspection data for org.neard.Adapter ---- */
+
+static const _ExtendedGDBusArgInfo _org_neard_adp__method_info_get_properties_OUT_ARG_unnamed_arg0 =
+{
+ {
+ -1,
+ "unnamed_arg0",
+ "a{sv}",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _org_neard_adp__method_info_get_properties_OUT_ARG_pointers[] =
+{
+ &_org_neard_adp__method_info_get_properties_OUT_ARG_unnamed_arg0,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _org_neard_adp__method_info_get_properties =
+{
+ {
+ -1,
+ "GetProperties",
+ NULL,
+ (GDBusArgInfo **) &_org_neard_adp__method_info_get_properties_OUT_ARG_pointers,
+ NULL
+ },
+ "handle-get-properties",
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _org_neard_adp__method_info_set_property_IN_ARG_unnamed_arg0 =
+{
+ {
+ -1,
+ "unnamed_arg0",
+ "s",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _org_neard_adp__method_info_set_property_IN_ARG_unnamed_arg1 =
+{
+ {
+ -1,
+ "unnamed_arg1",
+ "v",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _org_neard_adp__method_info_set_property_IN_ARG_pointers[] =
+{
+ &_org_neard_adp__method_info_set_property_IN_ARG_unnamed_arg0,
+ &_org_neard_adp__method_info_set_property_IN_ARG_unnamed_arg1,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _org_neard_adp__method_info_set_property =
+{
+ {
+ -1,
+ "SetProperty",
+ (GDBusArgInfo **) &_org_neard_adp__method_info_set_property_IN_ARG_pointers,
+ NULL,
+ NULL
+ },
+ "handle-set-property",
+ FALSE
+};
+
+static const _ExtendedGDBusMethodInfo _org_neard_adp__method_info_start_poll =
+{
+ {
+ -1,
+ "StartPoll",
+ NULL,
+ NULL,
+ NULL
+ },
+ "handle-start-poll",
+ FALSE
+};
+
+static const _ExtendedGDBusMethodInfo _org_neard_adp__method_info_stop_poll =
+{
+ {
+ -1,
+ "StopPoll",
+ NULL,
+ NULL,
+ NULL
+ },
+ "handle-stop-poll",
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _org_neard_adp__method_info_publish_IN_ARG_unnamed_arg0 =
+{
+ {
+ -1,
+ "unnamed_arg0",
+ "a{sv}",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _org_neard_adp__method_info_publish_IN_ARG_pointers[] =
+{
+ &_org_neard_adp__method_info_publish_IN_ARG_unnamed_arg0,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _org_neard_adp__method_info_publish =
+{
+ {
+ -1,
+ "Publish",
+ (GDBusArgInfo **) &_org_neard_adp__method_info_publish_IN_ARG_pointers,
+ NULL,
+ NULL
+ },
+ "handle-publish",
+ FALSE
+};
+
+static const _ExtendedGDBusMethodInfo * const _org_neard_adp__method_info_pointers[] =
+{
+ &_org_neard_adp__method_info_get_properties,
+ &_org_neard_adp__method_info_set_property,
+ &_org_neard_adp__method_info_start_poll,
+ &_org_neard_adp__method_info_stop_poll,
+ &_org_neard_adp__method_info_publish,
+ NULL
+};
+
+static const _ExtendedGDBusArgInfo _org_neard_adp__signal_info_property_changed_ARG_unnamed_arg0 =
+{
+ {
+ -1,
+ "unnamed_arg0",
+ "s",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _org_neard_adp__signal_info_property_changed_ARG_unnamed_arg1 =
+{
+ {
+ -1,
+ "unnamed_arg1",
+ "v",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _org_neard_adp__signal_info_property_changed_ARG_pointers[] =
+{
+ &_org_neard_adp__signal_info_property_changed_ARG_unnamed_arg0,
+ &_org_neard_adp__signal_info_property_changed_ARG_unnamed_arg1,
+ NULL
+};
+
+static const _ExtendedGDBusSignalInfo _org_neard_adp__signal_info_property_changed =
+{
+ {
+ -1,
+ "PropertyChanged",
+ (GDBusArgInfo **) &_org_neard_adp__signal_info_property_changed_ARG_pointers,
+ NULL
+ },
+ "property-changed"
+};
+
+static const _ExtendedGDBusArgInfo _org_neard_adp__signal_info_target_found_ARG_unnamed_arg0 =
+{
+ {
+ -1,
+ "unnamed_arg0",
+ "o",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _org_neard_adp__signal_info_target_found_ARG_pointers[] =
+{
+ &_org_neard_adp__signal_info_target_found_ARG_unnamed_arg0,
+ NULL
+};
+
+static const _ExtendedGDBusSignalInfo _org_neard_adp__signal_info_target_found =
+{
+ {
+ -1,
+ "TargetFound",
+ (GDBusArgInfo **) &_org_neard_adp__signal_info_target_found_ARG_pointers,
+ NULL
+ },
+ "target-found"
+};
+
+static const _ExtendedGDBusArgInfo _org_neard_adp__signal_info_target_lost_ARG_unnamed_arg0 =
+{
+ {
+ -1,
+ "unnamed_arg0",
+ "o",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _org_neard_adp__signal_info_target_lost_ARG_pointers[] =
+{
+ &_org_neard_adp__signal_info_target_lost_ARG_unnamed_arg0,
+ NULL
+};
+
+static const _ExtendedGDBusSignalInfo _org_neard_adp__signal_info_target_lost =
+{
+ {
+ -1,
+ "TargetLost",
+ (GDBusArgInfo **) &_org_neard_adp__signal_info_target_lost_ARG_pointers,
+ NULL
+ },
+ "target-lost"
+};
+
+static const _ExtendedGDBusSignalInfo * const _org_neard_adp__signal_info_pointers[] =
+{
+ &_org_neard_adp__signal_info_property_changed,
+ &_org_neard_adp__signal_info_target_found,
+ &_org_neard_adp__signal_info_target_lost,
+ NULL
+};
+
+static const _ExtendedGDBusInterfaceInfo _org_neard_adp__interface_info =
+{
+ {
+ -1,
+ "org.neard.Adapter",
+ (GDBusMethodInfo **) &_org_neard_adp__method_info_pointers,
+ (GDBusSignalInfo **) &_org_neard_adp__signal_info_pointers,
+ NULL,
+ NULL
+ },
+ "",
+};
+
+
+/**
+ * org_neard_adp__interface_info:
+ *
+ * Gets a machine-readable description of the <link linkend="gdbus-interface-org-neard-Adapter.top_of_page">org.neard.Adapter</link> D-Bus interface.
+ *
+ * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
+ */
+GDBusInterfaceInfo *
+org_neard_adp__interface_info (void)
+{
+ return (GDBusInterfaceInfo *) &_org_neard_adp__interface_info;
+}
+
+/**
+ * org_neard_adp__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 #orgNeardAdp interface for a concrete class.
+ * The properties are overridden in the order they are defined.
+ *
+ * Returns: The last property id.
+ */
+guint
+org_neard_adp__override_properties (GObjectClass *klass, guint property_id_begin)
+{
+ return property_id_begin - 1;
+}
+
+
+
+/**
+ * orgNeardAdp:
+ *
+ * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-neard-Adapter.top_of_page">org.neard.Adapter</link>.
+ */
+
+/**
+ * orgNeardAdpIface:
+ * @parent_iface: The parent interface.
+ * @handle_get_properties: Handler for the #orgNeardAdp::handle-get-properties signal.
+ * @handle_publish: Handler for the #orgNeardAdp::handle-publish signal.
+ * @handle_set_property: Handler for the #orgNeardAdp::handle-set-property signal.
+ * @handle_start_poll: Handler for the #orgNeardAdp::handle-start-poll signal.
+ * @handle_stop_poll: Handler for the #orgNeardAdp::handle-stop-poll signal.
+ * @property_changed: Handler for the #orgNeardAdp::property-changed signal.
+ * @target_found: Handler for the #orgNeardAdp::target-found signal.
+ * @target_lost: Handler for the #orgNeardAdp::target-lost signal.
+ *
+ * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-neard-Adapter.top_of_page">org.neard.Adapter</link>.
+ */
+
+static void
+org_neard_adp__default_init (orgNeardAdpIface *iface)
+{
+ /* GObject signals for incoming D-Bus method calls: */
+ /**
+ * orgNeardAdp::handle-get-properties:
+ * @object: A #orgNeardAdp.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-neard-Adapter.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 org_neard_adp__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 (orgNeardAdpIface, handle_get_properties),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /**
+ * orgNeardAdp::handle-set-property:
+ * @object: A #orgNeardAdp.
+ * @invocation: A #GDBusMethodInvocation.
+ * @arg_unnamed_arg0: Argument passed by remote caller.
+ * @arg_unnamed_arg1: Argument passed by remote caller.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-neard-Adapter.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 org_neard_adp__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 (orgNeardAdpIface, 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);
+
+ /**
+ * orgNeardAdp::handle-start-poll:
+ * @object: A #orgNeardAdp.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-neard-Adapter.StartPoll">StartPoll()</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 org_neard_adp__complete_start_poll() 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-start-poll",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (orgNeardAdpIface, handle_start_poll),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /**
+ * orgNeardAdp::handle-stop-poll:
+ * @object: A #orgNeardAdp.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-neard-Adapter.StopPoll">StopPoll()</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 org_neard_adp__complete_stop_poll() 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-stop-poll",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (orgNeardAdpIface, handle_stop_poll),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /**
+ * orgNeardAdp::handle-publish:
+ * @object: A #orgNeardAdp.
+ * @invocation: A #GDBusMethodInvocation.
+ * @arg_unnamed_arg0: Argument passed by remote caller.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-neard-Adapter.Publish">Publish()</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 org_neard_adp__complete_publish() 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-publish",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (orgNeardAdpIface, handle_publish),
+ 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: */
+ /**
+ * orgNeardAdp::property-changed:
+ * @object: A #orgNeardAdp.
+ * @arg_unnamed_arg0: Argument.
+ * @arg_unnamed_arg1: Argument.
+ *
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-neard-Adapter.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 (orgNeardAdpIface, property_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE,
+ 2, G_TYPE_STRING, G_TYPE_VARIANT);
+
+ /**
+ * orgNeardAdp::target-found:
+ * @object: A #orgNeardAdp.
+ * @arg_unnamed_arg0: Argument.
+ *
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-neard-Adapter.TargetFound">"TargetFound"</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 ("target-found",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (orgNeardAdpIface, target_found),
+ NULL,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE,
+ 1, G_TYPE_STRING);
+
+ /**
+ * orgNeardAdp::target-lost:
+ * @object: A #orgNeardAdp.
+ * @arg_unnamed_arg0: Argument.
+ *
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-neard-Adapter.TargetLost">"TargetLost"</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 ("target-lost",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (orgNeardAdpIface, target_lost),
+ NULL,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE,
+ 1, G_TYPE_STRING);
+
+}
+
+typedef orgNeardAdpIface orgNeardAdpInterface;
+G_DEFINE_INTERFACE (orgNeardAdp, org_neard_adp_, G_TYPE_OBJECT);
+
+/**
+ * org_neard_adp__emit_property_changed:
+ * @object: A #orgNeardAdp.
+ * @arg_unnamed_arg0: Argument to pass with the signal.
+ * @arg_unnamed_arg1: Argument to pass with the signal.
+ *
+ * Emits the <link linkend="gdbus-signal-org-neard-Adapter.PropertyChanged">"PropertyChanged"</link> D-Bus signal.
+ */
+void
+org_neard_adp__emit_property_changed (
+ orgNeardAdp *object,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1)
+{
+ g_signal_emit_by_name (object, "property-changed", arg_unnamed_arg0, arg_unnamed_arg1);
+}
+
+/**
+ * org_neard_adp__emit_target_found:
+ * @object: A #orgNeardAdp.
+ * @arg_unnamed_arg0: Argument to pass with the signal.
+ *
+ * Emits the <link linkend="gdbus-signal-org-neard-Adapter.TargetFound">"TargetFound"</link> D-Bus signal.
+ */
+void
+org_neard_adp__emit_target_found (
+ orgNeardAdp *object,
+ const gchar *arg_unnamed_arg0)
+{
+ g_signal_emit_by_name (object, "target-found", arg_unnamed_arg0);
+}
+
+/**
+ * org_neard_adp__emit_target_lost:
+ * @object: A #orgNeardAdp.
+ * @arg_unnamed_arg0: Argument to pass with the signal.
+ *
+ * Emits the <link linkend="gdbus-signal-org-neard-Adapter.TargetLost">"TargetLost"</link> D-Bus signal.
+ */
+void
+org_neard_adp__emit_target_lost (
+ orgNeardAdp *object,
+ const gchar *arg_unnamed_arg0)
+{
+ g_signal_emit_by_name (object, "target-lost", arg_unnamed_arg0);
+}
+
+/**
+ * org_neard_adp__call_get_properties:
+ * @proxy: A #orgNeardAdpProxy.
+ * @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-org-neard-Adapter.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 org_neard_adp__call_get_properties_finish() to get the result of the operation.
+ *
+ * See org_neard_adp__call_get_properties_sync() for the synchronous, blocking version of this method.
+ */
+void
+org_neard_adp__call_get_properties (
+ orgNeardAdp *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);
+}
+
+/**
+ * org_neard_adp__call_get_properties_finish:
+ * @proxy: A #orgNeardAdpProxy.
+ * @out_unnamed_arg0: (out): Return location for return parameter or %NULL to ignore.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_neard_adp__call_get_properties().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with org_neard_adp__call_get_properties().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+org_neard_adp__call_get_properties_finish (
+ orgNeardAdp *proxy,
+ GVariant **out_unnamed_arg0,
+ 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_unnamed_arg0);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * org_neard_adp__call_get_properties_sync:
+ * @proxy: A #orgNeardAdpProxy.
+ * @out_unnamed_arg0: (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-org-neard-Adapter.GetProperties">GetProperties()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See org_neard_adp__call_get_properties() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+org_neard_adp__call_get_properties_sync (
+ orgNeardAdp *proxy,
+ GVariant **out_unnamed_arg0,
+ 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_unnamed_arg0);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * org_neard_adp__call_set_property:
+ * @proxy: A #orgNeardAdpProxy.
+ * @arg_unnamed_arg0: Argument to pass with the method invocation.
+ * @arg_unnamed_arg1: 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-org-neard-Adapter.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 org_neard_adp__call_set_property_finish() to get the result of the operation.
+ *
+ * See org_neard_adp__call_set_property_sync() for the synchronous, blocking version of this method.
+ */
+void
+org_neard_adp__call_set_property (
+ orgNeardAdp *proxy,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "SetProperty",
+ g_variant_new ("(s@v)",
+ arg_unnamed_arg0,
+ arg_unnamed_arg1),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * org_neard_adp__call_set_property_finish:
+ * @proxy: A #orgNeardAdpProxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_neard_adp__call_set_property().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with org_neard_adp__call_set_property().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+org_neard_adp__call_set_property_finish (
+ orgNeardAdp *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;
+}
+
+/**
+ * org_neard_adp__call_set_property_sync:
+ * @proxy: A #orgNeardAdpProxy.
+ * @arg_unnamed_arg0: Argument to pass with the method invocation.
+ * @arg_unnamed_arg1: 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-org-neard-Adapter.SetProperty">SetProperty()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See org_neard_adp__call_set_property() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+org_neard_adp__call_set_property_sync (
+ orgNeardAdp *proxy,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "SetProperty",
+ g_variant_new ("(s@v)",
+ arg_unnamed_arg0,
+ arg_unnamed_arg1),
+ 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;
+}
+
+/**
+ * org_neard_adp__call_start_poll:
+ * @proxy: A #orgNeardAdpProxy.
+ * @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-org-neard-Adapter.StartPoll">StartPoll()</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 org_neard_adp__call_start_poll_finish() to get the result of the operation.
+ *
+ * See org_neard_adp__call_start_poll_sync() for the synchronous, blocking version of this method.
+ */
+void
+org_neard_adp__call_start_poll (
+ orgNeardAdp *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "StartPoll",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * org_neard_adp__call_start_poll_finish:
+ * @proxy: A #orgNeardAdpProxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_neard_adp__call_start_poll().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with org_neard_adp__call_start_poll().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+org_neard_adp__call_start_poll_finish (
+ orgNeardAdp *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;
+}
+
+/**
+ * org_neard_adp__call_start_poll_sync:
+ * @proxy: A #orgNeardAdpProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-neard-Adapter.StartPoll">StartPoll()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See org_neard_adp__call_start_poll() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+org_neard_adp__call_start_poll_sync (
+ orgNeardAdp *proxy,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "StartPoll",
+ 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;
+}
+
+/**
+ * org_neard_adp__call_stop_poll:
+ * @proxy: A #orgNeardAdpProxy.
+ * @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-org-neard-Adapter.StopPoll">StopPoll()</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 org_neard_adp__call_stop_poll_finish() to get the result of the operation.
+ *
+ * See org_neard_adp__call_stop_poll_sync() for the synchronous, blocking version of this method.
+ */
+void
+org_neard_adp__call_stop_poll (
+ orgNeardAdp *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "StopPoll",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * org_neard_adp__call_stop_poll_finish:
+ * @proxy: A #orgNeardAdpProxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_neard_adp__call_stop_poll().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with org_neard_adp__call_stop_poll().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+org_neard_adp__call_stop_poll_finish (
+ orgNeardAdp *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;
+}
+
+/**
+ * org_neard_adp__call_stop_poll_sync:
+ * @proxy: A #orgNeardAdpProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-neard-Adapter.StopPoll">StopPoll()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See org_neard_adp__call_stop_poll() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+org_neard_adp__call_stop_poll_sync (
+ orgNeardAdp *proxy,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "StopPoll",
+ 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;
+}
+
+/**
+ * org_neard_adp__call_publish:
+ * @proxy: A #orgNeardAdpProxy.
+ * @arg_unnamed_arg0: 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-org-neard-Adapter.Publish">Publish()</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 org_neard_adp__call_publish_finish() to get the result of the operation.
+ *
+ * See org_neard_adp__call_publish_sync() for the synchronous, blocking version of this method.
+ */
+void
+org_neard_adp__call_publish (
+ orgNeardAdp *proxy,
+ GVariant *arg_unnamed_arg0,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "Publish",
+ g_variant_new ("(@a{sv})",
+ arg_unnamed_arg0),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * org_neard_adp__call_publish_finish:
+ * @proxy: A #orgNeardAdpProxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_neard_adp__call_publish().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with org_neard_adp__call_publish().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+org_neard_adp__call_publish_finish (
+ orgNeardAdp *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;
+}
+
+/**
+ * org_neard_adp__call_publish_sync:
+ * @proxy: A #orgNeardAdpProxy.
+ * @arg_unnamed_arg0: 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-org-neard-Adapter.Publish">Publish()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See org_neard_adp__call_publish() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+org_neard_adp__call_publish_sync (
+ orgNeardAdp *proxy,
+ GVariant *arg_unnamed_arg0,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "Publish",
+ g_variant_new ("(@a{sv})",
+ arg_unnamed_arg0),
+ 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;
+}
+
+/**
+ * org_neard_adp__complete_get_properties:
+ * @object: A #orgNeardAdp.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @unnamed_arg0: Parameter to return.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-neard-Adapter.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
+org_neard_adp__complete_get_properties (
+ orgNeardAdp *object,
+ GDBusMethodInvocation *invocation,
+ GVariant *unnamed_arg0)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("(@a{sv})",
+ unnamed_arg0));
+}
+
+/**
+ * org_neard_adp__complete_set_property:
+ * @object: A #orgNeardAdp.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-neard-Adapter.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
+org_neard_adp__complete_set_property (
+ orgNeardAdp *object,
+ GDBusMethodInvocation *invocation)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("()"));
+}
+
+/**
+ * org_neard_adp__complete_start_poll:
+ * @object: A #orgNeardAdp.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-neard-Adapter.StartPoll">StartPoll()</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
+org_neard_adp__complete_start_poll (
+ orgNeardAdp *object,
+ GDBusMethodInvocation *invocation)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("()"));
+}
+
+/**
+ * org_neard_adp__complete_stop_poll:
+ * @object: A #orgNeardAdp.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-neard-Adapter.StopPoll">StopPoll()</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
+org_neard_adp__complete_stop_poll (
+ orgNeardAdp *object,
+ GDBusMethodInvocation *invocation)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("()"));
+}
+
+/**
+ * org_neard_adp__complete_publish:
+ * @object: A #orgNeardAdp.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-neard-Adapter.Publish">Publish()</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
+org_neard_adp__complete_publish (
+ orgNeardAdp *object,
+ GDBusMethodInvocation *invocation)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("()"));
+}
+
+/* ------------------------------------------------------------------------ */
+
+/**
+ * orgNeardAdpProxy:
+ *
+ * The #orgNeardAdpProxy structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * orgNeardAdpProxyClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #orgNeardAdpProxy.
+ */
+
+struct _orgNeardAdpProxyPrivate
+{
+ GData *qdata;
+};
+
+static void org_neard_adp__proxy_iface_init (orgNeardAdpIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (orgNeardAdpProxy, org_neard_adp__proxy, G_TYPE_DBUS_PROXY,
+ G_IMPLEMENT_INTERFACE (ORG_NEARD_ADP_TYPE_, org_neard_adp__proxy_iface_init));
+
+static void
+org_neard_adp__proxy_finalize (GObject *object)
+{
+ orgNeardAdpProxy *proxy = ORG_NEARD_ADP__PROXY (object);
+ g_datalist_clear (&proxy->priv->qdata);
+ G_OBJECT_CLASS (org_neard_adp__proxy_parent_class)->finalize (object);
+}
+
+static void
+org_neard_adp__proxy_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+}
+
+static void
+org_neard_adp__proxy_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+}
+
+static void
+org_neard_adp__proxy_g_signal (GDBusProxy *proxy,
+ const gchar *sender_name,
+ 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 *) &_org_neard_adp__interface_info, signal_name);
+ if (info == NULL)
+ return;
+ num_params = g_variant_n_children (parameters);
+ paramv = g_new0 (GValue, num_params + 1);
+ g_value_init (¶mv[0], ORG_NEARD_ADP_TYPE_);
+ g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT);
+ g_value_set_variant (¶mv[n], child);
+ n++;
+ }
+ else
+ g_dbus_gvariant_to_gvalue (child, ¶mv[n++]);
+ g_variant_unref (child);
+ }
+ signal_id = g_signal_lookup (info->signal_name, ORG_NEARD_ADP_TYPE_);
+ g_signal_emitv (paramv, signal_id, 0, NULL);
+ for (n = 0; n < num_params + 1; n++)
+ g_value_unset (¶mv[n]);
+ g_free (paramv);
+}
+
+static void
+org_neard_adp__proxy_g_properties_changed (GDBusProxy *_proxy,
+ GVariant *changed_properties,
+ const gchar *const *invalidated_properties)
+{
+ orgNeardAdpProxy *proxy = ORG_NEARD_ADP__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 *) &_org_neard_adp__interface_info, 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 *) &_org_neard_adp__interface_info, 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
+org_neard_adp__proxy_init (orgNeardAdpProxy *proxy)
+{
+ proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, ORG_NEARD_ADP_TYPE__PROXY, orgNeardAdpProxyPrivate);
+ g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_neard_adp__interface_info ());
+}
+
+static void
+org_neard_adp__proxy_class_init (orgNeardAdpProxyClass *klass)
+{
+ GObjectClass *gobject_class;
+ GDBusProxyClass *proxy_class;
+
+ g_type_class_add_private (klass, sizeof (orgNeardAdpProxyPrivate));
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = org_neard_adp__proxy_finalize;
+ gobject_class->get_property = org_neard_adp__proxy_get_property;
+ gobject_class->set_property = org_neard_adp__proxy_set_property;
+
+ proxy_class = G_DBUS_PROXY_CLASS (klass);
+ proxy_class->g_signal = org_neard_adp__proxy_g_signal;
+ proxy_class->g_properties_changed = org_neard_adp__proxy_g_properties_changed;
+
+}
+
+static void
+org_neard_adp__proxy_iface_init (orgNeardAdpIface *iface)
+{
+}
+
+/**
+ * org_neard_adp__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-org-neard-Adapter.top_of_page">org.neard.Adapter</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 org_neard_adp__proxy_new_finish() to get the result of the operation.
+ *
+ * See org_neard_adp__proxy_new_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+org_neard_adp__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 (ORG_NEARD_ADP_TYPE__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", "org.neard.Adapter", NULL);
+}
+
+/**
+ * org_neard_adp__proxy_new_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_neard_adp__proxy_new().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with org_neard_adp__proxy_new().
+ *
+ * Returns: (transfer full) (type orgNeardAdpProxy): The constructed proxy object or %NULL if @error is set.
+ */
+orgNeardAdp *
+org_neard_adp__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 ORG_NEARD_ADP_ (ret);
+ else
+ return NULL;
+}
+
+/**
+ * org_neard_adp__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-org-neard-Adapter.top_of_page">org.neard.Adapter</link>. See g_dbus_proxy_new_sync() for more details.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See org_neard_adp__proxy_new() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type orgNeardAdpProxy): The constructed proxy object or %NULL if @error is set.
+ */
+orgNeardAdp *
+org_neard_adp__proxy_new_sync (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GInitable *ret;
+ ret = g_initable_new (ORG_NEARD_ADP_TYPE__PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.neard.Adapter", NULL);
+ if (ret != NULL)
+ return ORG_NEARD_ADP_ (ret);
+ else
+ return NULL;
+}
+
+
+/**
+ * org_neard_adp__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 org_neard_adp__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 org_neard_adp__proxy_new_for_bus_finish() to get the result of the operation.
+ *
+ * See org_neard_adp__proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+org_neard_adp__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 (ORG_NEARD_ADP_TYPE__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", "org.neard.Adapter", NULL);
+}
+
+/**
+ * org_neard_adp__proxy_new_for_bus_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_neard_adp__proxy_new_for_bus().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with org_neard_adp__proxy_new_for_bus().
+ *
+ * Returns: (transfer full) (type orgNeardAdpProxy): The constructed proxy object or %NULL if @error is set.
+ */
+orgNeardAdp *
+org_neard_adp__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 ORG_NEARD_ADP_ (ret);
+ else
+ return NULL;
+}
+
+/**
+ * org_neard_adp__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 org_neard_adp__proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See org_neard_adp__proxy_new_for_bus() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type orgNeardAdpProxy): The constructed proxy object or %NULL if @error is set.
+ */
+orgNeardAdp *
+org_neard_adp__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 (ORG_NEARD_ADP_TYPE__PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.neard.Adapter", NULL);
+ if (ret != NULL)
+ return ORG_NEARD_ADP_ (ret);
+ else
+ return NULL;
+}
+
+
+/* ------------------------------------------------------------------------ */
+
+/**
+ * orgNeardAdpSkeleton:
+ *
+ * The #orgNeardAdpSkeleton structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * orgNeardAdpSkeletonClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #orgNeardAdpSkeleton.
+ */
+
+struct _orgNeardAdpSkeletonPrivate
+{
+ GValueArray *properties;
+ GList *changed_properties;
+ GSource *changed_properties_idle_source;
+ GMainContext *context;
+ GMutex *lock;
+};
+
+static void
+_org_neard_adp__skeleton_handle_method_call (
+ GDBusConnection *connection,
+ const gchar *sender,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *method_name,
+ GVariant *parameters,
+ GDBusMethodInvocation *invocation,
+ gpointer user_data)
+{
+ orgNeardAdpSkeleton *skeleton = ORG_NEARD_ADP__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 = {0};
+ 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 (¶mv[n], ORG_NEARD_ADP_TYPE_);
+ g_value_set_object (¶mv[n++], skeleton);
+ g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION);
+ g_value_set_object (¶mv[n++], invocation);
+ if (info->pass_fdlist)
+ {
+#ifdef G_OS_UNIX
+ g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST);
+ g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT);
+ g_value_set_variant (¶mv[n], child);
+ n++;
+ }
+ else
+ g_dbus_gvariant_to_gvalue (child, ¶mv[n++]);
+ g_variant_unref (child);
+ }
+ signal_id = g_signal_lookup (info->signal_name, ORG_NEARD_ADP_TYPE_);
+ 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 (¶mv[n]);
+ g_free (paramv);
+}
+
+static GVariant *
+_org_neard_adp__skeleton_handle_get_property (
+ GDBusConnection *connection,
+ const gchar *sender,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *property_name,
+ GError **error,
+ gpointer user_data)
+{
+ orgNeardAdpSkeleton *skeleton = ORG_NEARD_ADP__SKELETON (user_data);
+ GValue value = {0};
+ GParamSpec *pspec;
+ _ExtendedGDBusPropertyInfo *info;
+ GVariant *ret;
+ ret = NULL;
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_neard_adp__interface_info, 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
+_org_neard_adp__skeleton_handle_set_property (
+ GDBusConnection *connection,
+ const gchar *sender,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *property_name,
+ GVariant *variant,
+ GError **error,
+ gpointer user_data)
+{
+ orgNeardAdpSkeleton *skeleton = ORG_NEARD_ADP__SKELETON (user_data);
+ GValue value = {0};
+ GParamSpec *pspec;
+ _ExtendedGDBusPropertyInfo *info;
+ gboolean ret;
+ ret = FALSE;
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_neard_adp__interface_info, 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 _org_neard_adp__skeleton_vtable =
+{
+ _org_neard_adp__skeleton_handle_method_call,
+ _org_neard_adp__skeleton_handle_get_property,
+ _org_neard_adp__skeleton_handle_set_property
+};
+
+static GDBusInterfaceInfo *
+org_neard_adp__skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton)
+{
+ return org_neard_adp__interface_info ();
+}
+
+static GDBusInterfaceVTable *
+org_neard_adp__skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton)
+{
+ return (GDBusInterfaceVTable *) &_org_neard_adp__skeleton_vtable;
+}
+
+static GVariant *
+org_neard_adp__skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
+{
+ orgNeardAdpSkeleton *skeleton = ORG_NEARD_ADP__SKELETON (_skeleton);
+
+ GVariantBuilder builder;
+ guint n;
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
+ if (_org_neard_adp__interface_info.parent_struct.properties == NULL)
+ goto out;
+ for (n = 0; _org_neard_adp__interface_info.parent_struct.properties[n] != NULL; n++)
+ {
+ GDBusPropertyInfo *info = _org_neard_adp__interface_info.parent_struct.properties[n];
+ if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
+ {
+ GVariant *value;
+ value = _org_neard_adp__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)), "org.neard.Adapter", 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
+org_neard_adp__skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
+{
+}
+
+static void
+_org_neard_adp__on_signal_property_changed (
+ orgNeardAdp *object,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1)
+{
+ orgNeardAdpSkeleton *skeleton = ORG_NEARD_ADP__SKELETON (object);
+ GDBusConnection *connection = g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton));
+ if (connection == NULL)
+ return;
+ g_dbus_connection_emit_signal (connection,
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.neard.Adapter", "PropertyChanged",
+ g_variant_new ("(s@v)",
+ arg_unnamed_arg0,
+ arg_unnamed_arg1), NULL);
+}
+
+static void
+_org_neard_adp__on_signal_target_found (
+ orgNeardAdp *object,
+ const gchar *arg_unnamed_arg0)
+{
+ orgNeardAdpSkeleton *skeleton = ORG_NEARD_ADP__SKELETON (object);
+ GDBusConnection *connection = g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton));
+ if (connection == NULL)
+ return;
+ g_dbus_connection_emit_signal (connection,
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.neard.Adapter", "TargetFound",
+ g_variant_new ("(o)",
+ arg_unnamed_arg0), NULL);
+}
+
+static void
+_org_neard_adp__on_signal_target_lost (
+ orgNeardAdp *object,
+ const gchar *arg_unnamed_arg0)
+{
+ orgNeardAdpSkeleton *skeleton = ORG_NEARD_ADP__SKELETON (object);
+ GDBusConnection *connection = g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton));
+ if (connection == NULL)
+ return;
+ g_dbus_connection_emit_signal (connection,
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.neard.Adapter", "TargetLost",
+ g_variant_new ("(o)",
+ arg_unnamed_arg0), NULL);
+}
+
+static void org_neard_adp__skeleton_iface_init (orgNeardAdpIface *iface);
+G_DEFINE_TYPE_WITH_CODE (orgNeardAdpSkeleton, org_neard_adp__skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
+ G_IMPLEMENT_INTERFACE (ORG_NEARD_ADP_TYPE_, org_neard_adp__skeleton_iface_init));
+
+static void
+org_neard_adp__skeleton_finalize (GObject *object)
+{
+ orgNeardAdpSkeleton *skeleton = ORG_NEARD_ADP__SKELETON (object);
+ g_list_foreach (skeleton->priv->changed_properties, (GFunc) _changed_property_free, NULL);
+ g_list_free (skeleton->priv->changed_properties);
+ if (skeleton->priv->changed_properties_idle_source != NULL)
+ g_source_destroy (skeleton->priv->changed_properties_idle_source);
+ if (skeleton->priv->context != NULL)
+ g_main_context_unref (skeleton->priv->context);
+ g_mutex_free (skeleton->priv->lock);
+ G_OBJECT_CLASS (org_neard_adp__skeleton_parent_class)->finalize (object);
+}
+
+static void
+org_neard_adp__skeleton_init (orgNeardAdpSkeleton *skeleton)
+{
+ skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, ORG_NEARD_ADP_TYPE__SKELETON, orgNeardAdpSkeletonPrivate);
+ skeleton->priv->lock = g_mutex_new ();
+ skeleton->priv->context = g_main_context_get_thread_default ();
+ if (skeleton->priv->context != NULL)
+ g_main_context_ref (skeleton->priv->context);
+}
+
+static void
+org_neard_adp__skeleton_class_init (orgNeardAdpSkeletonClass *klass)
+{
+ GObjectClass *gobject_class;
+ GDBusInterfaceSkeletonClass *skeleton_class;
+
+ g_type_class_add_private (klass, sizeof (orgNeardAdpSkeletonPrivate));
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = org_neard_adp__skeleton_finalize;
+
+ skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
+ skeleton_class->get_info = org_neard_adp__skeleton_dbus_interface_get_info;
+ skeleton_class->get_properties = org_neard_adp__skeleton_dbus_interface_get_properties;
+ skeleton_class->flush = org_neard_adp__skeleton_dbus_interface_flush;
+ skeleton_class->get_vtable = org_neard_adp__skeleton_dbus_interface_get_vtable;
+}
+
+static void
+org_neard_adp__skeleton_iface_init (orgNeardAdpIface *iface)
+{
+ iface->property_changed = _org_neard_adp__on_signal_property_changed;
+ iface->target_found = _org_neard_adp__on_signal_target_found;
+ iface->target_lost = _org_neard_adp__on_signal_target_lost;
+}
+
+/**
+ * org_neard_adp__skeleton_new:
+ *
+ * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-neard-Adapter.top_of_page">org.neard.Adapter</link>.
+ *
+ * Returns: (transfer full) (type orgNeardAdpSkeleton): The skeleton object.
+ */
+orgNeardAdp *
+org_neard_adp__skeleton_new (void)
+{
+ return ORG_NEARD_ADP_ (g_object_new (ORG_NEARD_ADP_TYPE__SKELETON, NULL));
+}
+
--- /dev/null
+/*
+ * Generated by gdbus-codegen 2.30.0. DO NOT EDIT.
+ *
+ * The license of this code is the same as for the source it was derived from.
+ */
+
+#ifndef __NEARD_ADAPTER_PROXY_H__
+#define __NEARD_ADAPTER_PROXY_H__
+
+#include <gio/gio.h>
+
+G_BEGIN_DECLS
+
+
+/* ------------------------------------------------------------------------ */
+/* Declarations for org.neard.Adapter */
+
+#define ORG_NEARD_ADP_TYPE_ (org_neard_adp__get_type ())
+#define ORG_NEARD_ADP_(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ORG_NEARD_ADP_TYPE_, orgNeardAdp))
+#define ORG_NEARD_ADP_IS_(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ORG_NEARD_ADP_TYPE_))
+#define ORG_NEARD_ADP__GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), ORG_NEARD_ADP_TYPE_, orgNeardAdpIface))
+
+struct _orgNeardAdp;
+typedef struct _orgNeardAdp orgNeardAdp;
+typedef struct _orgNeardAdpIface orgNeardAdpIface;
+
+struct _orgNeardAdpIface
+{
+ GTypeInterface parent_iface;
+
+
+ gboolean (*handle_get_properties) (
+ orgNeardAdp *object,
+ GDBusMethodInvocation *invocation);
+
+ gboolean (*handle_publish) (
+ orgNeardAdp *object,
+ GDBusMethodInvocation *invocation,
+ GVariant *arg_unnamed_arg0);
+
+ gboolean (*handle_set_property) (
+ orgNeardAdp *object,
+ GDBusMethodInvocation *invocation,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1);
+
+ gboolean (*handle_start_poll) (
+ orgNeardAdp *object,
+ GDBusMethodInvocation *invocation);
+
+ gboolean (*handle_stop_poll) (
+ orgNeardAdp *object,
+ GDBusMethodInvocation *invocation);
+
+ void (*property_changed) (
+ orgNeardAdp *object,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1);
+
+ void (*target_found) (
+ orgNeardAdp *object,
+ const gchar *arg_unnamed_arg0);
+
+ void (*target_lost) (
+ orgNeardAdp *object,
+ const gchar *arg_unnamed_arg0);
+
+};
+
+GType org_neard_adp__get_type (void) G_GNUC_CONST;
+
+GDBusInterfaceInfo *org_neard_adp__interface_info (void);
+guint org_neard_adp__override_properties (GObjectClass *klass, guint property_id_begin);
+
+
+/* D-Bus method call completion functions: */
+void org_neard_adp__complete_get_properties (
+ orgNeardAdp *object,
+ GDBusMethodInvocation *invocation,
+ GVariant *unnamed_arg0);
+
+void org_neard_adp__complete_set_property (
+ orgNeardAdp *object,
+ GDBusMethodInvocation *invocation);
+
+void org_neard_adp__complete_start_poll (
+ orgNeardAdp *object,
+ GDBusMethodInvocation *invocation);
+
+void org_neard_adp__complete_stop_poll (
+ orgNeardAdp *object,
+ GDBusMethodInvocation *invocation);
+
+void org_neard_adp__complete_publish (
+ orgNeardAdp *object,
+ GDBusMethodInvocation *invocation);
+
+
+
+/* D-Bus signal emissions functions: */
+void org_neard_adp__emit_property_changed (
+ orgNeardAdp *object,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1);
+
+void org_neard_adp__emit_target_found (
+ orgNeardAdp *object,
+ const gchar *arg_unnamed_arg0);
+
+void org_neard_adp__emit_target_lost (
+ orgNeardAdp *object,
+ const gchar *arg_unnamed_arg0);
+
+
+
+/* D-Bus method calls: */
+void org_neard_adp__call_get_properties (
+ orgNeardAdp *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+gboolean org_neard_adp__call_get_properties_finish (
+ orgNeardAdp *proxy,
+ GVariant **out_unnamed_arg0,
+ GAsyncResult *res,
+ GError **error);
+
+gboolean org_neard_adp__call_get_properties_sync (
+ orgNeardAdp *proxy,
+ GVariant **out_unnamed_arg0,
+ GCancellable *cancellable,
+ GError **error);
+
+void org_neard_adp__call_set_property (
+ orgNeardAdp *proxy,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+gboolean org_neard_adp__call_set_property_finish (
+ orgNeardAdp *proxy,
+ GAsyncResult *res,
+ GError **error);
+
+gboolean org_neard_adp__call_set_property_sync (
+ orgNeardAdp *proxy,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1,
+ GCancellable *cancellable,
+ GError **error);
+
+void org_neard_adp__call_start_poll (
+ orgNeardAdp *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+gboolean org_neard_adp__call_start_poll_finish (
+ orgNeardAdp *proxy,
+ GAsyncResult *res,
+ GError **error);
+
+gboolean org_neard_adp__call_start_poll_sync (
+ orgNeardAdp *proxy,
+ GCancellable *cancellable,
+ GError **error);
+
+void org_neard_adp__call_stop_poll (
+ orgNeardAdp *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+gboolean org_neard_adp__call_stop_poll_finish (
+ orgNeardAdp *proxy,
+ GAsyncResult *res,
+ GError **error);
+
+gboolean org_neard_adp__call_stop_poll_sync (
+ orgNeardAdp *proxy,
+ GCancellable *cancellable,
+ GError **error);
+
+void org_neard_adp__call_publish (
+ orgNeardAdp *proxy,
+ GVariant *arg_unnamed_arg0,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+gboolean org_neard_adp__call_publish_finish (
+ orgNeardAdp *proxy,
+ GAsyncResult *res,
+ GError **error);
+
+gboolean org_neard_adp__call_publish_sync (
+ orgNeardAdp *proxy,
+ GVariant *arg_unnamed_arg0,
+ GCancellable *cancellable,
+ GError **error);
+
+
+
+/* ---- */
+
+#define ORG_NEARD_ADP_TYPE__PROXY (org_neard_adp__proxy_get_type ())
+#define ORG_NEARD_ADP__PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ORG_NEARD_ADP_TYPE__PROXY, orgNeardAdpProxy))
+#define ORG_NEARD_ADP__PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), ORG_NEARD_ADP_TYPE__PROXY, orgNeardAdpProxyClass))
+#define ORG_NEARD_ADP__PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), ORG_NEARD_ADP_TYPE__PROXY, orgNeardAdpProxyClass))
+#define ORG_NEARD_ADP_IS__PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ORG_NEARD_ADP_TYPE__PROXY))
+#define ORG_NEARD_ADP_IS__PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), ORG_NEARD_ADP_TYPE__PROXY))
+
+typedef struct _orgNeardAdpProxy orgNeardAdpProxy;
+typedef struct _orgNeardAdpProxyClass orgNeardAdpProxyClass;
+typedef struct _orgNeardAdpProxyPrivate orgNeardAdpProxyPrivate;
+
+struct _orgNeardAdpProxy
+{
+ /*< private >*/
+ GDBusProxy parent_instance;
+ orgNeardAdpProxyPrivate *priv;
+};
+
+struct _orgNeardAdpProxyClass
+{
+ GDBusProxyClass parent_class;
+};
+
+GType org_neard_adp__proxy_get_type (void) G_GNUC_CONST;
+
+void org_neard_adp__proxy_new (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+orgNeardAdp *org_neard_adp__proxy_new_finish (
+ GAsyncResult *res,
+ GError **error);
+orgNeardAdp *org_neard_adp__proxy_new_sync (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error);
+
+void org_neard_adp__proxy_new_for_bus (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+orgNeardAdp *org_neard_adp__proxy_new_for_bus_finish (
+ GAsyncResult *res,
+ GError **error);
+orgNeardAdp *org_neard_adp__proxy_new_for_bus_sync (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error);
+
+
+/* ---- */
+
+#define ORG_NEARD_ADP_TYPE__SKELETON (org_neard_adp__skeleton_get_type ())
+#define ORG_NEARD_ADP__SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ORG_NEARD_ADP_TYPE__SKELETON, orgNeardAdpSkeleton))
+#define ORG_NEARD_ADP__SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), ORG_NEARD_ADP_TYPE__SKELETON, orgNeardAdpSkeletonClass))
+#define ORG_NEARD_ADP__SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), ORG_NEARD_ADP_TYPE__SKELETON, orgNeardAdpSkeletonClass))
+#define ORG_NEARD_ADP_IS__SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ORG_NEARD_ADP_TYPE__SKELETON))
+#define ORG_NEARD_ADP_IS__SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), ORG_NEARD_ADP_TYPE__SKELETON))
+
+typedef struct _orgNeardAdpSkeleton orgNeardAdpSkeleton;
+typedef struct _orgNeardAdpSkeletonClass orgNeardAdpSkeletonClass;
+typedef struct _orgNeardAdpSkeletonPrivate orgNeardAdpSkeletonPrivate;
+
+struct _orgNeardAdpSkeleton
+{
+ /*< private >*/
+ GDBusInterfaceSkeleton parent_instance;
+ orgNeardAdpSkeletonPrivate *priv;
+};
+
+struct _orgNeardAdpSkeletonClass
+{
+ GDBusInterfaceSkeletonClass parent_class;
+};
+
+GType org_neard_adp__skeleton_get_type (void) G_GNUC_CONST;
+
+orgNeardAdp *org_neard_adp__skeleton_new (void);
+
+
+G_END_DECLS
+
+#endif /* __NEARD_ADAPTER_PROXY_H__ */
--- /dev/null
+/*
+ * Generated by gdbus-codegen 2.30.0. 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 "neard_manager_proxy.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:
+ ret = (g_value_get_double (a) == g_value_get_double (b));
+ 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 org.neard.Manager
+ * ------------------------------------------------------------------------
+ */
+
+/**
+ * SECTION:orgNeardMgr
+ * @title: orgNeardMgr
+ * @short_description: Generated C code for the org.neard.Manager D-Bus interface
+ *
+ * This section contains code for working with the <link linkend="gdbus-interface-org-neard-Manager.top_of_page">org.neard.Manager</link> D-Bus interface in C.
+ */
+
+/* ---- Introspection data for org.neard.Manager ---- */
+
+static const _ExtendedGDBusArgInfo _org_neard_mgr__method_info_get_properties_OUT_ARG_unnamed_arg0 =
+{
+ {
+ -1,
+ "unnamed_arg0",
+ "a{sv}",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _org_neard_mgr__method_info_get_properties_OUT_ARG_pointers[] =
+{
+ &_org_neard_mgr__method_info_get_properties_OUT_ARG_unnamed_arg0,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _org_neard_mgr__method_info_get_properties =
+{
+ {
+ -1,
+ "GetProperties",
+ NULL,
+ (GDBusArgInfo **) &_org_neard_mgr__method_info_get_properties_OUT_ARG_pointers,
+ NULL
+ },
+ "handle-get-properties",
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _org_neard_mgr__method_info_set_property_IN_ARG_unnamed_arg0 =
+{
+ {
+ -1,
+ "unnamed_arg0",
+ "s",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _org_neard_mgr__method_info_set_property_IN_ARG_unnamed_arg1 =
+{
+ {
+ -1,
+ "unnamed_arg1",
+ "v",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _org_neard_mgr__method_info_set_property_IN_ARG_pointers[] =
+{
+ &_org_neard_mgr__method_info_set_property_IN_ARG_unnamed_arg0,
+ &_org_neard_mgr__method_info_set_property_IN_ARG_unnamed_arg1,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _org_neard_mgr__method_info_set_property =
+{
+ {
+ -1,
+ "SetProperty",
+ (GDBusArgInfo **) &_org_neard_mgr__method_info_set_property_IN_ARG_pointers,
+ NULL,
+ NULL
+ },
+ "handle-set-property",
+ FALSE
+};
+
+static const _ExtendedGDBusMethodInfo * const _org_neard_mgr__method_info_pointers[] =
+{
+ &_org_neard_mgr__method_info_get_properties,
+ &_org_neard_mgr__method_info_set_property,
+ NULL
+};
+
+static const _ExtendedGDBusArgInfo _org_neard_mgr__signal_info_property_changed_ARG_unnamed_arg0 =
+{
+ {
+ -1,
+ "unnamed_arg0",
+ "s",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _org_neard_mgr__signal_info_property_changed_ARG_unnamed_arg1 =
+{
+ {
+ -1,
+ "unnamed_arg1",
+ "v",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _org_neard_mgr__signal_info_property_changed_ARG_pointers[] =
+{
+ &_org_neard_mgr__signal_info_property_changed_ARG_unnamed_arg0,
+ &_org_neard_mgr__signal_info_property_changed_ARG_unnamed_arg1,
+ NULL
+};
+
+static const _ExtendedGDBusSignalInfo _org_neard_mgr__signal_info_property_changed =
+{
+ {
+ -1,
+ "PropertyChanged",
+ (GDBusArgInfo **) &_org_neard_mgr__signal_info_property_changed_ARG_pointers,
+ NULL
+ },
+ "property-changed"
+};
+
+static const _ExtendedGDBusArgInfo _org_neard_mgr__signal_info_adapter_added_ARG_unnamed_arg0 =
+{
+ {
+ -1,
+ "unnamed_arg0",
+ "o",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _org_neard_mgr__signal_info_adapter_added_ARG_pointers[] =
+{
+ &_org_neard_mgr__signal_info_adapter_added_ARG_unnamed_arg0,
+ NULL
+};
+
+static const _ExtendedGDBusSignalInfo _org_neard_mgr__signal_info_adapter_added =
+{
+ {
+ -1,
+ "AdapterAdded",
+ (GDBusArgInfo **) &_org_neard_mgr__signal_info_adapter_added_ARG_pointers,
+ NULL
+ },
+ "adapter-added"
+};
+
+static const _ExtendedGDBusArgInfo _org_neard_mgr__signal_info_adapter_removed_ARG_unnamed_arg0 =
+{
+ {
+ -1,
+ "unnamed_arg0",
+ "o",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _org_neard_mgr__signal_info_adapter_removed_ARG_pointers[] =
+{
+ &_org_neard_mgr__signal_info_adapter_removed_ARG_unnamed_arg0,
+ NULL
+};
+
+static const _ExtendedGDBusSignalInfo _org_neard_mgr__signal_info_adapter_removed =
+{
+ {
+ -1,
+ "AdapterRemoved",
+ (GDBusArgInfo **) &_org_neard_mgr__signal_info_adapter_removed_ARG_pointers,
+ NULL
+ },
+ "adapter-removed"
+};
+
+static const _ExtendedGDBusSignalInfo * const _org_neard_mgr__signal_info_pointers[] =
+{
+ &_org_neard_mgr__signal_info_property_changed,
+ &_org_neard_mgr__signal_info_adapter_added,
+ &_org_neard_mgr__signal_info_adapter_removed,
+ NULL
+};
+
+static const _ExtendedGDBusInterfaceInfo _org_neard_mgr__interface_info =
+{
+ {
+ -1,
+ "org.neard.Manager",
+ (GDBusMethodInfo **) &_org_neard_mgr__method_info_pointers,
+ (GDBusSignalInfo **) &_org_neard_mgr__signal_info_pointers,
+ NULL,
+ NULL
+ },
+ "",
+};
+
+
+/**
+ * org_neard_mgr__interface_info:
+ *
+ * Gets a machine-readable description of the <link linkend="gdbus-interface-org-neard-Manager.top_of_page">org.neard.Manager</link> D-Bus interface.
+ *
+ * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
+ */
+GDBusInterfaceInfo *
+org_neard_mgr__interface_info (void)
+{
+ return (GDBusInterfaceInfo *) &_org_neard_mgr__interface_info;
+}
+
+/**
+ * org_neard_mgr__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 #orgNeardMgr interface for a concrete class.
+ * The properties are overridden in the order they are defined.
+ *
+ * Returns: The last property id.
+ */
+guint
+org_neard_mgr__override_properties (GObjectClass *klass, guint property_id_begin)
+{
+ return property_id_begin - 1;
+}
+
+
+
+/**
+ * orgNeardMgr:
+ *
+ * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-neard-Manager.top_of_page">org.neard.Manager</link>.
+ */
+
+/**
+ * orgNeardMgrIface:
+ * @parent_iface: The parent interface.
+ * @handle_get_properties: Handler for the #orgNeardMgr::handle-get-properties signal.
+ * @handle_set_property: Handler for the #orgNeardMgr::handle-set-property signal.
+ * @adapter_added: Handler for the #orgNeardMgr::adapter-added signal.
+ * @adapter_removed: Handler for the #orgNeardMgr::adapter-removed signal.
+ * @property_changed: Handler for the #orgNeardMgr::property-changed signal.
+ *
+ * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-neard-Manager.top_of_page">org.neard.Manager</link>.
+ */
+
+static void
+org_neard_mgr__default_init (orgNeardMgrIface *iface)
+{
+ /* GObject signals for incoming D-Bus method calls: */
+ /**
+ * orgNeardMgr::handle-get-properties:
+ * @object: A #orgNeardMgr.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-neard-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 org_neard_mgr__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 (orgNeardMgrIface, handle_get_properties),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /**
+ * orgNeardMgr::handle-set-property:
+ * @object: A #orgNeardMgr.
+ * @invocation: A #GDBusMethodInvocation.
+ * @arg_unnamed_arg0: Argument passed by remote caller.
+ * @arg_unnamed_arg1: Argument passed by remote caller.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-neard-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 org_neard_mgr__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 (orgNeardMgrIface, 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: */
+ /**
+ * orgNeardMgr::property-changed:
+ * @object: A #orgNeardMgr.
+ * @arg_unnamed_arg0: Argument.
+ * @arg_unnamed_arg1: Argument.
+ *
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-neard-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 (orgNeardMgrIface, property_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE,
+ 2, G_TYPE_STRING, G_TYPE_VARIANT);
+
+ /**
+ * orgNeardMgr::adapter-added:
+ * @object: A #orgNeardMgr.
+ * @arg_unnamed_arg0: Argument.
+ *
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-neard-Manager.AdapterAdded">"AdapterAdded"</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 ("adapter-added",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (orgNeardMgrIface, adapter_added),
+ NULL,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE,
+ 1, G_TYPE_STRING);
+
+ /**
+ * orgNeardMgr::adapter-removed:
+ * @object: A #orgNeardMgr.
+ * @arg_unnamed_arg0: Argument.
+ *
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-neard-Manager.AdapterRemoved">"AdapterRemoved"</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 ("adapter-removed",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (orgNeardMgrIface, adapter_removed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE,
+ 1, G_TYPE_STRING);
+
+}
+
+typedef orgNeardMgrIface orgNeardMgrInterface;
+G_DEFINE_INTERFACE (orgNeardMgr, org_neard_mgr_, G_TYPE_OBJECT);
+
+/**
+ * org_neard_mgr__emit_property_changed:
+ * @object: A #orgNeardMgr.
+ * @arg_unnamed_arg0: Argument to pass with the signal.
+ * @arg_unnamed_arg1: Argument to pass with the signal.
+ *
+ * Emits the <link linkend="gdbus-signal-org-neard-Manager.PropertyChanged">"PropertyChanged"</link> D-Bus signal.
+ */
+void
+org_neard_mgr__emit_property_changed (
+ orgNeardMgr *object,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1)
+{
+ g_signal_emit_by_name (object, "property-changed", arg_unnamed_arg0, arg_unnamed_arg1);
+}
+
+/**
+ * org_neard_mgr__emit_adapter_added:
+ * @object: A #orgNeardMgr.
+ * @arg_unnamed_arg0: Argument to pass with the signal.
+ *
+ * Emits the <link linkend="gdbus-signal-org-neard-Manager.AdapterAdded">"AdapterAdded"</link> D-Bus signal.
+ */
+void
+org_neard_mgr__emit_adapter_added (
+ orgNeardMgr *object,
+ const gchar *arg_unnamed_arg0)
+{
+ g_signal_emit_by_name (object, "adapter-added", arg_unnamed_arg0);
+}
+
+/**
+ * org_neard_mgr__emit_adapter_removed:
+ * @object: A #orgNeardMgr.
+ * @arg_unnamed_arg0: Argument to pass with the signal.
+ *
+ * Emits the <link linkend="gdbus-signal-org-neard-Manager.AdapterRemoved">"AdapterRemoved"</link> D-Bus signal.
+ */
+void
+org_neard_mgr__emit_adapter_removed (
+ orgNeardMgr *object,
+ const gchar *arg_unnamed_arg0)
+{
+ g_signal_emit_by_name (object, "adapter-removed", arg_unnamed_arg0);
+}
+
+/**
+ * org_neard_mgr__call_get_properties:
+ * @proxy: A #orgNeardMgrProxy.
+ * @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-org-neard-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 org_neard_mgr__call_get_properties_finish() to get the result of the operation.
+ *
+ * See org_neard_mgr__call_get_properties_sync() for the synchronous, blocking version of this method.
+ */
+void
+org_neard_mgr__call_get_properties (
+ orgNeardMgr *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);
+}
+
+/**
+ * org_neard_mgr__call_get_properties_finish:
+ * @proxy: A #orgNeardMgrProxy.
+ * @out_unnamed_arg0: (out): Return location for return parameter or %NULL to ignore.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_neard_mgr__call_get_properties().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with org_neard_mgr__call_get_properties().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+org_neard_mgr__call_get_properties_finish (
+ orgNeardMgr *proxy,
+ GVariant **out_unnamed_arg0,
+ 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_unnamed_arg0);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * org_neard_mgr__call_get_properties_sync:
+ * @proxy: A #orgNeardMgrProxy.
+ * @out_unnamed_arg0: (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-org-neard-Manager.GetProperties">GetProperties()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See org_neard_mgr__call_get_properties() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+org_neard_mgr__call_get_properties_sync (
+ orgNeardMgr *proxy,
+ GVariant **out_unnamed_arg0,
+ 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_unnamed_arg0);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * org_neard_mgr__call_set_property:
+ * @proxy: A #orgNeardMgrProxy.
+ * @arg_unnamed_arg0: Argument to pass with the method invocation.
+ * @arg_unnamed_arg1: 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-org-neard-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 org_neard_mgr__call_set_property_finish() to get the result of the operation.
+ *
+ * See org_neard_mgr__call_set_property_sync() for the synchronous, blocking version of this method.
+ */
+void
+org_neard_mgr__call_set_property (
+ orgNeardMgr *proxy,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "SetProperty",
+ g_variant_new ("(s@v)",
+ arg_unnamed_arg0,
+ arg_unnamed_arg1),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * org_neard_mgr__call_set_property_finish:
+ * @proxy: A #orgNeardMgrProxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_neard_mgr__call_set_property().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with org_neard_mgr__call_set_property().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+org_neard_mgr__call_set_property_finish (
+ orgNeardMgr *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;
+}
+
+/**
+ * org_neard_mgr__call_set_property_sync:
+ * @proxy: A #orgNeardMgrProxy.
+ * @arg_unnamed_arg0: Argument to pass with the method invocation.
+ * @arg_unnamed_arg1: 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-org-neard-Manager.SetProperty">SetProperty()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See org_neard_mgr__call_set_property() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+org_neard_mgr__call_set_property_sync (
+ orgNeardMgr *proxy,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "SetProperty",
+ g_variant_new ("(s@v)",
+ arg_unnamed_arg0,
+ arg_unnamed_arg1),
+ 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;
+}
+
+/**
+ * org_neard_mgr__complete_get_properties:
+ * @object: A #orgNeardMgr.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @unnamed_arg0: Parameter to return.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-neard-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
+org_neard_mgr__complete_get_properties (
+ orgNeardMgr *object,
+ GDBusMethodInvocation *invocation,
+ GVariant *unnamed_arg0)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("(@a{sv})",
+ unnamed_arg0));
+}
+
+/**
+ * org_neard_mgr__complete_set_property:
+ * @object: A #orgNeardMgr.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-neard-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
+org_neard_mgr__complete_set_property (
+ orgNeardMgr *object,
+ GDBusMethodInvocation *invocation)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("()"));
+}
+
+/* ------------------------------------------------------------------------ */
+
+/**
+ * orgNeardMgrProxy:
+ *
+ * The #orgNeardMgrProxy structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * orgNeardMgrProxyClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #orgNeardMgrProxy.
+ */
+
+struct _orgNeardMgrProxyPrivate
+{
+ GData *qdata;
+};
+
+static void org_neard_mgr__proxy_iface_init (orgNeardMgrIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (orgNeardMgrProxy, org_neard_mgr__proxy, G_TYPE_DBUS_PROXY,
+ G_IMPLEMENT_INTERFACE (ORG_NEARD_MGR_TYPE_, org_neard_mgr__proxy_iface_init));
+
+static void
+org_neard_mgr__proxy_finalize (GObject *object)
+{
+ orgNeardMgrProxy *proxy = ORG_NEARD_MGR__PROXY (object);
+ g_datalist_clear (&proxy->priv->qdata);
+ G_OBJECT_CLASS (org_neard_mgr__proxy_parent_class)->finalize (object);
+}
+
+static void
+org_neard_mgr__proxy_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+}
+
+static void
+org_neard_mgr__proxy_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+}
+
+static void
+org_neard_mgr__proxy_g_signal (GDBusProxy *proxy,
+ const gchar *sender_name,
+ 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 *) &_org_neard_mgr__interface_info, signal_name);
+ if (info == NULL)
+ return;
+ num_params = g_variant_n_children (parameters);
+ paramv = g_new0 (GValue, num_params + 1);
+ g_value_init (¶mv[0], ORG_NEARD_MGR_TYPE_);
+ g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT);
+ g_value_set_variant (¶mv[n], child);
+ n++;
+ }
+ else
+ g_dbus_gvariant_to_gvalue (child, ¶mv[n++]);
+ g_variant_unref (child);
+ }
+ signal_id = g_signal_lookup (info->signal_name, ORG_NEARD_MGR_TYPE_);
+ g_signal_emitv (paramv, signal_id, 0, NULL);
+ for (n = 0; n < num_params + 1; n++)
+ g_value_unset (¶mv[n]);
+ g_free (paramv);
+}
+
+static void
+org_neard_mgr__proxy_g_properties_changed (GDBusProxy *_proxy,
+ GVariant *changed_properties,
+ const gchar *const *invalidated_properties)
+{
+ orgNeardMgrProxy *proxy = ORG_NEARD_MGR__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 *) &_org_neard_mgr__interface_info, 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 *) &_org_neard_mgr__interface_info, 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
+org_neard_mgr__proxy_init (orgNeardMgrProxy *proxy)
+{
+ proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, ORG_NEARD_MGR_TYPE__PROXY, orgNeardMgrProxyPrivate);
+ g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_neard_mgr__interface_info ());
+}
+
+static void
+org_neard_mgr__proxy_class_init (orgNeardMgrProxyClass *klass)
+{
+ GObjectClass *gobject_class;
+ GDBusProxyClass *proxy_class;
+
+ g_type_class_add_private (klass, sizeof (orgNeardMgrProxyPrivate));
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = org_neard_mgr__proxy_finalize;
+ gobject_class->get_property = org_neard_mgr__proxy_get_property;
+ gobject_class->set_property = org_neard_mgr__proxy_set_property;
+
+ proxy_class = G_DBUS_PROXY_CLASS (klass);
+ proxy_class->g_signal = org_neard_mgr__proxy_g_signal;
+ proxy_class->g_properties_changed = org_neard_mgr__proxy_g_properties_changed;
+
+}
+
+static void
+org_neard_mgr__proxy_iface_init (orgNeardMgrIface *iface)
+{
+}
+
+/**
+ * org_neard_mgr__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-org-neard-Manager.top_of_page">org.neard.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 org_neard_mgr__proxy_new_finish() to get the result of the operation.
+ *
+ * See org_neard_mgr__proxy_new_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+org_neard_mgr__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 (ORG_NEARD_MGR_TYPE__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", "org.neard.Manager", NULL);
+}
+
+/**
+ * org_neard_mgr__proxy_new_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_neard_mgr__proxy_new().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with org_neard_mgr__proxy_new().
+ *
+ * Returns: (transfer full) (type orgNeardMgrProxy): The constructed proxy object or %NULL if @error is set.
+ */
+orgNeardMgr *
+org_neard_mgr__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 ORG_NEARD_MGR_ (ret);
+ else
+ return NULL;
+}
+
+/**
+ * org_neard_mgr__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-org-neard-Manager.top_of_page">org.neard.Manager</link>. See g_dbus_proxy_new_sync() for more details.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See org_neard_mgr__proxy_new() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type orgNeardMgrProxy): The constructed proxy object or %NULL if @error is set.
+ */
+orgNeardMgr *
+org_neard_mgr__proxy_new_sync (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GInitable *ret;
+ ret = g_initable_new (ORG_NEARD_MGR_TYPE__PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.neard.Manager", NULL);
+ if (ret != NULL)
+ return ORG_NEARD_MGR_ (ret);
+ else
+ return NULL;
+}
+
+
+/**
+ * org_neard_mgr__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 org_neard_mgr__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 org_neard_mgr__proxy_new_for_bus_finish() to get the result of the operation.
+ *
+ * See org_neard_mgr__proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+org_neard_mgr__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 (ORG_NEARD_MGR_TYPE__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", "org.neard.Manager", NULL);
+}
+
+/**
+ * org_neard_mgr__proxy_new_for_bus_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_neard_mgr__proxy_new_for_bus().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with org_neard_mgr__proxy_new_for_bus().
+ *
+ * Returns: (transfer full) (type orgNeardMgrProxy): The constructed proxy object or %NULL if @error is set.
+ */
+orgNeardMgr *
+org_neard_mgr__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 ORG_NEARD_MGR_ (ret);
+ else
+ return NULL;
+}
+
+/**
+ * org_neard_mgr__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 org_neard_mgr__proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See org_neard_mgr__proxy_new_for_bus() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type orgNeardMgrProxy): The constructed proxy object or %NULL if @error is set.
+ */
+orgNeardMgr *
+org_neard_mgr__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 (ORG_NEARD_MGR_TYPE__PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.neard.Manager", NULL);
+ if (ret != NULL)
+ return ORG_NEARD_MGR_ (ret);
+ else
+ return NULL;
+}
+
+
+/* ------------------------------------------------------------------------ */
+
+/**
+ * orgNeardMgrSkeleton:
+ *
+ * The #orgNeardMgrSkeleton structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * orgNeardMgrSkeletonClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #orgNeardMgrSkeleton.
+ */
+
+struct _orgNeardMgrSkeletonPrivate
+{
+ GValueArray *properties;
+ GList *changed_properties;
+ GSource *changed_properties_idle_source;
+ GMainContext *context;
+ GMutex *lock;
+};
+
+static void
+_org_neard_mgr__skeleton_handle_method_call (
+ GDBusConnection *connection,
+ const gchar *sender,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *method_name,
+ GVariant *parameters,
+ GDBusMethodInvocation *invocation,
+ gpointer user_data)
+{
+ orgNeardMgrSkeleton *skeleton = ORG_NEARD_MGR__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 = {0};
+ 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 (¶mv[n], ORG_NEARD_MGR_TYPE_);
+ g_value_set_object (¶mv[n++], skeleton);
+ g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION);
+ g_value_set_object (¶mv[n++], invocation);
+ if (info->pass_fdlist)
+ {
+#ifdef G_OS_UNIX
+ g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST);
+ g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT);
+ g_value_set_variant (¶mv[n], child);
+ n++;
+ }
+ else
+ g_dbus_gvariant_to_gvalue (child, ¶mv[n++]);
+ g_variant_unref (child);
+ }
+ signal_id = g_signal_lookup (info->signal_name, ORG_NEARD_MGR_TYPE_);
+ 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 (¶mv[n]);
+ g_free (paramv);
+}
+
+static GVariant *
+_org_neard_mgr__skeleton_handle_get_property (
+ GDBusConnection *connection,
+ const gchar *sender,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *property_name,
+ GError **error,
+ gpointer user_data)
+{
+ orgNeardMgrSkeleton *skeleton = ORG_NEARD_MGR__SKELETON (user_data);
+ GValue value = {0};
+ GParamSpec *pspec;
+ _ExtendedGDBusPropertyInfo *info;
+ GVariant *ret;
+ ret = NULL;
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_neard_mgr__interface_info, 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
+_org_neard_mgr__skeleton_handle_set_property (
+ GDBusConnection *connection,
+ const gchar *sender,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *property_name,
+ GVariant *variant,
+ GError **error,
+ gpointer user_data)
+{
+ orgNeardMgrSkeleton *skeleton = ORG_NEARD_MGR__SKELETON (user_data);
+ GValue value = {0};
+ GParamSpec *pspec;
+ _ExtendedGDBusPropertyInfo *info;
+ gboolean ret;
+ ret = FALSE;
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_neard_mgr__interface_info, 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 _org_neard_mgr__skeleton_vtable =
+{
+ _org_neard_mgr__skeleton_handle_method_call,
+ _org_neard_mgr__skeleton_handle_get_property,
+ _org_neard_mgr__skeleton_handle_set_property
+};
+
+static GDBusInterfaceInfo *
+org_neard_mgr__skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton)
+{
+ return org_neard_mgr__interface_info ();
+}
+
+static GDBusInterfaceVTable *
+org_neard_mgr__skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton)
+{
+ return (GDBusInterfaceVTable *) &_org_neard_mgr__skeleton_vtable;
+}
+
+static GVariant *
+org_neard_mgr__skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
+{
+ orgNeardMgrSkeleton *skeleton = ORG_NEARD_MGR__SKELETON (_skeleton);
+
+ GVariantBuilder builder;
+ guint n;
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
+ if (_org_neard_mgr__interface_info.parent_struct.properties == NULL)
+ goto out;
+ for (n = 0; _org_neard_mgr__interface_info.parent_struct.properties[n] != NULL; n++)
+ {
+ GDBusPropertyInfo *info = _org_neard_mgr__interface_info.parent_struct.properties[n];
+ if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
+ {
+ GVariant *value;
+ value = _org_neard_mgr__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)), "org.neard.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
+org_neard_mgr__skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
+{
+}
+
+static void
+_org_neard_mgr__on_signal_property_changed (
+ orgNeardMgr *object,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1)
+{
+ orgNeardMgrSkeleton *skeleton = ORG_NEARD_MGR__SKELETON (object);
+ GDBusConnection *connection = g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton));
+ if (connection == NULL)
+ return;
+ g_dbus_connection_emit_signal (connection,
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.neard.Manager", "PropertyChanged",
+ g_variant_new ("(s@v)",
+ arg_unnamed_arg0,
+ arg_unnamed_arg1), NULL);
+}
+
+static void
+_org_neard_mgr__on_signal_adapter_added (
+ orgNeardMgr *object,
+ const gchar *arg_unnamed_arg0)
+{
+ orgNeardMgrSkeleton *skeleton = ORG_NEARD_MGR__SKELETON (object);
+ GDBusConnection *connection = g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton));
+ if (connection == NULL)
+ return;
+ g_dbus_connection_emit_signal (connection,
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.neard.Manager", "AdapterAdded",
+ g_variant_new ("(o)",
+ arg_unnamed_arg0), NULL);
+}
+
+static void
+_org_neard_mgr__on_signal_adapter_removed (
+ orgNeardMgr *object,
+ const gchar *arg_unnamed_arg0)
+{
+ orgNeardMgrSkeleton *skeleton = ORG_NEARD_MGR__SKELETON (object);
+ GDBusConnection *connection = g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton));
+ if (connection == NULL)
+ return;
+ g_dbus_connection_emit_signal (connection,
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.neard.Manager", "AdapterRemoved",
+ g_variant_new ("(o)",
+ arg_unnamed_arg0), NULL);
+}
+
+static void org_neard_mgr__skeleton_iface_init (orgNeardMgrIface *iface);
+G_DEFINE_TYPE_WITH_CODE (orgNeardMgrSkeleton, org_neard_mgr__skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
+ G_IMPLEMENT_INTERFACE (ORG_NEARD_MGR_TYPE_, org_neard_mgr__skeleton_iface_init));
+
+static void
+org_neard_mgr__skeleton_finalize (GObject *object)
+{
+ orgNeardMgrSkeleton *skeleton = ORG_NEARD_MGR__SKELETON (object);
+ g_list_foreach (skeleton->priv->changed_properties, (GFunc) _changed_property_free, NULL);
+ g_list_free (skeleton->priv->changed_properties);
+ if (skeleton->priv->changed_properties_idle_source != NULL)
+ g_source_destroy (skeleton->priv->changed_properties_idle_source);
+ if (skeleton->priv->context != NULL)
+ g_main_context_unref (skeleton->priv->context);
+ g_mutex_free (skeleton->priv->lock);
+ G_OBJECT_CLASS (org_neard_mgr__skeleton_parent_class)->finalize (object);
+}
+
+static void
+org_neard_mgr__skeleton_init (orgNeardMgrSkeleton *skeleton)
+{
+ skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, ORG_NEARD_MGR_TYPE__SKELETON, orgNeardMgrSkeletonPrivate);
+ skeleton->priv->lock = g_mutex_new ();
+ skeleton->priv->context = g_main_context_get_thread_default ();
+ if (skeleton->priv->context != NULL)
+ g_main_context_ref (skeleton->priv->context);
+}
+
+static void
+org_neard_mgr__skeleton_class_init (orgNeardMgrSkeletonClass *klass)
+{
+ GObjectClass *gobject_class;
+ GDBusInterfaceSkeletonClass *skeleton_class;
+
+ g_type_class_add_private (klass, sizeof (orgNeardMgrSkeletonPrivate));
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = org_neard_mgr__skeleton_finalize;
+
+ skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
+ skeleton_class->get_info = org_neard_mgr__skeleton_dbus_interface_get_info;
+ skeleton_class->get_properties = org_neard_mgr__skeleton_dbus_interface_get_properties;
+ skeleton_class->flush = org_neard_mgr__skeleton_dbus_interface_flush;
+ skeleton_class->get_vtable = org_neard_mgr__skeleton_dbus_interface_get_vtable;
+}
+
+static void
+org_neard_mgr__skeleton_iface_init (orgNeardMgrIface *iface)
+{
+ iface->property_changed = _org_neard_mgr__on_signal_property_changed;
+ iface->adapter_added = _org_neard_mgr__on_signal_adapter_added;
+ iface->adapter_removed = _org_neard_mgr__on_signal_adapter_removed;
+}
+
+/**
+ * org_neard_mgr__skeleton_new:
+ *
+ * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-neard-Manager.top_of_page">org.neard.Manager</link>.
+ *
+ * Returns: (transfer full) (type orgNeardMgrSkeleton): The skeleton object.
+ */
+orgNeardMgr *
+org_neard_mgr__skeleton_new (void)
+{
+ return ORG_NEARD_MGR_ (g_object_new (ORG_NEARD_MGR_TYPE__SKELETON, NULL));
+}
+
--- /dev/null
+/*
+ * Generated by gdbus-codegen 2.30.0. DO NOT EDIT.
+ *
+ * The license of this code is the same as for the source it was derived from.
+ */
+
+#ifndef __NEARD_MANAGER_PROXY_H__
+#define __NEARD_MANAGER_PROXY_H__
+
+#include <gio/gio.h>
+
+G_BEGIN_DECLS
+
+
+/* ------------------------------------------------------------------------ */
+/* Declarations for org.neard.Manager */
+
+#define ORG_NEARD_MGR_TYPE_ (org_neard_mgr__get_type ())
+#define ORG_NEARD_MGR_(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ORG_NEARD_MGR_TYPE_, orgNeardMgr))
+#define ORG_NEARD_MGR_IS_(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ORG_NEARD_MGR_TYPE_))
+#define ORG_NEARD_MGR__GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), ORG_NEARD_MGR_TYPE_, orgNeardMgrIface))
+
+struct _orgNeardMgr;
+typedef struct _orgNeardMgr orgNeardMgr;
+typedef struct _orgNeardMgrIface orgNeardMgrIface;
+
+struct _orgNeardMgrIface
+{
+ GTypeInterface parent_iface;
+
+
+ gboolean (*handle_get_properties) (
+ orgNeardMgr *object,
+ GDBusMethodInvocation *invocation);
+
+ gboolean (*handle_set_property) (
+ orgNeardMgr *object,
+ GDBusMethodInvocation *invocation,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1);
+
+ void (*adapter_added) (
+ orgNeardMgr *object,
+ const gchar *arg_unnamed_arg0);
+
+ void (*adapter_removed) (
+ orgNeardMgr *object,
+ const gchar *arg_unnamed_arg0);
+
+ void (*property_changed) (
+ orgNeardMgr *object,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1);
+
+};
+
+GType org_neard_mgr__get_type (void) G_GNUC_CONST;
+
+GDBusInterfaceInfo *org_neard_mgr__interface_info (void);
+guint org_neard_mgr__override_properties (GObjectClass *klass, guint property_id_begin);
+
+
+/* D-Bus method call completion functions: */
+void org_neard_mgr__complete_get_properties (
+ orgNeardMgr *object,
+ GDBusMethodInvocation *invocation,
+ GVariant *unnamed_arg0);
+
+void org_neard_mgr__complete_set_property (
+ orgNeardMgr *object,
+ GDBusMethodInvocation *invocation);
+
+
+
+/* D-Bus signal emissions functions: */
+void org_neard_mgr__emit_property_changed (
+ orgNeardMgr *object,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1);
+
+void org_neard_mgr__emit_adapter_added (
+ orgNeardMgr *object,
+ const gchar *arg_unnamed_arg0);
+
+void org_neard_mgr__emit_adapter_removed (
+ orgNeardMgr *object,
+ const gchar *arg_unnamed_arg0);
+
+
+
+/* D-Bus method calls: */
+void org_neard_mgr__call_get_properties (
+ orgNeardMgr *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+gboolean org_neard_mgr__call_get_properties_finish (
+ orgNeardMgr *proxy,
+ GVariant **out_unnamed_arg0,
+ GAsyncResult *res,
+ GError **error);
+
+gboolean org_neard_mgr__call_get_properties_sync (
+ orgNeardMgr *proxy,
+ GVariant **out_unnamed_arg0,
+ GCancellable *cancellable,
+ GError **error);
+
+void org_neard_mgr__call_set_property (
+ orgNeardMgr *proxy,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+gboolean org_neard_mgr__call_set_property_finish (
+ orgNeardMgr *proxy,
+ GAsyncResult *res,
+ GError **error);
+
+gboolean org_neard_mgr__call_set_property_sync (
+ orgNeardMgr *proxy,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1,
+ GCancellable *cancellable,
+ GError **error);
+
+
+
+/* ---- */
+
+#define ORG_NEARD_MGR_TYPE__PROXY (org_neard_mgr__proxy_get_type ())
+#define ORG_NEARD_MGR__PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ORG_NEARD_MGR_TYPE__PROXY, orgNeardMgrProxy))
+#define ORG_NEARD_MGR__PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), ORG_NEARD_MGR_TYPE__PROXY, orgNeardMgrProxyClass))
+#define ORG_NEARD_MGR__PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), ORG_NEARD_MGR_TYPE__PROXY, orgNeardMgrProxyClass))
+#define ORG_NEARD_MGR_IS__PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ORG_NEARD_MGR_TYPE__PROXY))
+#define ORG_NEARD_MGR_IS__PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), ORG_NEARD_MGR_TYPE__PROXY))
+
+typedef struct _orgNeardMgrProxy orgNeardMgrProxy;
+typedef struct _orgNeardMgrProxyClass orgNeardMgrProxyClass;
+typedef struct _orgNeardMgrProxyPrivate orgNeardMgrProxyPrivate;
+
+struct _orgNeardMgrProxy
+{
+ /*< private >*/
+ GDBusProxy parent_instance;
+ orgNeardMgrProxyPrivate *priv;
+};
+
+struct _orgNeardMgrProxyClass
+{
+ GDBusProxyClass parent_class;
+};
+
+GType org_neard_mgr__proxy_get_type (void) G_GNUC_CONST;
+
+void org_neard_mgr__proxy_new (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+orgNeardMgr *org_neard_mgr__proxy_new_finish (
+ GAsyncResult *res,
+ GError **error);
+orgNeardMgr *org_neard_mgr__proxy_new_sync (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error);
+
+void org_neard_mgr__proxy_new_for_bus (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+orgNeardMgr *org_neard_mgr__proxy_new_for_bus_finish (
+ GAsyncResult *res,
+ GError **error);
+orgNeardMgr *org_neard_mgr__proxy_new_for_bus_sync (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error);
+
+
+/* ---- */
+
+#define ORG_NEARD_MGR_TYPE__SKELETON (org_neard_mgr__skeleton_get_type ())
+#define ORG_NEARD_MGR__SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ORG_NEARD_MGR_TYPE__SKELETON, orgNeardMgrSkeleton))
+#define ORG_NEARD_MGR__SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), ORG_NEARD_MGR_TYPE__SKELETON, orgNeardMgrSkeletonClass))
+#define ORG_NEARD_MGR__SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), ORG_NEARD_MGR_TYPE__SKELETON, orgNeardMgrSkeletonClass))
+#define ORG_NEARD_MGR_IS__SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ORG_NEARD_MGR_TYPE__SKELETON))
+#define ORG_NEARD_MGR_IS__SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), ORG_NEARD_MGR_TYPE__SKELETON))
+
+typedef struct _orgNeardMgrSkeleton orgNeardMgrSkeleton;
+typedef struct _orgNeardMgrSkeletonClass orgNeardMgrSkeletonClass;
+typedef struct _orgNeardMgrSkeletonPrivate orgNeardMgrSkeletonPrivate;
+
+struct _orgNeardMgrSkeleton
+{
+ /*< private >*/
+ GDBusInterfaceSkeleton parent_instance;
+ orgNeardMgrSkeletonPrivate *priv;
+};
+
+struct _orgNeardMgrSkeletonClass
+{
+ GDBusInterfaceSkeletonClass parent_class;
+};
+
+GType org_neard_mgr__skeleton_get_type (void) G_GNUC_CONST;
+
+orgNeardMgr *org_neard_mgr__skeleton_new (void);
+
+
+G_END_DECLS
+
+#endif /* __NEARD_MANAGER_PROXY_H__ */
--- /dev/null
+/*
+ * Generated by gdbus-codegen 2.30.0. 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 "neard_record_proxy.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:
+ ret = (g_value_get_double (a) == g_value_get_double (b));
+ 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 org.neard.Record
+ * ------------------------------------------------------------------------
+ */
+
+/**
+ * SECTION:orgNeardRcd
+ * @title: orgNeardRcd
+ * @short_description: Generated C code for the org.neard.Record D-Bus interface
+ *
+ * This section contains code for working with the <link linkend="gdbus-interface-org-neard-Record.top_of_page">org.neard.Record</link> D-Bus interface in C.
+ */
+
+/* ---- Introspection data for org.neard.Record ---- */
+
+static const _ExtendedGDBusArgInfo _org_neard_rcd__method_info_get_properties_OUT_ARG_unnamed_arg0 =
+{
+ {
+ -1,
+ "unnamed_arg0",
+ "a{sv}",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _org_neard_rcd__method_info_get_properties_OUT_ARG_pointers[] =
+{
+ &_org_neard_rcd__method_info_get_properties_OUT_ARG_unnamed_arg0,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _org_neard_rcd__method_info_get_properties =
+{
+ {
+ -1,
+ "GetProperties",
+ NULL,
+ (GDBusArgInfo **) &_org_neard_rcd__method_info_get_properties_OUT_ARG_pointers,
+ NULL
+ },
+ "handle-get-properties",
+ FALSE
+};
+
+static const _ExtendedGDBusMethodInfo * const _org_neard_rcd__method_info_pointers[] =
+{
+ &_org_neard_rcd__method_info_get_properties,
+ NULL
+};
+
+static const _ExtendedGDBusInterfaceInfo _org_neard_rcd__interface_info =
+{
+ {
+ -1,
+ "org.neard.Record",
+ (GDBusMethodInfo **) &_org_neard_rcd__method_info_pointers,
+ NULL,
+ NULL,
+ NULL
+ },
+ "",
+};
+
+
+/**
+ * org_neard_rcd__interface_info:
+ *
+ * Gets a machine-readable description of the <link linkend="gdbus-interface-org-neard-Record.top_of_page">org.neard.Record</link> D-Bus interface.
+ *
+ * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
+ */
+GDBusInterfaceInfo *
+org_neard_rcd__interface_info (void)
+{
+ return (GDBusInterfaceInfo *) &_org_neard_rcd__interface_info;
+}
+
+/**
+ * org_neard_rcd__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 #orgNeardRcd interface for a concrete class.
+ * The properties are overridden in the order they are defined.
+ *
+ * Returns: The last property id.
+ */
+guint
+org_neard_rcd__override_properties (GObjectClass *klass, guint property_id_begin)
+{
+ return property_id_begin - 1;
+}
+
+
+
+/**
+ * orgNeardRcd:
+ *
+ * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-neard-Record.top_of_page">org.neard.Record</link>.
+ */
+
+/**
+ * orgNeardRcdIface:
+ * @parent_iface: The parent interface.
+ * @handle_get_properties: Handler for the #orgNeardRcd::handle-get-properties signal.
+ *
+ * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-neard-Record.top_of_page">org.neard.Record</link>.
+ */
+
+static void
+org_neard_rcd__default_init (orgNeardRcdIface *iface)
+{
+ /* GObject signals for incoming D-Bus method calls: */
+ /**
+ * orgNeardRcd::handle-get-properties:
+ * @object: A #orgNeardRcd.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-neard-Record.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 org_neard_rcd__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 (orgNeardRcdIface, handle_get_properties),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+}
+
+typedef orgNeardRcdIface orgNeardRcdInterface;
+G_DEFINE_INTERFACE (orgNeardRcd, org_neard_rcd_, G_TYPE_OBJECT);
+
+/**
+ * org_neard_rcd__call_get_properties:
+ * @proxy: A #orgNeardRcdProxy.
+ * @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-org-neard-Record.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 org_neard_rcd__call_get_properties_finish() to get the result of the operation.
+ *
+ * See org_neard_rcd__call_get_properties_sync() for the synchronous, blocking version of this method.
+ */
+void
+org_neard_rcd__call_get_properties (
+ orgNeardRcd *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);
+}
+
+/**
+ * org_neard_rcd__call_get_properties_finish:
+ * @proxy: A #orgNeardRcdProxy.
+ * @out_unnamed_arg0: (out): Return location for return parameter or %NULL to ignore.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_neard_rcd__call_get_properties().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with org_neard_rcd__call_get_properties().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+org_neard_rcd__call_get_properties_finish (
+ orgNeardRcd *proxy,
+ GVariant **out_unnamed_arg0,
+ 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_unnamed_arg0);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * org_neard_rcd__call_get_properties_sync:
+ * @proxy: A #orgNeardRcdProxy.
+ * @out_unnamed_arg0: (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-org-neard-Record.GetProperties">GetProperties()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See org_neard_rcd__call_get_properties() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+org_neard_rcd__call_get_properties_sync (
+ orgNeardRcd *proxy,
+ GVariant **out_unnamed_arg0,
+ 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_unnamed_arg0);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * org_neard_rcd__complete_get_properties:
+ * @object: A #orgNeardRcd.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @unnamed_arg0: Parameter to return.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-neard-Record.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
+org_neard_rcd__complete_get_properties (
+ orgNeardRcd *object,
+ GDBusMethodInvocation *invocation,
+ GVariant *unnamed_arg0)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("(@a{sv})",
+ unnamed_arg0));
+}
+
+/* ------------------------------------------------------------------------ */
+
+/**
+ * orgNeardRcdProxy:
+ *
+ * The #orgNeardRcdProxy structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * orgNeardRcdProxyClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #orgNeardRcdProxy.
+ */
+
+struct _orgNeardRcdProxyPrivate
+{
+ GData *qdata;
+};
+
+static void org_neard_rcd__proxy_iface_init (orgNeardRcdIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (orgNeardRcdProxy, org_neard_rcd__proxy, G_TYPE_DBUS_PROXY,
+ G_IMPLEMENT_INTERFACE (ORG_NEARD_RCD_TYPE_, org_neard_rcd__proxy_iface_init));
+
+static void
+org_neard_rcd__proxy_finalize (GObject *object)
+{
+ orgNeardRcdProxy *proxy = ORG_NEARD_RCD__PROXY (object);
+ g_datalist_clear (&proxy->priv->qdata);
+ G_OBJECT_CLASS (org_neard_rcd__proxy_parent_class)->finalize (object);
+}
+
+static void
+org_neard_rcd__proxy_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+}
+
+static void
+org_neard_rcd__proxy_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+}
+
+static void
+org_neard_rcd__proxy_g_signal (GDBusProxy *proxy,
+ const gchar *sender_name,
+ 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 *) &_org_neard_rcd__interface_info, signal_name);
+ if (info == NULL)
+ return;
+ num_params = g_variant_n_children (parameters);
+ paramv = g_new0 (GValue, num_params + 1);
+ g_value_init (¶mv[0], ORG_NEARD_RCD_TYPE_);
+ g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT);
+ g_value_set_variant (¶mv[n], child);
+ n++;
+ }
+ else
+ g_dbus_gvariant_to_gvalue (child, ¶mv[n++]);
+ g_variant_unref (child);
+ }
+ signal_id = g_signal_lookup (info->signal_name, ORG_NEARD_RCD_TYPE_);
+ g_signal_emitv (paramv, signal_id, 0, NULL);
+ for (n = 0; n < num_params + 1; n++)
+ g_value_unset (¶mv[n]);
+ g_free (paramv);
+}
+
+static void
+org_neard_rcd__proxy_g_properties_changed (GDBusProxy *_proxy,
+ GVariant *changed_properties,
+ const gchar *const *invalidated_properties)
+{
+ orgNeardRcdProxy *proxy = ORG_NEARD_RCD__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 *) &_org_neard_rcd__interface_info, 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 *) &_org_neard_rcd__interface_info, 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
+org_neard_rcd__proxy_init (orgNeardRcdProxy *proxy)
+{
+ proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, ORG_NEARD_RCD_TYPE__PROXY, orgNeardRcdProxyPrivate);
+ g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_neard_rcd__interface_info ());
+}
+
+static void
+org_neard_rcd__proxy_class_init (orgNeardRcdProxyClass *klass)
+{
+ GObjectClass *gobject_class;
+ GDBusProxyClass *proxy_class;
+
+ g_type_class_add_private (klass, sizeof (orgNeardRcdProxyPrivate));
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = org_neard_rcd__proxy_finalize;
+ gobject_class->get_property = org_neard_rcd__proxy_get_property;
+ gobject_class->set_property = org_neard_rcd__proxy_set_property;
+
+ proxy_class = G_DBUS_PROXY_CLASS (klass);
+ proxy_class->g_signal = org_neard_rcd__proxy_g_signal;
+ proxy_class->g_properties_changed = org_neard_rcd__proxy_g_properties_changed;
+
+}
+
+static void
+org_neard_rcd__proxy_iface_init (orgNeardRcdIface *iface)
+{
+}
+
+/**
+ * org_neard_rcd__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-org-neard-Record.top_of_page">org.neard.Record</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 org_neard_rcd__proxy_new_finish() to get the result of the operation.
+ *
+ * See org_neard_rcd__proxy_new_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+org_neard_rcd__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 (ORG_NEARD_RCD_TYPE__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", "org.neard.Record", NULL);
+}
+
+/**
+ * org_neard_rcd__proxy_new_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_neard_rcd__proxy_new().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with org_neard_rcd__proxy_new().
+ *
+ * Returns: (transfer full) (type orgNeardRcdProxy): The constructed proxy object or %NULL if @error is set.
+ */
+orgNeardRcd *
+org_neard_rcd__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 ORG_NEARD_RCD_ (ret);
+ else
+ return NULL;
+}
+
+/**
+ * org_neard_rcd__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-org-neard-Record.top_of_page">org.neard.Record</link>. See g_dbus_proxy_new_sync() for more details.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See org_neard_rcd__proxy_new() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type orgNeardRcdProxy): The constructed proxy object or %NULL if @error is set.
+ */
+orgNeardRcd *
+org_neard_rcd__proxy_new_sync (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GInitable *ret;
+ ret = g_initable_new (ORG_NEARD_RCD_TYPE__PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.neard.Record", NULL);
+ if (ret != NULL)
+ return ORG_NEARD_RCD_ (ret);
+ else
+ return NULL;
+}
+
+
+/**
+ * org_neard_rcd__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 org_neard_rcd__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 org_neard_rcd__proxy_new_for_bus_finish() to get the result of the operation.
+ *
+ * See org_neard_rcd__proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+org_neard_rcd__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 (ORG_NEARD_RCD_TYPE__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", "org.neard.Record", NULL);
+}
+
+/**
+ * org_neard_rcd__proxy_new_for_bus_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_neard_rcd__proxy_new_for_bus().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with org_neard_rcd__proxy_new_for_bus().
+ *
+ * Returns: (transfer full) (type orgNeardRcdProxy): The constructed proxy object or %NULL if @error is set.
+ */
+orgNeardRcd *
+org_neard_rcd__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 ORG_NEARD_RCD_ (ret);
+ else
+ return NULL;
+}
+
+/**
+ * org_neard_rcd__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 org_neard_rcd__proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See org_neard_rcd__proxy_new_for_bus() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type orgNeardRcdProxy): The constructed proxy object or %NULL if @error is set.
+ */
+orgNeardRcd *
+org_neard_rcd__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 (ORG_NEARD_RCD_TYPE__PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.neard.Record", NULL);
+ if (ret != NULL)
+ return ORG_NEARD_RCD_ (ret);
+ else
+ return NULL;
+}
+
+
+/* ------------------------------------------------------------------------ */
+
+/**
+ * orgNeardRcdSkeleton:
+ *
+ * The #orgNeardRcdSkeleton structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * orgNeardRcdSkeletonClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #orgNeardRcdSkeleton.
+ */
+
+struct _orgNeardRcdSkeletonPrivate
+{
+ GValueArray *properties;
+ GList *changed_properties;
+ GSource *changed_properties_idle_source;
+ GMainContext *context;
+ GMutex *lock;
+};
+
+static void
+_org_neard_rcd__skeleton_handle_method_call (
+ GDBusConnection *connection,
+ const gchar *sender,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *method_name,
+ GVariant *parameters,
+ GDBusMethodInvocation *invocation,
+ gpointer user_data)
+{
+ orgNeardRcdSkeleton *skeleton = ORG_NEARD_RCD__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 = {0};
+ 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 (¶mv[n], ORG_NEARD_RCD_TYPE_);
+ g_value_set_object (¶mv[n++], skeleton);
+ g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION);
+ g_value_set_object (¶mv[n++], invocation);
+ if (info->pass_fdlist)
+ {
+#ifdef G_OS_UNIX
+ g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST);
+ g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT);
+ g_value_set_variant (¶mv[n], child);
+ n++;
+ }
+ else
+ g_dbus_gvariant_to_gvalue (child, ¶mv[n++]);
+ g_variant_unref (child);
+ }
+ signal_id = g_signal_lookup (info->signal_name, ORG_NEARD_RCD_TYPE_);
+ 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 (¶mv[n]);
+ g_free (paramv);
+}
+
+static GVariant *
+_org_neard_rcd__skeleton_handle_get_property (
+ GDBusConnection *connection,
+ const gchar *sender,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *property_name,
+ GError **error,
+ gpointer user_data)
+{
+ orgNeardRcdSkeleton *skeleton = ORG_NEARD_RCD__SKELETON (user_data);
+ GValue value = {0};
+ GParamSpec *pspec;
+ _ExtendedGDBusPropertyInfo *info;
+ GVariant *ret;
+ ret = NULL;
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_neard_rcd__interface_info, 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
+_org_neard_rcd__skeleton_handle_set_property (
+ GDBusConnection *connection,
+ const gchar *sender,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *property_name,
+ GVariant *variant,
+ GError **error,
+ gpointer user_data)
+{
+ orgNeardRcdSkeleton *skeleton = ORG_NEARD_RCD__SKELETON (user_data);
+ GValue value = {0};
+ GParamSpec *pspec;
+ _ExtendedGDBusPropertyInfo *info;
+ gboolean ret;
+ ret = FALSE;
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_neard_rcd__interface_info, 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 _org_neard_rcd__skeleton_vtable =
+{
+ _org_neard_rcd__skeleton_handle_method_call,
+ _org_neard_rcd__skeleton_handle_get_property,
+ _org_neard_rcd__skeleton_handle_set_property
+};
+
+static GDBusInterfaceInfo *
+org_neard_rcd__skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton)
+{
+ return org_neard_rcd__interface_info ();
+}
+
+static GDBusInterfaceVTable *
+org_neard_rcd__skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton)
+{
+ return (GDBusInterfaceVTable *) &_org_neard_rcd__skeleton_vtable;
+}
+
+static GVariant *
+org_neard_rcd__skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
+{
+ orgNeardRcdSkeleton *skeleton = ORG_NEARD_RCD__SKELETON (_skeleton);
+
+ GVariantBuilder builder;
+ guint n;
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
+ if (_org_neard_rcd__interface_info.parent_struct.properties == NULL)
+ goto out;
+ for (n = 0; _org_neard_rcd__interface_info.parent_struct.properties[n] != NULL; n++)
+ {
+ GDBusPropertyInfo *info = _org_neard_rcd__interface_info.parent_struct.properties[n];
+ if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
+ {
+ GVariant *value;
+ value = _org_neard_rcd__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)), "org.neard.Record", 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
+org_neard_rcd__skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
+{
+}
+
+static void org_neard_rcd__skeleton_iface_init (orgNeardRcdIface *iface);
+G_DEFINE_TYPE_WITH_CODE (orgNeardRcdSkeleton, org_neard_rcd__skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
+ G_IMPLEMENT_INTERFACE (ORG_NEARD_RCD_TYPE_, org_neard_rcd__skeleton_iface_init));
+
+static void
+org_neard_rcd__skeleton_finalize (GObject *object)
+{
+ orgNeardRcdSkeleton *skeleton = ORG_NEARD_RCD__SKELETON (object);
+ g_list_foreach (skeleton->priv->changed_properties, (GFunc) _changed_property_free, NULL);
+ g_list_free (skeleton->priv->changed_properties);
+ if (skeleton->priv->changed_properties_idle_source != NULL)
+ g_source_destroy (skeleton->priv->changed_properties_idle_source);
+ if (skeleton->priv->context != NULL)
+ g_main_context_unref (skeleton->priv->context);
+ g_mutex_free (skeleton->priv->lock);
+ G_OBJECT_CLASS (org_neard_rcd__skeleton_parent_class)->finalize (object);
+}
+
+static void
+org_neard_rcd__skeleton_init (orgNeardRcdSkeleton *skeleton)
+{
+ skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, ORG_NEARD_RCD_TYPE__SKELETON, orgNeardRcdSkeletonPrivate);
+ skeleton->priv->lock = g_mutex_new ();
+ skeleton->priv->context = g_main_context_get_thread_default ();
+ if (skeleton->priv->context != NULL)
+ g_main_context_ref (skeleton->priv->context);
+}
+
+static void
+org_neard_rcd__skeleton_class_init (orgNeardRcdSkeletonClass *klass)
+{
+ GObjectClass *gobject_class;
+ GDBusInterfaceSkeletonClass *skeleton_class;
+
+ g_type_class_add_private (klass, sizeof (orgNeardRcdSkeletonPrivate));
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = org_neard_rcd__skeleton_finalize;
+
+ skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
+ skeleton_class->get_info = org_neard_rcd__skeleton_dbus_interface_get_info;
+ skeleton_class->get_properties = org_neard_rcd__skeleton_dbus_interface_get_properties;
+ skeleton_class->flush = org_neard_rcd__skeleton_dbus_interface_flush;
+ skeleton_class->get_vtable = org_neard_rcd__skeleton_dbus_interface_get_vtable;
+}
+
+static void
+org_neard_rcd__skeleton_iface_init (orgNeardRcdIface *iface)
+{
+}
+
+/**
+ * org_neard_rcd__skeleton_new:
+ *
+ * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-neard-Record.top_of_page">org.neard.Record</link>.
+ *
+ * Returns: (transfer full) (type orgNeardRcdSkeleton): The skeleton object.
+ */
+orgNeardRcd *
+org_neard_rcd__skeleton_new (void)
+{
+ return ORG_NEARD_RCD_ (g_object_new (ORG_NEARD_RCD_TYPE__SKELETON, NULL));
+}
+
--- /dev/null
+/*
+ * Generated by gdbus-codegen 2.30.0. DO NOT EDIT.
+ *
+ * The license of this code is the same as for the source it was derived from.
+ */
+
+#ifndef __NEARD_RECORD_PROXY_H__
+#define __NEARD_RECORD_PROXY_H__
+
+#include <gio/gio.h>
+
+G_BEGIN_DECLS
+
+
+/* ------------------------------------------------------------------------ */
+/* Declarations for org.neard.Record */
+
+#define ORG_NEARD_RCD_TYPE_ (org_neard_rcd__get_type ())
+#define ORG_NEARD_RCD_(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ORG_NEARD_RCD_TYPE_, orgNeardRcd))
+#define ORG_NEARD_RCD_IS_(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ORG_NEARD_RCD_TYPE_))
+#define ORG_NEARD_RCD__GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), ORG_NEARD_RCD_TYPE_, orgNeardRcdIface))
+
+struct _orgNeardRcd;
+typedef struct _orgNeardRcd orgNeardRcd;
+typedef struct _orgNeardRcdIface orgNeardRcdIface;
+
+struct _orgNeardRcdIface
+{
+ GTypeInterface parent_iface;
+
+ gboolean (*handle_get_properties) (
+ orgNeardRcd *object,
+ GDBusMethodInvocation *invocation);
+
+};
+
+GType org_neard_rcd__get_type (void) G_GNUC_CONST;
+
+GDBusInterfaceInfo *org_neard_rcd__interface_info (void);
+guint org_neard_rcd__override_properties (GObjectClass *klass, guint property_id_begin);
+
+
+/* D-Bus method call completion functions: */
+void org_neard_rcd__complete_get_properties (
+ orgNeardRcd *object,
+ GDBusMethodInvocation *invocation,
+ GVariant *unnamed_arg0);
+
+
+
+/* D-Bus method calls: */
+void org_neard_rcd__call_get_properties (
+ orgNeardRcd *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+gboolean org_neard_rcd__call_get_properties_finish (
+ orgNeardRcd *proxy,
+ GVariant **out_unnamed_arg0,
+ GAsyncResult *res,
+ GError **error);
+
+gboolean org_neard_rcd__call_get_properties_sync (
+ orgNeardRcd *proxy,
+ GVariant **out_unnamed_arg0,
+ GCancellable *cancellable,
+ GError **error);
+
+
+
+/* ---- */
+
+#define ORG_NEARD_RCD_TYPE__PROXY (org_neard_rcd__proxy_get_type ())
+#define ORG_NEARD_RCD__PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ORG_NEARD_RCD_TYPE__PROXY, orgNeardRcdProxy))
+#define ORG_NEARD_RCD__PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), ORG_NEARD_RCD_TYPE__PROXY, orgNeardRcdProxyClass))
+#define ORG_NEARD_RCD__PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), ORG_NEARD_RCD_TYPE__PROXY, orgNeardRcdProxyClass))
+#define ORG_NEARD_RCD_IS__PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ORG_NEARD_RCD_TYPE__PROXY))
+#define ORG_NEARD_RCD_IS__PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), ORG_NEARD_RCD_TYPE__PROXY))
+
+typedef struct _orgNeardRcdProxy orgNeardRcdProxy;
+typedef struct _orgNeardRcdProxyClass orgNeardRcdProxyClass;
+typedef struct _orgNeardRcdProxyPrivate orgNeardRcdProxyPrivate;
+
+struct _orgNeardRcdProxy
+{
+ /*< private >*/
+ GDBusProxy parent_instance;
+ orgNeardRcdProxyPrivate *priv;
+};
+
+struct _orgNeardRcdProxyClass
+{
+ GDBusProxyClass parent_class;
+};
+
+GType org_neard_rcd__proxy_get_type (void) G_GNUC_CONST;
+
+void org_neard_rcd__proxy_new (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+orgNeardRcd *org_neard_rcd__proxy_new_finish (
+ GAsyncResult *res,
+ GError **error);
+orgNeardRcd *org_neard_rcd__proxy_new_sync (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error);
+
+void org_neard_rcd__proxy_new_for_bus (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+orgNeardRcd *org_neard_rcd__proxy_new_for_bus_finish (
+ GAsyncResult *res,
+ GError **error);
+orgNeardRcd *org_neard_rcd__proxy_new_for_bus_sync (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error);
+
+
+/* ---- */
+
+#define ORG_NEARD_RCD_TYPE__SKELETON (org_neard_rcd__skeleton_get_type ())
+#define ORG_NEARD_RCD__SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ORG_NEARD_RCD_TYPE__SKELETON, orgNeardRcdSkeleton))
+#define ORG_NEARD_RCD__SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), ORG_NEARD_RCD_TYPE__SKELETON, orgNeardRcdSkeletonClass))
+#define ORG_NEARD_RCD__SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), ORG_NEARD_RCD_TYPE__SKELETON, orgNeardRcdSkeletonClass))
+#define ORG_NEARD_RCD_IS__SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ORG_NEARD_RCD_TYPE__SKELETON))
+#define ORG_NEARD_RCD_IS__SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), ORG_NEARD_RCD_TYPE__SKELETON))
+
+typedef struct _orgNeardRcdSkeleton orgNeardRcdSkeleton;
+typedef struct _orgNeardRcdSkeletonClass orgNeardRcdSkeletonClass;
+typedef struct _orgNeardRcdSkeletonPrivate orgNeardRcdSkeletonPrivate;
+
+struct _orgNeardRcdSkeleton
+{
+ /*< private >*/
+ GDBusInterfaceSkeleton parent_instance;
+ orgNeardRcdSkeletonPrivate *priv;
+};
+
+struct _orgNeardRcdSkeletonClass
+{
+ GDBusInterfaceSkeletonClass parent_class;
+};
+
+GType org_neard_rcd__skeleton_get_type (void) G_GNUC_CONST;
+
+orgNeardRcd *org_neard_rcd__skeleton_new (void);
+
+
+G_END_DECLS
+
+#endif /* __NEARD_RECORD_PROXY_H__ */
--- /dev/null
+/*
+ * Generated by gdbus-codegen 2.30.0. 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 "neard_target_proxy.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:
+ ret = (g_value_get_double (a) == g_value_get_double (b));
+ 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 org.neard.Target
+ * ------------------------------------------------------------------------
+ */
+
+/**
+ * SECTION:orgNeardTgt
+ * @title: orgNeardTgt
+ * @short_description: Generated C code for the org.neard.Target D-Bus interface
+ *
+ * This section contains code for working with the <link linkend="gdbus-interface-org-neard-Target.top_of_page">org.neard.Target</link> D-Bus interface in C.
+ */
+
+/* ---- Introspection data for org.neard.Target ---- */
+
+static const _ExtendedGDBusArgInfo _org_neard_tgt__method_info_get_properties_OUT_ARG_unnamed_arg0 =
+{
+ {
+ -1,
+ "unnamed_arg0",
+ "a{sv}",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _org_neard_tgt__method_info_get_properties_OUT_ARG_pointers[] =
+{
+ &_org_neard_tgt__method_info_get_properties_OUT_ARG_unnamed_arg0,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _org_neard_tgt__method_info_get_properties =
+{
+ {
+ -1,
+ "GetProperties",
+ NULL,
+ (GDBusArgInfo **) &_org_neard_tgt__method_info_get_properties_OUT_ARG_pointers,
+ NULL
+ },
+ "handle-get-properties",
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _org_neard_tgt__method_info_set_property_IN_ARG_unnamed_arg0 =
+{
+ {
+ -1,
+ "unnamed_arg0",
+ "s",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _org_neard_tgt__method_info_set_property_IN_ARG_unnamed_arg1 =
+{
+ {
+ -1,
+ "unnamed_arg1",
+ "v",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _org_neard_tgt__method_info_set_property_IN_ARG_pointers[] =
+{
+ &_org_neard_tgt__method_info_set_property_IN_ARG_unnamed_arg0,
+ &_org_neard_tgt__method_info_set_property_IN_ARG_unnamed_arg1,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _org_neard_tgt__method_info_set_property =
+{
+ {
+ -1,
+ "SetProperty",
+ (GDBusArgInfo **) &_org_neard_tgt__method_info_set_property_IN_ARG_pointers,
+ NULL,
+ NULL
+ },
+ "handle-set-property",
+ FALSE
+};
+
+static const _ExtendedGDBusMethodInfo * const _org_neard_tgt__method_info_pointers[] =
+{
+ &_org_neard_tgt__method_info_get_properties,
+ &_org_neard_tgt__method_info_set_property,
+ NULL
+};
+
+static const _ExtendedGDBusArgInfo _org_neard_tgt__signal_info_property_changed_ARG_unnamed_arg0 =
+{
+ {
+ -1,
+ "unnamed_arg0",
+ "s",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _org_neard_tgt__signal_info_property_changed_ARG_unnamed_arg1 =
+{
+ {
+ -1,
+ "unnamed_arg1",
+ "v",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _org_neard_tgt__signal_info_property_changed_ARG_pointers[] =
+{
+ &_org_neard_tgt__signal_info_property_changed_ARG_unnamed_arg0,
+ &_org_neard_tgt__signal_info_property_changed_ARG_unnamed_arg1,
+ NULL
+};
+
+static const _ExtendedGDBusSignalInfo _org_neard_tgt__signal_info_property_changed =
+{
+ {
+ -1,
+ "PropertyChanged",
+ (GDBusArgInfo **) &_org_neard_tgt__signal_info_property_changed_ARG_pointers,
+ NULL
+ },
+ "property-changed"
+};
+
+static const _ExtendedGDBusSignalInfo * const _org_neard_tgt__signal_info_pointers[] =
+{
+ &_org_neard_tgt__signal_info_property_changed,
+ NULL
+};
+
+static const _ExtendedGDBusInterfaceInfo _org_neard_tgt__interface_info =
+{
+ {
+ -1,
+ "org.neard.Target",
+ (GDBusMethodInfo **) &_org_neard_tgt__method_info_pointers,
+ (GDBusSignalInfo **) &_org_neard_tgt__signal_info_pointers,
+ NULL,
+ NULL
+ },
+ "",
+};
+
+
+/**
+ * org_neard_tgt__interface_info:
+ *
+ * Gets a machine-readable description of the <link linkend="gdbus-interface-org-neard-Target.top_of_page">org.neard.Target</link> D-Bus interface.
+ *
+ * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
+ */
+GDBusInterfaceInfo *
+org_neard_tgt__interface_info (void)
+{
+ return (GDBusInterfaceInfo *) &_org_neard_tgt__interface_info;
+}
+
+/**
+ * org_neard_tgt__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 #orgNeardTgt interface for a concrete class.
+ * The properties are overridden in the order they are defined.
+ *
+ * Returns: The last property id.
+ */
+guint
+org_neard_tgt__override_properties (GObjectClass *klass, guint property_id_begin)
+{
+ return property_id_begin - 1;
+}
+
+
+
+/**
+ * orgNeardTgt:
+ *
+ * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-neard-Target.top_of_page">org.neard.Target</link>.
+ */
+
+/**
+ * orgNeardTgtIface:
+ * @parent_iface: The parent interface.
+ * @handle_get_properties: Handler for the #orgNeardTgt::handle-get-properties signal.
+ * @handle_set_property: Handler for the #orgNeardTgt::handle-set-property signal.
+ * @property_changed: Handler for the #orgNeardTgt::property-changed signal.
+ *
+ * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-neard-Target.top_of_page">org.neard.Target</link>.
+ */
+
+static void
+org_neard_tgt__default_init (orgNeardTgtIface *iface)
+{
+ /* GObject signals for incoming D-Bus method calls: */
+ /**
+ * orgNeardTgt::handle-get-properties:
+ * @object: A #orgNeardTgt.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-neard-Target.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 org_neard_tgt__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 (orgNeardTgtIface, handle_get_properties),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /**
+ * orgNeardTgt::handle-set-property:
+ * @object: A #orgNeardTgt.
+ * @invocation: A #GDBusMethodInvocation.
+ * @arg_unnamed_arg0: Argument passed by remote caller.
+ * @arg_unnamed_arg1: Argument passed by remote caller.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-neard-Target.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 org_neard_tgt__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 (orgNeardTgtIface, 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: */
+ /**
+ * orgNeardTgt::property-changed:
+ * @object: A #orgNeardTgt.
+ * @arg_unnamed_arg0: Argument.
+ * @arg_unnamed_arg1: Argument.
+ *
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-neard-Target.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 (orgNeardTgtIface, property_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE,
+ 2, G_TYPE_STRING, G_TYPE_VARIANT);
+
+}
+
+typedef orgNeardTgtIface orgNeardTgtInterface;
+G_DEFINE_INTERFACE (orgNeardTgt, org_neard_tgt_, G_TYPE_OBJECT);
+
+/**
+ * org_neard_tgt__emit_property_changed:
+ * @object: A #orgNeardTgt.
+ * @arg_unnamed_arg0: Argument to pass with the signal.
+ * @arg_unnamed_arg1: Argument to pass with the signal.
+ *
+ * Emits the <link linkend="gdbus-signal-org-neard-Target.PropertyChanged">"PropertyChanged"</link> D-Bus signal.
+ */
+void
+org_neard_tgt__emit_property_changed (
+ orgNeardTgt *object,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1)
+{
+ g_signal_emit_by_name (object, "property-changed", arg_unnamed_arg0, arg_unnamed_arg1);
+}
+
+/**
+ * org_neard_tgt__call_get_properties:
+ * @proxy: A #orgNeardTgtProxy.
+ * @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-org-neard-Target.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 org_neard_tgt__call_get_properties_finish() to get the result of the operation.
+ *
+ * See org_neard_tgt__call_get_properties_sync() for the synchronous, blocking version of this method.
+ */
+void
+org_neard_tgt__call_get_properties (
+ orgNeardTgt *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);
+}
+
+/**
+ * org_neard_tgt__call_get_properties_finish:
+ * @proxy: A #orgNeardTgtProxy.
+ * @out_unnamed_arg0: (out): Return location for return parameter or %NULL to ignore.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_neard_tgt__call_get_properties().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with org_neard_tgt__call_get_properties().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+org_neard_tgt__call_get_properties_finish (
+ orgNeardTgt *proxy,
+ GVariant **out_unnamed_arg0,
+ 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_unnamed_arg0);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * org_neard_tgt__call_get_properties_sync:
+ * @proxy: A #orgNeardTgtProxy.
+ * @out_unnamed_arg0: (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-org-neard-Target.GetProperties">GetProperties()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See org_neard_tgt__call_get_properties() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+org_neard_tgt__call_get_properties_sync (
+ orgNeardTgt *proxy,
+ GVariant **out_unnamed_arg0,
+ 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_unnamed_arg0);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * org_neard_tgt__call_set_property:
+ * @proxy: A #orgNeardTgtProxy.
+ * @arg_unnamed_arg0: Argument to pass with the method invocation.
+ * @arg_unnamed_arg1: 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-org-neard-Target.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 org_neard_tgt__call_set_property_finish() to get the result of the operation.
+ *
+ * See org_neard_tgt__call_set_property_sync() for the synchronous, blocking version of this method.
+ */
+void
+org_neard_tgt__call_set_property (
+ orgNeardTgt *proxy,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "SetProperty",
+ g_variant_new ("(s@v)",
+ arg_unnamed_arg0,
+ arg_unnamed_arg1),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * org_neard_tgt__call_set_property_finish:
+ * @proxy: A #orgNeardTgtProxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_neard_tgt__call_set_property().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with org_neard_tgt__call_set_property().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+org_neard_tgt__call_set_property_finish (
+ orgNeardTgt *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;
+}
+
+/**
+ * org_neard_tgt__call_set_property_sync:
+ * @proxy: A #orgNeardTgtProxy.
+ * @arg_unnamed_arg0: Argument to pass with the method invocation.
+ * @arg_unnamed_arg1: 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-org-neard-Target.SetProperty">SetProperty()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See org_neard_tgt__call_set_property() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+org_neard_tgt__call_set_property_sync (
+ orgNeardTgt *proxy,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "SetProperty",
+ g_variant_new ("(s@v)",
+ arg_unnamed_arg0,
+ arg_unnamed_arg1),
+ 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;
+}
+
+/**
+ * org_neard_tgt__complete_get_properties:
+ * @object: A #orgNeardTgt.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @unnamed_arg0: Parameter to return.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-neard-Target.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
+org_neard_tgt__complete_get_properties (
+ orgNeardTgt *object,
+ GDBusMethodInvocation *invocation,
+ GVariant *unnamed_arg0)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("(@a{sv})",
+ unnamed_arg0));
+}
+
+/**
+ * org_neard_tgt__complete_set_property:
+ * @object: A #orgNeardTgt.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-neard-Target.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
+org_neard_tgt__complete_set_property (
+ orgNeardTgt *object,
+ GDBusMethodInvocation *invocation)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("()"));
+}
+
+/* ------------------------------------------------------------------------ */
+
+/**
+ * orgNeardTgtProxy:
+ *
+ * The #orgNeardTgtProxy structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * orgNeardTgtProxyClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #orgNeardTgtProxy.
+ */
+
+struct _orgNeardTgtProxyPrivate
+{
+ GData *qdata;
+};
+
+static void org_neard_tgt__proxy_iface_init (orgNeardTgtIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (orgNeardTgtProxy, org_neard_tgt__proxy, G_TYPE_DBUS_PROXY,
+ G_IMPLEMENT_INTERFACE (ORG_NEARD_TGT_TYPE_, org_neard_tgt__proxy_iface_init));
+
+static void
+org_neard_tgt__proxy_finalize (GObject *object)
+{
+ orgNeardTgtProxy *proxy = ORG_NEARD_TGT__PROXY (object);
+ g_datalist_clear (&proxy->priv->qdata);
+ G_OBJECT_CLASS (org_neard_tgt__proxy_parent_class)->finalize (object);
+}
+
+static void
+org_neard_tgt__proxy_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+}
+
+static void
+org_neard_tgt__proxy_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+}
+
+static void
+org_neard_tgt__proxy_g_signal (GDBusProxy *proxy,
+ const gchar *sender_name,
+ 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 *) &_org_neard_tgt__interface_info, signal_name);
+ if (info == NULL)
+ return;
+ num_params = g_variant_n_children (parameters);
+ paramv = g_new0 (GValue, num_params + 1);
+ g_value_init (¶mv[0], ORG_NEARD_TGT_TYPE_);
+ g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT);
+ g_value_set_variant (¶mv[n], child);
+ n++;
+ }
+ else
+ g_dbus_gvariant_to_gvalue (child, ¶mv[n++]);
+ g_variant_unref (child);
+ }
+ signal_id = g_signal_lookup (info->signal_name, ORG_NEARD_TGT_TYPE_);
+ g_signal_emitv (paramv, signal_id, 0, NULL);
+ for (n = 0; n < num_params + 1; n++)
+ g_value_unset (¶mv[n]);
+ g_free (paramv);
+}
+
+static void
+org_neard_tgt__proxy_g_properties_changed (GDBusProxy *_proxy,
+ GVariant *changed_properties,
+ const gchar *const *invalidated_properties)
+{
+ orgNeardTgtProxy *proxy = ORG_NEARD_TGT__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 *) &_org_neard_tgt__interface_info, 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 *) &_org_neard_tgt__interface_info, 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
+org_neard_tgt__proxy_init (orgNeardTgtProxy *proxy)
+{
+ proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, ORG_NEARD_TGT_TYPE__PROXY, orgNeardTgtProxyPrivate);
+ g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_neard_tgt__interface_info ());
+}
+
+static void
+org_neard_tgt__proxy_class_init (orgNeardTgtProxyClass *klass)
+{
+ GObjectClass *gobject_class;
+ GDBusProxyClass *proxy_class;
+
+ g_type_class_add_private (klass, sizeof (orgNeardTgtProxyPrivate));
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = org_neard_tgt__proxy_finalize;
+ gobject_class->get_property = org_neard_tgt__proxy_get_property;
+ gobject_class->set_property = org_neard_tgt__proxy_set_property;
+
+ proxy_class = G_DBUS_PROXY_CLASS (klass);
+ proxy_class->g_signal = org_neard_tgt__proxy_g_signal;
+ proxy_class->g_properties_changed = org_neard_tgt__proxy_g_properties_changed;
+
+}
+
+static void
+org_neard_tgt__proxy_iface_init (orgNeardTgtIface *iface)
+{
+}
+
+/**
+ * org_neard_tgt__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-org-neard-Target.top_of_page">org.neard.Target</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 org_neard_tgt__proxy_new_finish() to get the result of the operation.
+ *
+ * See org_neard_tgt__proxy_new_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+org_neard_tgt__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 (ORG_NEARD_TGT_TYPE__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", "org.neard.Target", NULL);
+}
+
+/**
+ * org_neard_tgt__proxy_new_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_neard_tgt__proxy_new().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with org_neard_tgt__proxy_new().
+ *
+ * Returns: (transfer full) (type orgNeardTgtProxy): The constructed proxy object or %NULL if @error is set.
+ */
+orgNeardTgt *
+org_neard_tgt__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 ORG_NEARD_TGT_ (ret);
+ else
+ return NULL;
+}
+
+/**
+ * org_neard_tgt__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-org-neard-Target.top_of_page">org.neard.Target</link>. See g_dbus_proxy_new_sync() for more details.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See org_neard_tgt__proxy_new() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type orgNeardTgtProxy): The constructed proxy object or %NULL if @error is set.
+ */
+orgNeardTgt *
+org_neard_tgt__proxy_new_sync (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GInitable *ret;
+ ret = g_initable_new (ORG_NEARD_TGT_TYPE__PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.neard.Target", NULL);
+ if (ret != NULL)
+ return ORG_NEARD_TGT_ (ret);
+ else
+ return NULL;
+}
+
+
+/**
+ * org_neard_tgt__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 org_neard_tgt__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 org_neard_tgt__proxy_new_for_bus_finish() to get the result of the operation.
+ *
+ * See org_neard_tgt__proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+org_neard_tgt__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 (ORG_NEARD_TGT_TYPE__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", "org.neard.Target", NULL);
+}
+
+/**
+ * org_neard_tgt__proxy_new_for_bus_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_neard_tgt__proxy_new_for_bus().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with org_neard_tgt__proxy_new_for_bus().
+ *
+ * Returns: (transfer full) (type orgNeardTgtProxy): The constructed proxy object or %NULL if @error is set.
+ */
+orgNeardTgt *
+org_neard_tgt__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 ORG_NEARD_TGT_ (ret);
+ else
+ return NULL;
+}
+
+/**
+ * org_neard_tgt__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 org_neard_tgt__proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See org_neard_tgt__proxy_new_for_bus() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type orgNeardTgtProxy): The constructed proxy object or %NULL if @error is set.
+ */
+orgNeardTgt *
+org_neard_tgt__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 (ORG_NEARD_TGT_TYPE__PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.neard.Target", NULL);
+ if (ret != NULL)
+ return ORG_NEARD_TGT_ (ret);
+ else
+ return NULL;
+}
+
+
+/* ------------------------------------------------------------------------ */
+
+/**
+ * orgNeardTgtSkeleton:
+ *
+ * The #orgNeardTgtSkeleton structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * orgNeardTgtSkeletonClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #orgNeardTgtSkeleton.
+ */
+
+struct _orgNeardTgtSkeletonPrivate
+{
+ GValueArray *properties;
+ GList *changed_properties;
+ GSource *changed_properties_idle_source;
+ GMainContext *context;
+ GMutex *lock;
+};
+
+static void
+_org_neard_tgt__skeleton_handle_method_call (
+ GDBusConnection *connection,
+ const gchar *sender,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *method_name,
+ GVariant *parameters,
+ GDBusMethodInvocation *invocation,
+ gpointer user_data)
+{
+ orgNeardTgtSkeleton *skeleton = ORG_NEARD_TGT__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 = {0};
+ 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 (¶mv[n], ORG_NEARD_TGT_TYPE_);
+ g_value_set_object (¶mv[n++], skeleton);
+ g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION);
+ g_value_set_object (¶mv[n++], invocation);
+ if (info->pass_fdlist)
+ {
+#ifdef G_OS_UNIX
+ g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST);
+ g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT);
+ g_value_set_variant (¶mv[n], child);
+ n++;
+ }
+ else
+ g_dbus_gvariant_to_gvalue (child, ¶mv[n++]);
+ g_variant_unref (child);
+ }
+ signal_id = g_signal_lookup (info->signal_name, ORG_NEARD_TGT_TYPE_);
+ 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 (¶mv[n]);
+ g_free (paramv);
+}
+
+static GVariant *
+_org_neard_tgt__skeleton_handle_get_property (
+ GDBusConnection *connection,
+ const gchar *sender,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *property_name,
+ GError **error,
+ gpointer user_data)
+{
+ orgNeardTgtSkeleton *skeleton = ORG_NEARD_TGT__SKELETON (user_data);
+ GValue value = {0};
+ GParamSpec *pspec;
+ _ExtendedGDBusPropertyInfo *info;
+ GVariant *ret;
+ ret = NULL;
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_neard_tgt__interface_info, 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
+_org_neard_tgt__skeleton_handle_set_property (
+ GDBusConnection *connection,
+ const gchar *sender,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *property_name,
+ GVariant *variant,
+ GError **error,
+ gpointer user_data)
+{
+ orgNeardTgtSkeleton *skeleton = ORG_NEARD_TGT__SKELETON (user_data);
+ GValue value = {0};
+ GParamSpec *pspec;
+ _ExtendedGDBusPropertyInfo *info;
+ gboolean ret;
+ ret = FALSE;
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_neard_tgt__interface_info, 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 _org_neard_tgt__skeleton_vtable =
+{
+ _org_neard_tgt__skeleton_handle_method_call,
+ _org_neard_tgt__skeleton_handle_get_property,
+ _org_neard_tgt__skeleton_handle_set_property
+};
+
+static GDBusInterfaceInfo *
+org_neard_tgt__skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton)
+{
+ return org_neard_tgt__interface_info ();
+}
+
+static GDBusInterfaceVTable *
+org_neard_tgt__skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton)
+{
+ return (GDBusInterfaceVTable *) &_org_neard_tgt__skeleton_vtable;
+}
+
+static GVariant *
+org_neard_tgt__skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
+{
+ orgNeardTgtSkeleton *skeleton = ORG_NEARD_TGT__SKELETON (_skeleton);
+
+ GVariantBuilder builder;
+ guint n;
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
+ if (_org_neard_tgt__interface_info.parent_struct.properties == NULL)
+ goto out;
+ for (n = 0; _org_neard_tgt__interface_info.parent_struct.properties[n] != NULL; n++)
+ {
+ GDBusPropertyInfo *info = _org_neard_tgt__interface_info.parent_struct.properties[n];
+ if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
+ {
+ GVariant *value;
+ value = _org_neard_tgt__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)), "org.neard.Target", 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
+org_neard_tgt__skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
+{
+}
+
+static void
+_org_neard_tgt__on_signal_property_changed (
+ orgNeardTgt *object,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1)
+{
+ orgNeardTgtSkeleton *skeleton = ORG_NEARD_TGT__SKELETON (object);
+ GDBusConnection *connection = g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton));
+ if (connection == NULL)
+ return;
+ g_dbus_connection_emit_signal (connection,
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.neard.Target", "PropertyChanged",
+ g_variant_new ("(s@v)",
+ arg_unnamed_arg0,
+ arg_unnamed_arg1), NULL);
+}
+
+static void org_neard_tgt__skeleton_iface_init (orgNeardTgtIface *iface);
+G_DEFINE_TYPE_WITH_CODE (orgNeardTgtSkeleton, org_neard_tgt__skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
+ G_IMPLEMENT_INTERFACE (ORG_NEARD_TGT_TYPE_, org_neard_tgt__skeleton_iface_init));
+
+static void
+org_neard_tgt__skeleton_finalize (GObject *object)
+{
+ orgNeardTgtSkeleton *skeleton = ORG_NEARD_TGT__SKELETON (object);
+ g_list_foreach (skeleton->priv->changed_properties, (GFunc) _changed_property_free, NULL);
+ g_list_free (skeleton->priv->changed_properties);
+ if (skeleton->priv->changed_properties_idle_source != NULL)
+ g_source_destroy (skeleton->priv->changed_properties_idle_source);
+ if (skeleton->priv->context != NULL)
+ g_main_context_unref (skeleton->priv->context);
+ g_mutex_free (skeleton->priv->lock);
+ G_OBJECT_CLASS (org_neard_tgt__skeleton_parent_class)->finalize (object);
+}
+
+static void
+org_neard_tgt__skeleton_init (orgNeardTgtSkeleton *skeleton)
+{
+ skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, ORG_NEARD_TGT_TYPE__SKELETON, orgNeardTgtSkeletonPrivate);
+ skeleton->priv->lock = g_mutex_new ();
+ skeleton->priv->context = g_main_context_get_thread_default ();
+ if (skeleton->priv->context != NULL)
+ g_main_context_ref (skeleton->priv->context);
+}
+
+static void
+org_neard_tgt__skeleton_class_init (orgNeardTgtSkeletonClass *klass)
+{
+ GObjectClass *gobject_class;
+ GDBusInterfaceSkeletonClass *skeleton_class;
+
+ g_type_class_add_private (klass, sizeof (orgNeardTgtSkeletonPrivate));
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = org_neard_tgt__skeleton_finalize;
+
+ skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
+ skeleton_class->get_info = org_neard_tgt__skeleton_dbus_interface_get_info;
+ skeleton_class->get_properties = org_neard_tgt__skeleton_dbus_interface_get_properties;
+ skeleton_class->flush = org_neard_tgt__skeleton_dbus_interface_flush;
+ skeleton_class->get_vtable = org_neard_tgt__skeleton_dbus_interface_get_vtable;
+}
+
+static void
+org_neard_tgt__skeleton_iface_init (orgNeardTgtIface *iface)
+{
+ iface->property_changed = _org_neard_tgt__on_signal_property_changed;
+}
+
+/**
+ * org_neard_tgt__skeleton_new:
+ *
+ * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-neard-Target.top_of_page">org.neard.Target</link>.
+ *
+ * Returns: (transfer full) (type orgNeardTgtSkeleton): The skeleton object.
+ */
+orgNeardTgt *
+org_neard_tgt__skeleton_new (void)
+{
+ return ORG_NEARD_TGT_ (g_object_new (ORG_NEARD_TGT_TYPE__SKELETON, NULL));
+}
+
--- /dev/null
+/*
+ * Generated by gdbus-codegen 2.30.0. DO NOT EDIT.
+ *
+ * The license of this code is the same as for the source it was derived from.
+ */
+
+#ifndef __NEARD_TARGET_PROXY_H__
+#define __NEARD_TARGET_PROXY_H__
+
+#include <gio/gio.h>
+
+G_BEGIN_DECLS
+
+
+/* ------------------------------------------------------------------------ */
+/* Declarations for org.neard.Target */
+
+#define ORG_NEARD_TGT_TYPE_ (org_neard_tgt__get_type ())
+#define ORG_NEARD_TGT_(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ORG_NEARD_TGT_TYPE_, orgNeardTgt))
+#define ORG_NEARD_TGT_IS_(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ORG_NEARD_TGT_TYPE_))
+#define ORG_NEARD_TGT__GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), ORG_NEARD_TGT_TYPE_, orgNeardTgtIface))
+
+struct _orgNeardTgt;
+typedef struct _orgNeardTgt orgNeardTgt;
+typedef struct _orgNeardTgtIface orgNeardTgtIface;
+
+struct _orgNeardTgtIface
+{
+ GTypeInterface parent_iface;
+
+
+ gboolean (*handle_get_properties) (
+ orgNeardTgt *object,
+ GDBusMethodInvocation *invocation);
+
+ gboolean (*handle_set_property) (
+ orgNeardTgt *object,
+ GDBusMethodInvocation *invocation,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1);
+
+ void (*property_changed) (
+ orgNeardTgt *object,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1);
+
+};
+
+GType org_neard_tgt__get_type (void) G_GNUC_CONST;
+
+GDBusInterfaceInfo *org_neard_tgt__interface_info (void);
+guint org_neard_tgt__override_properties (GObjectClass *klass, guint property_id_begin);
+
+
+/* D-Bus method call completion functions: */
+void org_neard_tgt__complete_get_properties (
+ orgNeardTgt *object,
+ GDBusMethodInvocation *invocation,
+ GVariant *unnamed_arg0);
+
+void org_neard_tgt__complete_set_property (
+ orgNeardTgt *object,
+ GDBusMethodInvocation *invocation);
+
+
+
+/* D-Bus signal emissions functions: */
+void org_neard_tgt__emit_property_changed (
+ orgNeardTgt *object,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1);
+
+
+
+/* D-Bus method calls: */
+void org_neard_tgt__call_get_properties (
+ orgNeardTgt *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+gboolean org_neard_tgt__call_get_properties_finish (
+ orgNeardTgt *proxy,
+ GVariant **out_unnamed_arg0,
+ GAsyncResult *res,
+ GError **error);
+
+gboolean org_neard_tgt__call_get_properties_sync (
+ orgNeardTgt *proxy,
+ GVariant **out_unnamed_arg0,
+ GCancellable *cancellable,
+ GError **error);
+
+void org_neard_tgt__call_set_property (
+ orgNeardTgt *proxy,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+gboolean org_neard_tgt__call_set_property_finish (
+ orgNeardTgt *proxy,
+ GAsyncResult *res,
+ GError **error);
+
+gboolean org_neard_tgt__call_set_property_sync (
+ orgNeardTgt *proxy,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1,
+ GCancellable *cancellable,
+ GError **error);
+
+
+
+/* ---- */
+
+#define ORG_NEARD_TGT_TYPE__PROXY (org_neard_tgt__proxy_get_type ())
+#define ORG_NEARD_TGT__PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ORG_NEARD_TGT_TYPE__PROXY, orgNeardTgtProxy))
+#define ORG_NEARD_TGT__PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), ORG_NEARD_TGT_TYPE__PROXY, orgNeardTgtProxyClass))
+#define ORG_NEARD_TGT__PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), ORG_NEARD_TGT_TYPE__PROXY, orgNeardTgtProxyClass))
+#define ORG_NEARD_TGT_IS__PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ORG_NEARD_TGT_TYPE__PROXY))
+#define ORG_NEARD_TGT_IS__PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), ORG_NEARD_TGT_TYPE__PROXY))
+
+typedef struct _orgNeardTgtProxy orgNeardTgtProxy;
+typedef struct _orgNeardTgtProxyClass orgNeardTgtProxyClass;
+typedef struct _orgNeardTgtProxyPrivate orgNeardTgtProxyPrivate;
+
+struct _orgNeardTgtProxy
+{
+ /*< private >*/
+ GDBusProxy parent_instance;
+ orgNeardTgtProxyPrivate *priv;
+};
+
+struct _orgNeardTgtProxyClass
+{
+ GDBusProxyClass parent_class;
+};
+
+GType org_neard_tgt__proxy_get_type (void) G_GNUC_CONST;
+
+void org_neard_tgt__proxy_new (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+orgNeardTgt *org_neard_tgt__proxy_new_finish (
+ GAsyncResult *res,
+ GError **error);
+orgNeardTgt *org_neard_tgt__proxy_new_sync (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error);
+
+void org_neard_tgt__proxy_new_for_bus (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+orgNeardTgt *org_neard_tgt__proxy_new_for_bus_finish (
+ GAsyncResult *res,
+ GError **error);
+orgNeardTgt *org_neard_tgt__proxy_new_for_bus_sync (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error);
+
+
+/* ---- */
+
+#define ORG_NEARD_TGT_TYPE__SKELETON (org_neard_tgt__skeleton_get_type ())
+#define ORG_NEARD_TGT__SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ORG_NEARD_TGT_TYPE__SKELETON, orgNeardTgtSkeleton))
+#define ORG_NEARD_TGT__SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), ORG_NEARD_TGT_TYPE__SKELETON, orgNeardTgtSkeletonClass))
+#define ORG_NEARD_TGT__SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), ORG_NEARD_TGT_TYPE__SKELETON, orgNeardTgtSkeletonClass))
+#define ORG_NEARD_TGT_IS__SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ORG_NEARD_TGT_TYPE__SKELETON))
+#define ORG_NEARD_TGT_IS__SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), ORG_NEARD_TGT_TYPE__SKELETON))
+
+typedef struct _orgNeardTgtSkeleton orgNeardTgtSkeleton;
+typedef struct _orgNeardTgtSkeletonClass orgNeardTgtSkeletonClass;
+typedef struct _orgNeardTgtSkeletonPrivate orgNeardTgtSkeletonPrivate;
+
+struct _orgNeardTgtSkeleton
+{
+ /*< private >*/
+ GDBusInterfaceSkeleton parent_instance;
+ orgNeardTgtSkeletonPrivate *priv;
+};
+
+struct _orgNeardTgtSkeletonClass
+{
+ GDBusInterfaceSkeletonClass parent_class;
+};
+
+GType org_neard_tgt__skeleton_get_type (void) G_GNUC_CONST;
+
+orgNeardTgt *org_neard_tgt__skeleton_new (void);
+
+
+G_END_DECLS
+
+#endif /* __NEARD_TARGET_PROXY_H__ */
#include <stdio.h>
#include <string.h>
#include <glib.h>
-#include <dbus/dbus-glib.h>
#include <glib-object.h>
-#include "dbus/dbus.h"
-#include "neard-manager-proxy.h"
-#include "neard-adapter-proxy.h"
+#include "neard_manager_proxy.h"
+#include "neard_adapter_proxy.h"
#include "neardal.h"
#include "neardal_prv.h"
* 'NEARDAL adapter added'.
* cb_adp_added = NULL to remove actual callback.
*****************************************************************************/
-errorCode_t neardal_set_cb_adapter_added(neardal_t neardalObj,
+errorCode_t neardal_set_cb_adapter_added(neardal_t neardalMgr,
adapter_cb cb_adp_added,
void *user_data)
{
errorCode_t err = NEARDAL_ERROR_INVALID_PARAMETER;
- if (neardalObj != NULL) {
- neardalObj->cb_adp_added = cb_adp_added;
- neardalObj->cb_adp_added_ud = user_data;
+ if (neardalMgr != NULL) {
+ neardalMgr->cb_adp_added = cb_adp_added;
+ neardalMgr->cb_adp_added_ud = user_data;
err = NEARDAL_SUCCESS;
}
* 'NEARDAL adapter added'.
* cb_adp_removed = NULL to remove actual callback.
*****************************************************************************/
-errorCode_t neardal_set_cb_adapter_removed(neardal_t neardalObj,
+errorCode_t neardal_set_cb_adapter_removed(neardal_t neardalMgr,
adapter_cb cb_adp_removed,
void *user_data)
{
errorCode_t err = NEARDAL_ERROR_INVALID_PARAMETER;
- if (neardalObj != NULL) {
- neardalObj->cb_adp_removed = cb_adp_removed;
- neardalObj->cb_adp_removed_ud = user_data;
+ if (neardalMgr != NULL) {
+ neardalMgr->cb_adp_removed = cb_adp_removed;
+ neardalMgr->cb_adp_removed_ud = user_data;
err = NEARDAL_SUCCESS;
}
* 'NEARDAL Adapter Property Change'.
* cb_mgr_adp_property_changed = NULL to remove actual callback.
*****************************************************************************/
-errorCode_t neardal_set_cb_adapter_property_changed(neardal_t neardalObj,
+errorCode_t neardal_set_cb_adapter_property_changed(neardal_t neardalMgr,
adapter_prop_cb cb_adp_property_changed,
void *user_data)
{
errorCode_t err = NEARDAL_ERROR_INVALID_PARAMETER;
- if (neardalObj != NULL) {
- neardalObj->cb_adp_prop_changed = cb_adp_property_changed;
- neardalObj->cb_adp_prop_changed_ud = user_data;
+ if (neardalMgr != NULL) {
+ neardalMgr->cb_adp_prop_changed = cb_adp_property_changed;
+ neardalMgr->cb_adp_prop_changed_ud = user_data;
err = NEARDAL_SUCCESS;
}
* 'NEARDAL adapter added'.
* cb_adp_added = NULL to remove actual callback.
*****************************************************************************/
-errorCode_t neardal_set_cb_target_found(neardal_t neardalObj,
+errorCode_t neardal_set_cb_target_found(neardal_t neardalMgr,
target_cb cb_tgt_found,
void *user_data)
{
errorCode_t err = NEARDAL_ERROR_INVALID_PARAMETER;
- if (neardalObj != NULL) {
- neardalObj->cb_tgt_found = cb_tgt_found;
- neardalObj->cb_tgt_found_ud = user_data;
+ if (neardalMgr != NULL) {
+ neardalMgr->cb_tgt_found = cb_tgt_found;
+ neardalMgr->cb_tgt_found_ud = user_data;
err = NEARDAL_SUCCESS;
}
* 'NEARDAL adapter added'.
* cb_adp_removed = NULL to remove actual callback.
*****************************************************************************/
-errorCode_t neardal_set_cb_target_lost(neardal_t neardalObj,
+errorCode_t neardal_set_cb_target_lost(neardal_t neardalMgr,
target_cb cb_tgt_lost, void *user_data)
{
errorCode_t err = NEARDAL_ERROR_INVALID_PARAMETER;
- if (neardalObj != NULL) {
- neardalObj->cb_tgt_lost = cb_tgt_lost;
- neardalObj->cb_tgt_lost_ud = user_data;
+ if (neardalMgr != NULL) {
+ neardalMgr->cb_tgt_lost = cb_tgt_lost;
+ neardalMgr->cb_tgt_lost_ud = user_data;
err = NEARDAL_SUCCESS;
}
* 'NEARDAL target record found'.
* cb_rcd_found = NULL to remove actual callback.
*****************************************************************************/
-errorCode_t neardal_set_cb_record_found(neardal_t neardalObj,
+errorCode_t neardal_set_cb_record_found(neardal_t neardalMgr,
record_cb cb_rcd_found,
void *user_data)
{
errorCode_t err = NEARDAL_ERROR_INVALID_PARAMETER;
- if (neardalObj != NULL) {
- neardalObj->cb_rcd_found = cb_rcd_found;
- neardalObj->cb_rcd_found_ud = user_data;
+ if (neardalMgr != NULL) {
+ neardalMgr->cb_rcd_found = cb_rcd_found;
+ neardalMgr->cb_rcd_found_ud = user_data;
err = NEARDAL_SUCCESS;
}
/******************************************************************************
* neardal_start_poll: Request Neard to start polling
*****************************************************************************/
-void neardal_start_poll(neardal_t neardalObj, char *adpName, errorCode_t *ec)
+void neardal_start_poll(neardal_t neardalMgr, char *adpName, errorCode_t *ec)
{
errorCode_t err = NEARDAL_ERROR_INVALID_PARAMETER;
AdpProp *adpProp = NULL;
- if (neardalObj == NULL)
+ if (neardalMgr == NULL)
goto exit;
- err = neardal_mgr_prv_get_adapter(neardalObj, adpName,
+ err = neardal_mgr_prv_get_adapter(neardalMgr, adpName,
&adpProp);
err = NEARDAL_ERROR_NO_ADAPTER;
if (adpProp == NULL)
goto exit;
- if (adpProp->dbusProxy == NULL)
+ if (adpProp->proxy == NULL)
goto exit;
if (!adpProp->polling) {
- org_neard_Adapter_start_poll(adpProp->dbusProxy,
- &neardalObj->gerror);
+ org_neard_adp__call_start_poll_sync(adpProp->proxy, NULL,
+ &neardalMgr->gerror);
err = NEARDAL_SUCCESS;
- if (neardalObj->gerror != NULL) {
+ if (neardalMgr->gerror != NULL) {
NEARDAL_TRACE_ERR(
"Error with neard dbus method (err:%d:'%s')\n"
- , neardalObj->gerror->code
- , neardalObj->gerror->message);
+ , neardalMgr->gerror->code
+ , neardalMgr->gerror->message);
err = NEARDAL_ERROR_DBUS_INVOKE_METHOD_ERROR;
- neardal_tools_prv_free_gerror(neardalObj);
+ neardal_tools_prv_free_gerror(neardalMgr);
}
} else
err = NEARDAL_ERROR_POLLING_ALREADY_ACTIVE;
/******************************************************************************
* neardal_stop_poll: Request Neard to stop polling
*****************************************************************************/
-void neardal_stop_poll(neardal_t neardalObj, char *adpName, errorCode_t *ec)
+void neardal_stop_poll(neardal_t neardalMgr, char *adpName, errorCode_t *ec)
{
errorCode_t err = NEARDAL_ERROR_INVALID_PARAMETER;
AdpProp *adpProp = NULL;
- if (neardalObj == NULL)
+ if (neardalMgr == NULL)
goto exit;
- err = neardal_mgr_prv_get_adapter(neardalObj, adpName,
+ err = neardal_mgr_prv_get_adapter(neardalMgr, adpName,
&adpProp);
if (adpProp == NULL)
goto exit;
- if (adpProp->dbusProxy == NULL)
+ if (adpProp->proxy == NULL)
goto exit;
if (adpProp->polling) {
- org_neard_Adapter_stop_poll(adpProp->dbusProxy,
- &neardalObj->gerror);
+ org_neard_adp__call_stop_poll_sync(adpProp->proxy, NULL,
+ &neardalMgr->gerror);
err = NEARDAL_SUCCESS;
- if (neardalObj->gerror != NULL) {
+ if (neardalMgr->gerror != NULL) {
NEARDAL_TRACE_ERR(
"Error with neard dbus method (err:%d:'%s')\n"
- , neardalObj->gerror->code
- , neardalObj->gerror->message);
+ , neardalMgr->gerror->code
+ , neardalMgr->gerror->message);
err = NEARDAL_ERROR_DBUS_INVOKE_METHOD_ERROR;
- neardal_tools_prv_free_gerror(neardalObj);
+ neardal_tools_prv_free_gerror(neardalMgr);
}
}
/******************************************************************************
* neardal_publish: Write NDEF record to an NFC tag
*****************************************************************************/
-errorCode_t neardal_publish(neardal_t neardalObj, neardal_record *record)
+errorCode_t neardal_publish(neardal_t neardalMgr, neardal_record *record)
{
errorCode_t err = NEARDAL_ERROR_INVALID_PARAMETER;
AdpProp *adpProp;
RcdProp rcd;
- if (neardalObj == NULL || record == NULL)
+ if (neardalMgr == NULL || record == NULL)
goto exit;
- err = neardal_mgr_prv_get_adapter(neardalObj, record->name,
+ err = neardal_mgr_prv_get_adapter(neardalMgr, record->name,
&adpProp);
if (err != NEARDAL_SUCCESS)
goto exit;
/******************************************************************************
* neardal_get_adapter_properties: Get properties of a specific NEARDAL adapter
*****************************************************************************/
-errorCode_t neardal_get_adapter_properties(neardal_t neardalObj,
+errorCode_t neardal_get_adapter_properties(neardal_t neardalMgr,
const char *adpName,
neardal_adapter *adapter)
{
int ct = 0; /* counter */
gsize size;
- if (neardalObj == NULL || adpName == NULL || adapter == NULL)
+ if (neardalMgr == NULL || adpName == NULL || adapter == NULL)
goto exit;
- err = neardal_mgr_prv_get_adapter(neardalObj, adpName,
+ err = neardal_mgr_prv_get_adapter(neardalMgr, adpName,
&adpProp);
if (err != NEARDAL_SUCCESS)
goto exit;
adapter->polling = (short) adpProp->polling;
adapter->powered = (short) adpProp->powered;
- adapter->nbProtocols = 0;
+ adapter->nbProtocols = adpProp->lenProtocols;
adapter->protocols = NULL;
- /* Count protocols */
- while (adpProp->protocols[adapter->nbProtocols++] != NULL);
if (adapter->nbProtocols > 0) {
- adapter->nbProtocols--;
err = NEARDAL_ERROR_NO_MEMORY;
size = (adapter->nbProtocols + 1) * sizeof(char *);
adapter->protocols = g_try_malloc0(size);
ct = 0;
while (ct < adapter->nbProtocols) {
gchar *tmp = g_strdup(adpProp->protocols[ct]);
- adapter->protocols[ct] = tmp;
- ct++;
+ adapter->protocols[ct++] = tmp;
}
err = NEARDAL_SUCCESS;
}
}
- adapter->nbTargets = g_list_length(adpProp->tgtList);
+ adapter->nbTargets = adpProp->tgtNb;
adapter->targets = NULL;
if (adapter->nbTargets <= 0)
goto exit;
/******************************************************************************
* neardal_get_adapter_properties: Get properties of a specific NEARDAL adapter
*****************************************************************************/
-errorCode_t neardal_get_target_properties(neardal_t neardalObj,
+errorCode_t neardal_get_target_properties(neardal_t neardalMgr,
const char *tgtName,
neardal_target *target)
{
RcdProp *record = NULL;
gsize size;
- if (neardalObj == NULL || tgtName == NULL || target == NULL)
+ if (neardalMgr == NULL || tgtName == NULL || target == NULL)
goto exit;
target->records = NULL;
- target->tagType = NULL;
- err = neardal_mgr_prv_get_adapter(neardalObj, tgtName,
+ target->tagsType = NULL;
+ err = neardal_mgr_prv_get_adapter(neardalMgr, tgtName,
&adpProp);
if (err != NEARDAL_SUCCESS)
goto exit;
target->name = tgtProp->name;
target->type = tgtProp->type;
target->readOnly = tgtProp->readOnly;
- target->nbRecords = g_list_length(tgtProp->rcdList);
+ target->nbRecords = tgtProp->rcdLen;
if (target->nbRecords > 0) {
err = NEARDAL_ERROR_NO_MEMORY;
size = (target->nbRecords + 1) * sizeof(char *);
}
target->nbTagTypes = 0;
- target->tagType = NULL;
+ target->tagsType = NULL;
/* Count TagTypes */
- while (tgtProp->tagType[target->nbTagTypes++] != NULL);
+ target->nbTagTypes = tgtProp->tagsTypeLen;
if (target->nbTagTypes <= 0)
goto exit;
- target->nbTagTypes--;
err = NEARDAL_ERROR_NO_MEMORY;
size = (target->nbTagTypes + 1) * sizeof(char *);
- target->tagType = g_try_malloc0(size);
- if (target->tagType == NULL)
+ target->tagsType = g_try_malloc0(size);
+ if (target->tagsType == NULL)
goto exit;
ct = 0;
while (ct < target->nbTagTypes) {
- target->tagType[ct] = g_strdup(tgtProp->tagType[ct]);
+ target->tagsType[ct] = g_strdup(tgtProp->tagsType[ct]);
ct++;
}
err = NEARDAL_SUCCESS;
/******************************************************************************
* neardal_get_record_properties: Get values of a specific target record
*****************************************************************************/
-errorCode_t neardal_get_record_properties(neardal_t neardalObj,
+errorCode_t neardal_get_record_properties(neardal_t neardalMgr,
const char *recordName,
neardal_record *record)
{
TgtProp *tgtProp = NULL;
RcdProp *rcdProp = NULL;
- if (neardalObj == NULL || recordName == NULL || record == NULL)
+ if (neardalMgr == NULL || recordName == NULL || record == NULL)
goto exit;
- err = neardal_mgr_prv_get_adapter(neardalObj, recordName,
+ err = neardal_mgr_prv_get_adapter(neardalMgr, recordName,
&adpProp);
if (err != NEARDAL_SUCCESS)
goto exit;
*****************************************************************************/
neardal_t neardal_construct(errorCode_t *ec)
{
- neardal_t neardalObj = NULL;
+ neardal_t neardalMgr = NULL;
errorCode_t err = NEARDAL_ERROR_NO_MEMORY;
NEARDAL_TRACEIN();
/* Allocate NEARDAL context */
- neardalObj = g_try_malloc0(sizeof(neardalCtx));
- if (neardalObj == NULL)
+ neardalMgr = g_try_malloc0(sizeof(neardalCtx));
+ if (neardalMgr == NULL)
goto exit;
/* Create DBUS connection */
g_type_init();
- neardalObj->conn = dbus_g_bus_get(DBUS_BUS_SYSTEM,
- &neardalObj->gerror);
- if (neardalObj->conn != NULL) {
+ neardalMgr->conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL,
+ &neardalMgr->gerror);
+ if (neardalMgr->conn != NULL) {
/* We have a DBUS connection, create proxy on Neard Manager */
- err = neardal_mgr_init(neardalObj);
+ err = neardal_mgr_create(neardalMgr);
if (err != NEARDAL_SUCCESS) {
NEARDAL_TRACEF(
- "neardal_mgr_init() exit (err %d: %s)\n",
+ "neardal_mgr_create() exit (err %d: %s)\n",
err, neardal_error_get_text(err));
/* No Neard daemon, destroying neardal object... */
if (err == NEARDAL_ERROR_DBUS_CANNOT_CREATE_PROXY) {
- neardal_tools_prv_free_gerror(neardalObj);
- g_free(neardalObj);
- neardalObj = NULL;
+ neardal_tools_prv_free_gerror(neardalMgr);
+ g_free(neardalMgr);
+ neardalMgr = NULL;
}
}
} else {
NEARDAL_TRACE_ERR("Unable to connect to dbus: %s\n",
- neardalObj->gerror->message);
- neardal_tools_prv_free_gerror(neardalObj);
+ neardalMgr->gerror->message);
+ neardal_tools_prv_free_gerror(neardalMgr);
err = NEARDAL_ERROR_DBUS;
- g_free(neardalObj);
- neardalObj = NULL;
+ g_free(neardalMgr);
+ neardalMgr = NULL;
}
exit:
*ec = err;
NEARDAL_TRACEF("Exit\n");
- return neardalObj;
+ return neardalMgr;
}
* neardal_destroy: destroy NEARDAL object instance, Disconnect Neard Dbus
* connection, unregister Neard's events
*****************************************************************************/
-void neardal_destroy(neardal_t neardalObj)
+void neardal_destroy(neardal_t neardalMgr)
{
NEARDAL_TRACEIN();
- if (neardalObj != NULL) {
- neardal_mgr_release(neardalObj);
- neardal_tools_prv_free_gerror(neardalObj);
- g_free(neardalObj);
+ if (neardalMgr != NULL) {
+ neardal_tools_prv_free_gerror(neardalMgr);
+ neardal_mgr_destroy(&neardalMgr);
}
}
/*! @brief Number of supported 'types' in target */
int nbTagTypes;
/*! @brief types list (use @link neardal_free_array @endlink(& ) to free) */
- char **tagType;
+ char **tagsType;
/*! @brief target type */
const char *type;
/*! @brief Read-Only flag (is target writable?) */
neardal_t neardal_construct(errorCode_t *ec);
-/*! \fn void neardal_destroy(neardal_t neardalObj)
+/*! \fn void neardal_destroy(neardal_t neardalMgr)
* \brief destroy NEARDAL object instance, disconnect Neard Dbus connection,
* unregister Neard's events
-* \param neardalObj : NEARDAL context to destroy
+* \param neardalMgr : NEARDAL context to destroy
*/
-void neardal_destroy(neardal_t neardalObj);
+void neardal_destroy(neardal_t neardalMgr);
-/*! \fn void neardal_start_poll(neardal_t neardalObj, char *adpName,
+/*! \fn void neardal_start_poll(neardal_t neardalMgr, char *adpName,
* errorCode_t *ec)
* \brief Request Neard to start polling on specific NEARDAL adapter
-* \param neardalObj : NEARDAL context
+* \param neardalMgr : NEARDAL context
* \param adpName : DBus interface adapter name (as identifier)
* \param ec : optional, pointer to store error code
*/
-void neardal_start_poll(neardal_t neardalObj, char *adpName,
+void neardal_start_poll(neardal_t neardalMgr, char *adpName,
errorCode_t *ec);
-/*! \fn void neardal_stop_poll(neardal_t neardalObj, char *adpName,
+/*! \fn void neardal_stop_poll(neardal_t neardalMgr, char *adpName,
* errorCode_t *ec)
* \brief Request Neard to stop polling on specific NEARDAL adapter
-* \param neardalObj : NEARDAL context
+* \param neardalMgr : NEARDAL context
* \param adpName : DBus interface adapter name (as identifier)
* \param ec : optional, pointer to store error code
*/
-void neardal_stop_poll(neardal_t neardalObj, char *adpName, errorCode_t *ec);
+void neardal_stop_poll(neardal_t neardalMgr, char *adpName, errorCode_t *ec);
-/*! \fn errorCode_t neardal_get_adapters(neardal_t neardalObj, char ***array,
+/*! \fn errorCode_t neardal_get_adapters(neardal_t neardalMgr, char ***array,
* int *len)
* @brief get an array of NEARDAL adapters present
*
- * @param neardalObj NEARDAL context
+ * @param neardalMgr NEARDAL context
* @param array array of DBus interface adapter name (as identifier), use @link
* neardal_free_array @endlink(& ) to free
* @param len (optional), number of adapters
* @return errorCode_t error code
**/
-errorCode_t neardal_get_adapters(neardal_t neardalObj, char ***array,
+errorCode_t neardal_get_adapters(neardal_t neardalMgr, char ***array,
int *len);
-/*! \fn errorCode_t neardal_get_targets(neardal_t neardalObj, char *adpName,
+/*! \fn errorCode_t neardal_get_targets(neardal_t neardalMgr, char *adpName,
* char ***array, int *len)
* @brief get an array of NEARDAL targets present
*
- * @param neardalObj NEARDAL context
+ * @param neardalMgr NEARDAL context
* @param adpName adapter name (identifier) on which targets list must be
* retrieve
* @param array array of DBus interface target name (as identifier), use @link
* @param len (optional), number of targets
* @return errorCode_t error code
**/
-errorCode_t neardal_get_targets(neardal_t neardalObj, char *adpName,
+errorCode_t neardal_get_targets(neardal_t neardalMgr, char *adpName,
char ***array, int *len);
-/*! \fn errorCode_t neardal_get_records(neardal_t neardalObj, char *tgtName,
+/*! \fn errorCode_t neardal_get_records(neardal_t neardalMgr, char *tgtName,
* char ***array, int *len)
* @brief get an array of NEARDAL records present
*
- * @param neardalObj NEARDAL context
+ * @param neardalMgr NEARDAL context
* @param tgtName target name (identifier) on which records list must be
* retrieve
* @param array array of DBus interface record name (as identifier), use @link
* @param len (optional), number of records
* @return errorCode_t error code
**/
-errorCode_t neardal_get_records(neardal_t neardalObj, char *tgtName,
+errorCode_t neardal_get_records(neardal_t neardalMgr, char *tgtName,
char ***array, int *len);
/*! @fn errorCode_t neardal_free_array(char ***array)
**/
errorCode_t neardal_free_array(char ***array);
-/*! \fn errorCode_t neardal_get_adapter_properties(neardal_t neardalObj,
+/*! \fn errorCode_t neardal_get_adapter_properties(neardal_t neardalMgr,
* const char* adpName, neardal_adapter *adapter)
* @brief Get properties of a specific NEARDAL adapter
*
- * @param neardalObj NEARDAL context
+ * @param neardalMgr NEARDAL context
* @param adpName DBus interface adapter name (as identifier)
* @param adapter Pointer on client adapter struct to store datas
* @return errorCode_t error code
**/
-errorCode_t neardal_get_adapter_properties(neardal_t neardalObj,
+errorCode_t neardal_get_adapter_properties(neardal_t neardalMgr,
const char *adpName,
neardal_adapter *adapter);
-/*! \fn errorCode_t neardal_set_cb_adapter_added(neardal_t neardalObj,
+/*! \fn errorCode_t neardal_set_cb_adapter_added(neardal_t neardalMgr,
* adapter_cb cb_adp_added,
* void * user_data)
* @brief setup a client callback for 'NEARDAL adapter added'. cb_adp_added = NULL
* to remove actual callback
*
- * @param neardalObj NEARDAL context
+ * @param neardalMgr NEARDAL context
* @param cb_adp_added Client callback 'adapter added'
* @param user_data Client user data
* @return errorCode_t error code
**/
-errorCode_t neardal_set_cb_adapter_added(neardal_t neardalObj,
+errorCode_t neardal_set_cb_adapter_added(neardal_t neardalMgr,
adapter_cb cb_adp_added,
void *user_data);
-/*! \fn errorCode_t neardal_set_cb_adapter_removed(neardal_t neardalObj,
+/*! \fn errorCode_t neardal_set_cb_adapter_removed(neardal_t neardalMgr,
* adapter_cb cb_adp_removed,
* void * user_data)
* @brief setup a client callback for 'NEARDAL adapter removed'.
* cb_adp_removed = NULL to remove actual callback
*
- * @param neardalObj NEARDAL context
+ * @param neardalMgr NEARDAL context
* @param cb_adp_removed Client callback 'adapter removed'
* @param user_data Client user data
* @return errorCode_t error code
**/
-errorCode_t neardal_set_cb_adapter_removed(neardal_t neardalObj,
+errorCode_t neardal_set_cb_adapter_removed(neardal_t neardalMgr,
adapter_cb cb_adp_removed,
void *user_data);
/*! \fn errorCode_t neardal_set_cb_adapter_property_changed(
- * neardal_t neardalObj, adapter_prop_cb cb_adp_property_changed,
+ * neardal_t neardalMgr, adapter_prop_cb cb_adp_property_changed,
* void *user_data)
* @brief setup a client callback for 'NEARDAL Adapter Property Changed'.
* cb_adp_property_changed = NULL to remove actual callback.
*
- * @param neardalObj NEARDAL context
+ * @param neardalMgr NEARDAL context
* @param cb_adp_property_changed Client callback 'Adapter Property Changed'
* @param user_data Client user data
* @return errorCode_t error code
**/
-errorCode_t neardal_set_cb_adapter_property_changed(neardal_t neardalObj,
+errorCode_t neardal_set_cb_adapter_property_changed(neardal_t neardalMgr,
adapter_prop_cb cb_adp_property_changed,
void *user_data);
-/*! \fn errorCode_t neardal_get_target_properties(neardal_t neardalObj,
+/*! \fn errorCode_t neardal_get_target_properties(neardal_t neardalMgr,
* const char* tgtName, neardal_target *target)
* @brief Get properties of a specific NEARDAL target
*
- * @param neardalObj NEARDAL context
+ * @param neardalMgr NEARDAL context
* @param tgtName target name (identifier) on which properties must be retrieve
* @param target Pointer on client target struct to store datas
* @return errorCode_t error code
**/
-errorCode_t neardal_get_target_properties(neardal_t neardalObj,
+errorCode_t neardal_get_target_properties(neardal_t neardalMgr,
const char *tgtName,
neardal_target *target);
-/*! \fn errorCode_t neardal_set_cb_target_found(neardal_t neardalObj,
+/*! \fn errorCode_t neardal_set_cb_target_found(neardal_t neardalMgr,
* target_cb cb_tgt_found, void * user_data)
* @brief setup a client callback for 'NEARDAL target found'.
* cb_tgt_found = NULL to remove actual callback.
*
- * @param neardalObj NEARDAL context
+ * @param neardalMgr NEARDAL context
* @param cb_tgt_found Client callback 'target found'
* @param user_data Client user data
* @return errorCode_t error code
**/
-errorCode_t neardal_set_cb_target_found(neardal_t neardalObj,
+errorCode_t neardal_set_cb_target_found(neardal_t neardalMgr,
target_cb cb_tgt_found,
void *user_data);
-/*! \fn errorCode_t neardal_set_cb_target_lost(neardal_t neardalObj,
+/*! \fn errorCode_t neardal_set_cb_target_lost(neardal_t neardalMgr,
* target_cb cb_tgt_lost, void * user_data)
* @brief setup a client callback for 'NEARDAL target lost'.
* cb_tgt_lost = NULL to remove actual callback.
*
- * @param neardalObj NEARDAL context
+ * @param neardalMgr NEARDAL context
* @param cb_tgt_lost Client callback 'target lost'
* @param user_data Client user data
* @return errorCode_t error code
**/
-errorCode_t neardal_set_cb_target_lost(neardal_t neardalObj,
+errorCode_t neardal_set_cb_target_lost(neardal_t neardalMgr,
target_cb cb_tgt_lost,
void *user_data);
-/*! \fn errorCode_t neardal_get_record_properties(neardal_t neardalObj,
+/*! \fn errorCode_t neardal_get_record_properties(neardal_t neardalMgr,
* const char *recordName,
* neardal_record *record)
* @brief Get properties of a specific NEARDAL target record
*
- * @param neardalObj NEARDAL context
+ * @param neardalMgr NEARDAL context
* @param recordName DBus interface record name (as identifier)
* @param record Pointer on client record struct to store datas
* @return errorCode_t error code
**/
-errorCode_t neardal_get_record_properties(neardal_t neardalObj,
+errorCode_t neardal_get_record_properties(neardal_t neardalMgr,
const char *recordName,
neardal_record *record);
-/*! \fn errorCode_t neardal_publish(neardal_t neardalObj,
+/*! \fn errorCode_t neardal_publish(neardal_t neardalMgr,
* neardal_record *record)
* @brief Write NDEF record to an NFC tag
*
- * @param neardalObj NEARDAL context
+ * @param neardalMgr NEARDAL context
* @param record Pointer on client record used to create NDEF record
* @return errorCode_t error code
**/
-errorCode_t neardal_publish(neardal_t neardalObj, neardal_record *record);
+errorCode_t neardal_publish(neardal_t neardalMgr, neardal_record *record);
-/*! \fn errorCode_t neardal_set_cb_record_found(neardal_t neardalObj,
+/*! \fn errorCode_t neardal_set_cb_record_found(neardal_t neardalMgr,
* record_cb cb_rcd_found, void * user_data)
* @brief Setup a client callback for 'NEARDAL target record found'.
* cb_rcd_found = NULL to remove actual callback
*
- * @param neardalObj NEARDAL context
+ * @param neardalMgr NEARDAL context
* @param cb_rcd_found Client callback 'record found'
* @param user_data Client user data
* @return errorCode_t error code
**/
-errorCode_t neardal_set_cb_record_found(neardal_t neardalObj,
+errorCode_t neardal_set_cb_record_found(neardal_t neardalMgr,
record_cb cb_rcd_found,
void *user_data);
#include <stdio.h>
#include <string.h>
#include <glib.h>
-#include <dbus/dbus-glib.h>
#include <glib-object.h>
-#include "dbus/dbus.h"
-#include "neard-adapter-proxy.h"
+#include "neard_adapter_proxy.h"
#include "neardal.h"
#include "neardal_prv.h"
* neardal_adp_prv_cb_target_found: Callback called when a NFC target is
* found
*****************************************************************************/
-static void neardal_adp_prv_cb_target_found(DBusGProxy *proxy,
- const char *str0,
+static void neardal_adp_prv_cb_target_found(orgNeardTgt *proxy,
+ const gchar *arg_unnamed_arg0,
void *user_data)
{
- neardal_t neardalObj = user_data;
- AdpProp *adpProp = NULL;
+ AdpProp *adpProp = user_data;
errorCode_t err;
+ neardal_t neardalMgr;
NEARDAL_TRACEIN();
- g_assert(str0 != NULL);
(void) proxy; /* remove warning */
+
+ g_assert(arg_unnamed_arg0 != NULL);
+ g_assert(adpProp != NULL);
+ neardalMgr = adpProp->parent;
+ g_assert(neardalMgr != NULL);
+
- neardal_mgr_prv_get_adapter(neardalObj, (char *) str0, &adpProp);
-
- NEARDAL_TRACEF("Adding target '%s'\n", str0);
+ NEARDAL_TRACEF("Adding target '%s'\n", arg_unnamed_arg0);
/* Invoking Callback 'Target Found' before adding it (otherwise
* callback 'Record Found' would be called before ) */
- err = neardal_tgt_add(neardalObj, (char *) str0);
+ err = neardal_tgt_add(neardalMgr, adpProp,
+ (char *) arg_unnamed_arg0);
if (err != NEARDAL_SUCCESS) {
- if (neardalObj->cb_tgt_found != NULL)
- (neardalObj->cb_tgt_found)((char *) str0,
- neardalObj->cb_tgt_found_ud);
+ if (neardalMgr->cb_tgt_found != NULL)
+ (neardalMgr->cb_tgt_found)((char *) arg_unnamed_arg0,
+ neardalMgr->cb_tgt_found_ud);
}
NEARDAL_TRACEF("NEARDAL LIB targetList contains %d elements\n",
g_list_length(adpProp->tgtList));
* neardal_adp_prv_cb_target_lost: Callback called when a NFC target is
* lost (removed)
*****************************************************************************/
-static void neardal_adp_prv_cb_target_lost(DBusGProxy *proxy,
- const char *str0,
- void *user_data)
+static void neardal_adp_prv_cb_target_lost(orgNeardTgt *proxy,
+ const gchar *arg_unnamed_arg0,
+ void *user_data)
{
- neardal_t neardalObj = user_data;
- AdpProp *adpProp = NULL;
+ AdpProp *adpProp = user_data;
+ neardal_t neardalMgr = adpProp->parent;
TgtProp *tgtProp = NULL;
errorCode_t errCode;
NEARDAL_TRACEIN();
- g_assert(neardalObj != NULL);
- g_assert(str0 != NULL);
+ g_assert(neardalMgr != NULL);
+ g_assert(arg_unnamed_arg0 != NULL);
(void) proxy; /* remove warning */
- neardal_mgr_prv_get_adapter(neardalObj, (char *) str0, &adpProp);
+ neardal_mgr_prv_get_adapter(neardalMgr, (char *) arg_unnamed_arg0,
+ &adpProp);
- NEARDAL_TRACEF("Removing target '%s'\n", str0);
+ NEARDAL_TRACEF("Removing target '%s'\n", arg_unnamed_arg0);
/* Invoking Callback 'Target Found' before adding it (otherwise
* callback 'Record Found' would be called before ) */
- errCode = neardal_mgr_prv_get_target(adpProp, (char *) str0,
+ errCode = neardal_mgr_prv_get_target(adpProp, (char *) arg_unnamed_arg0,
&tgtProp);
if (errCode == NEARDAL_SUCCESS) {
- if (neardalObj->cb_tgt_lost != NULL)
- (neardalObj->cb_tgt_lost)((char *) str0,
- neardalObj->cb_tgt_lost_ud);
+ if (neardalMgr->cb_tgt_lost != NULL)
+ (neardalMgr->cb_tgt_lost)((char *) arg_unnamed_arg0,
+ neardalMgr->cb_tgt_lost_ud);
neardal_tgt_remove(tgtProp);
- adpProp->tgtList = g_list_remove(adpProp->tgtList,
- (gconstpointer) tgtProp);
NEARDAL_TRACEF("NEARDAL LIB targetList contains %d elements\n",
g_list_length(adpProp->tgtList));
}
* neardal_adp_prv_cb_property_changed: Callback called when a NFC target
* is found
*****************************************************************************/
-static void neardal_adp_prv_cb_property_changed(DBusGProxy *proxy,
- const char *str0,
- GValue *gvalue,
+static void neardal_adp_prv_cb_property_changed(orgNeardAdp *proxy,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1,
void *user_data)
{
- neardal_t neardalObj = user_data;
- AdpProp *adpProp = user_data;
- GPtrArray *pathsGpa = NULL;
+ neardal_t neardalMgr = user_data;
+ AdpProp *adpProp = NULL;
errorCode_t errCode = NEARDAL_ERROR_NO_TARGET;
char *tgtName = NULL;
void *clientValue = NULL;
TgtProp *tgtProp = NULL;
+ GVariant *tmp = NULL;
+ gchar **tgtArray = NULL;
+ (void) proxy; /* remove warning */
NEARDAL_TRACEIN();
- g_assert(neardalObj != NULL);
- g_assert(str0 != NULL);
+ g_assert(arg_unnamed_arg0 != NULL);
- NEARDAL_TRACEF("str0='%s'\n", str0);
- errCode = neardal_mgr_prv_get_adapter_from_proxy(neardalObj,
- proxy, &adpProp);
- if (errCode != NEARDAL_SUCCESS)
- goto error;
-
- if (!strcmp(str0, "Polling")) {
- adpProp->polling = g_value_get_boolean(gvalue);
+ neardal_mgr_prv_get_adapter_from_proxy(neardalMgr, proxy, &adpProp);
+ if (adpProp == NULL) {
+ errCode = NEARDAL_ERROR_GENERAL_ERROR;
+ goto exit;
+ }
+
+ tmp = g_variant_get_variant(arg_unnamed_arg1);
+ if (tmp == NULL) {
+ errCode = NEARDAL_ERROR_GENERAL_ERROR;
+ goto exit;
+ }
+
+ if (!strcmp(arg_unnamed_arg0, "Polling")) {
+ adpProp->polling = g_variant_get_boolean (tmp);
clientValue = GUINT_TO_POINTER(adpProp->polling);
- NEARDAL_TRACEF("neardalObj->polling=%d\n", adpProp->polling);
+ NEARDAL_TRACEF("neardalMgr->polling=%d\n", adpProp->polling);
}
- if (!strcmp(str0, "Targets")) {
+ if (!strcmp(arg_unnamed_arg0, "Targets")) {
guint tmpLen;
- if (!G_IS_VALUE(gvalue)) {
- NEARDAL_TRACE_ERR(
- "Unexpected value returned getting adapters: %s",
- G_VALUE_TYPE_NAME(&gvalue));
- errCode = NEARDAL_ERROR_DBUS;
- goto error;
- }
- if (!G_VALUE_HOLDS(gvalue, DBUS_TYPE_G_ARRAY_OF_OBJECT_PATH)) {
- NEARDAL_TRACE_ERR(
- "Unexpected type returned getting adapters: %s",
- G_VALUE_TYPE_NAME(&gvalue));
- errCode = NEARDAL_ERROR_DBUS;
- goto error;
- }
-
- /* Extract the targets arrays List from the GValue */
- pathsGpa = g_value_get_boxed(gvalue);
- errCode = NEARDAL_ERROR_NO_ADAPTER;
- if (pathsGpa == NULL)
- goto error;
-
- if (pathsGpa->len <= 0) { /* Remove all targets */
+ tgtArray = g_variant_dup_objv (tmp, &tmpLen);
+ adpProp->tgtNb = tmpLen;
+ if (tmpLen == 0) {
GList *node = NULL;
NEARDAL_TRACEF(
"Target array empty! Removing all targets\n");
while (g_list_length(adpProp->tgtList)) {
node = g_list_first(adpProp->tgtList);
tgtProp = (TgtProp *) node->data;
- neardal_adp_prv_cb_target_lost(proxy,
+ neardal_adp_prv_cb_target_lost(tgtProp->proxy,
tgtProp->name,
- user_data);
+ tgtProp->parent);
}
+ g_strfreev(tgtArray);
+
errCode = NEARDAL_SUCCESS;
goto exit;
}
-
+
+ /* Extract the targets arrays List from the GValue */
+ errCode = NEARDAL_ERROR_NO_ADAPTER;
tmpLen = 0;
- while (tmpLen < pathsGpa->len) {
+ while (tmpLen < adpProp->tgtNb) {
/* Getting last target (targets list not updated with
* targets lost */
- gvalue = g_ptr_array_index(pathsGpa, tmpLen++);
-
- if (gvalue == NULL)
- goto error;
-
- tgtName = g_strdup((const gchar *)gvalue);
-
+
+ tgtName = g_strdup(tgtArray[tmpLen++]);
+
/* TODO : for Neard Workaround, emulate 'TargetFound'
* signals */
- errCode = neardal_mgr_prv_get_adapter(neardalObj,
- tgtName,
- &adpProp);
- if (errCode != NEARDAL_SUCCESS)
- goto error;
-
errCode = neardal_mgr_prv_get_target(adpProp,
- tgtName,
- &tgtProp);
+ tgtName,
+ &tgtProp);
if (errCode == NEARDAL_ERROR_NO_TARGET) {
- neardal_adp_prv_cb_target_found(proxy,
- tgtName,
- user_data);
+ neardal_adp_prv_cb_target_found(NULL,
+ tgtName,
+ adpProp);
errCode = NEARDAL_SUCCESS;
}
}
+ g_strfreev(tgtArray);
}
- if (neardalObj->cb_adp_prop_changed != NULL)
- (neardalObj->cb_adp_prop_changed)(adpProp->name, (char *) str0,
- clientValue,
- neardalObj->cb_adp_prop_changed_ud);
+ if (neardalMgr->cb_adp_prop_changed != NULL)
+ (neardalMgr->cb_adp_prop_changed)(adpProp->name,
+ (char *) arg_unnamed_arg0,
+ clientValue,
+ neardalMgr->cb_adp_prop_changed_ud);
return;
exit:
-error:
if (errCode != NEARDAL_SUCCESS)
NEARDAL_TRACEF("Exit with error code %d:%s\n", errCode,
neardal_error_get_text(errCode));
static errorCode_t neardal_adp_prv_read_properties(AdpProp *adpProp)
{
errorCode_t errCode = NEARDAL_SUCCESS;
- GHashTable *neardAdapterPropHash = NULL;
GError *gerror = NULL;
- void *tmp = NULL;
+ GVariant *tmp = NULL;
+ GVariant *tmpOut = NULL;
+ gchar **tgtArray = NULL;
+ gsize len;
+ neardal_t neardalMgr = NULL;
NEARDAL_TRACEIN();
g_assert(adpProp != NULL);
- g_assert(adpProp->dbusProxy != NULL);
+ g_assert(adpProp->proxy != NULL);
+ neardalMgr = adpProp->parent;
+ g_assert(neardalMgr != NULL);
- org_neard_Adapter_get_properties(adpProp->dbusProxy,
- &neardAdapterPropHash,
- &gerror);
+ org_neard_adp__call_get_properties_sync(adpProp->proxy, &tmp,
+ NULL, &gerror);
if (gerror != NULL) {
errCode = NEARDAL_ERROR_DBUS_CANNOT_INVOKE_METHOD;
NEARDAL_TRACE_ERR(
goto exit;
}
- errCode = neardal_tools_prv_hashtable_get(neardAdapterPropHash,
- "Targets",
- DBUS_TYPE_G_ARRAY_OF_OBJECT_PATH,
- &tmp);
- if (errCode == NEARDAL_SUCCESS) {
- neardal_tools_prv_g_ptr_array_copy(&adpProp->tgtArray,
- tmp);
-
+ NEARDAL_TRACEF("GVariant=%s\n", g_variant_print (tmp, TRUE));
+ tmpOut = g_variant_lookup_value(tmp, "Targets", G_VARIANT_TYPE_ARRAY);
+ if (tmpOut != NULL) {
+ tgtArray = g_variant_dup_objv (tmpOut, &len);
+ adpProp->tgtNb = len;
+ if (len == 0) {
+ g_strfreev(tgtArray);
+ tgtArray = NULL;
+ } else {
+ guint len = 0;
+ char *tgtName;
+
+ while (len < adpProp->tgtNb &&
+ errCode == NEARDAL_SUCCESS) {
+ tgtName = tgtArray[len++];
+ errCode = neardal_tgt_add(neardalMgr, adpProp,
+ tgtName);
+ }
+ }
}
- errCode = neardal_tools_prv_hashtable_get(neardAdapterPropHash,
- "Polling",
- G_TYPE_BOOLEAN,
- &tmp);
- if (errCode == NEARDAL_SUCCESS)
- adpProp->polling = (gboolean) tmp;
-
- errCode = neardal_tools_prv_hashtable_get(neardAdapterPropHash,
- "Powered",
- G_TYPE_BOOLEAN,
- &tmp);
- if (errCode == NEARDAL_SUCCESS)
- adpProp->powered = (gboolean) tmp;
-
- errCode = neardal_tools_prv_hashtable_get(neardAdapterPropHash,
- "Protocols",
- G_TYPE_STRV,
- &tmp);
- if (errCode == NEARDAL_SUCCESS)
- adpProp->protocols = g_boxed_copy(G_TYPE_STRV, tmp);
-
- g_hash_table_destroy(neardAdapterPropHash);
-
+ tmpOut = g_variant_lookup_value(tmp, "Polling", G_VARIANT_TYPE_BOOLEAN);
+ if (tmpOut != NULL)
+ adpProp->polling = g_variant_get_boolean (tmpOut);
+
+ tmpOut = g_variant_lookup_value(tmp, "Powered", G_VARIANT_TYPE_BOOLEAN);
+ if (tmpOut != NULL)
+ adpProp->powered = g_variant_get_boolean (tmpOut);
+
+ tmpOut = g_variant_lookup_value(tmp, "Protocols",
+ G_VARIANT_TYPE_ARRAY);
+ if (tmpOut != NULL) {
+ adpProp->protocols = g_variant_dup_strv (tmpOut, &len);
+ adpProp->lenProtocols = len;
+ if (adpProp->lenProtocols == 0) {
+ g_strfreev(adpProp->protocols);
+ adpProp->protocols = NULL;
+ }
+ }
+
exit:
return errCode;
}
return errCode;
}
-
/******************************************************************************
* neardal_adp_init: Get Neard Manager Properties = NFC Adapters list.
* Create a DBus proxy for the first one NFC adapter if present
* Register Neard Manager signals ('PropertyChanged')
*****************************************************************************/
-static errorCode_t neardal_adp_prv_init(neardal_t neardalObj,
+static errorCode_t neardal_adp_prv_init(neardal_t neardalMgr,
AdpProp *adpProp)
{
errorCode_t errCode = NEARDAL_SUCCESS;
- char *tgtName;
NEARDAL_TRACEIN();
g_assert(adpProp != NULL);
- if (adpProp->dbusProxy != NULL) {
- dbus_g_proxy_disconnect_signal(adpProp->dbusProxy,
- NEARD_ADP_SIG_PROPCHANGED,
- G_CALLBACK(neardal_adp_prv_cb_property_changed),
- NULL);
- g_object_unref(adpProp->dbusProxy);
+ if (adpProp->proxy != NULL) {
+ g_signal_handlers_disconnect_by_func(adpProp->proxy,
+ G_CALLBACK(neardal_adp_prv_cb_property_changed),
+ NULL);
+ g_signal_handlers_disconnect_by_func(adpProp->proxy,
+ G_CALLBACK(neardal_adp_prv_cb_target_found),
+ NULL);
+ g_signal_handlers_disconnect_by_func(adpProp->proxy,
+ G_CALLBACK(neardal_adp_prv_cb_target_lost),
+ NULL);
+ g_object_unref(adpProp->proxy);
}
- adpProp->dbusProxy = NULL;
+ adpProp->proxy = NULL;
errCode = NEARDAL_ERROR_NO_ADAPTER;
if (adpProp->name == NULL)
return errCode;
- errCode = neardal_tools_prv_create_proxy(neardalObj->conn,
- &adpProp->dbusProxy,
- adpProp->name,
- NEARD_ADAPTERS_IF_NAME);
- if (errCode != NEARDAL_SUCCESS)
- return errCode;
+ adpProp->proxy = org_neard_adp__proxy_new_sync(neardalMgr->conn,
+ G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE,
+ NEARD_DBUS_SERVICE,
+ adpProp->name,
+ NULL, /* GCancellable */
+ &neardalMgr->gerror);
- errCode = neardal_adp_prv_read_properties(adpProp);
- if (errCode == NEARDAL_SUCCESS && adpProp->tgtArray->len > 0) {
- guint len = 0;
-
- while (len < adpProp->tgtArray->len &&
- errCode == NEARDAL_SUCCESS) {
- tgtName = g_ptr_array_index(adpProp->tgtArray, len++);
- errCode = neardal_tgt_add(neardalObj, tgtName);
- }
+ if (neardalMgr->gerror != NULL) {
+ NEARDAL_TRACE_ERR(
+ "Unable to create Neard Adapter Proxy (%d:%s)\n",
+ neardalMgr->gerror->code,
+ neardalMgr->gerror->message);
+ neardal_tools_prv_free_gerror(neardalMgr);
+ return NEARDAL_ERROR_DBUS_CANNOT_CREATE_PROXY;
}
- /* Register Marshaller for signals (String,Variant) */
- dbus_g_object_register_marshaller(neardal_marshal_VOID__STRING_BOXED,
- G_TYPE_NONE, G_TYPE_STRING,
- G_TYPE_VALUE, G_TYPE_INVALID);
+ errCode = neardal_adp_prv_read_properties(adpProp);
NEARDAL_TRACEF("Register Neard-Adapter Signal ");
NEARDAL_TRACE("'PropertyChanged'\n");
- dbus_g_proxy_add_signal(adpProp->dbusProxy, NEARD_ADP_SIG_PROPCHANGED,
- G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_INVALID);
- dbus_g_proxy_connect_signal(adpProp->dbusProxy,
- NEARD_ADP_SIG_PROPCHANGED,
- G_CALLBACK(neardal_adp_prv_cb_property_changed),
- neardalObj, NULL);
+ g_signal_connect(adpProp->proxy, NEARD_ADP_SIG_PROPCHANGED,
+ G_CALLBACK (neardal_adp_prv_cb_property_changed),
+ neardalMgr);
/* Register 'TargetFound', 'TargetLost' */
NEARDAL_TRACEF("Register Neard-Adapter Signal ");
NEARDAL_TRACE("'TargetFound'\n");
- dbus_g_proxy_add_signal(adpProp->dbusProxy, NEARD_ADP_SIG_TGT_FOUND,
- DBUS_TYPE_G_OBJECT_PATH, G_TYPE_INVALID);
- dbus_g_proxy_connect_signal(adpProp->dbusProxy, NEARD_ADP_SIG_TGT_FOUND,
- G_CALLBACK(neardal_adp_prv_cb_target_found), neardalObj,
- NULL);
+ g_signal_connect(adpProp->proxy, NEARD_ADP_SIG_TGT_FOUND,
+ G_CALLBACK (neardal_adp_prv_cb_target_found),
+ adpProp);
NEARDAL_TRACEF("Register Neard-Adapter Signal ");
NEARDAL_TRACE("'TargetLost'\n");
- dbus_g_proxy_add_signal(adpProp->dbusProxy, NEARD_ADP_SIG_TGT_LOST,
- DBUS_TYPE_G_OBJECT_PATH, G_TYPE_INVALID);
- dbus_g_proxy_connect_signal(adpProp->dbusProxy, NEARD_ADP_SIG_TGT_LOST,
- G_CALLBACK(neardal_adp_prv_cb_target_lost),
- neardalObj, NULL);
+ g_signal_connect(adpProp->proxy, NEARD_ADP_SIG_TGT_LOST,
+ G_CALLBACK (neardal_adp_prv_cb_target_lost),
+ adpProp);
return errCode;
}
/******************************************************************************
- * neardal_adp_release: unref DBus proxy, disconnect Neard Adapter signals
+ * neardal_adp_prv_free: unref DBus proxy, disconnect Neard Adapter signals
*****************************************************************************/
-static void neardal_adp_prv_release(AdpProp *adpProp)
+static void neardal_adp_prv_free(AdpProp **adpProp)
{
NEARDAL_TRACEIN();
- if (adpProp->dbusProxy != NULL) {
- dbus_g_proxy_disconnect_signal(adpProp->dbusProxy,
- NEARD_ADP_SIG_PROPCHANGED,
- G_CALLBACK(neardal_adp_prv_cb_property_changed),
- NULL);
- dbus_g_proxy_disconnect_signal(adpProp->dbusProxy,
- NEARD_ADP_SIG_TGT_FOUND,
- G_CALLBACK(neardal_adp_prv_cb_target_found),
- NULL);
- dbus_g_proxy_disconnect_signal(adpProp->dbusProxy,
- NEARD_ADP_SIG_TGT_LOST,
- G_CALLBACK(neardal_adp_prv_cb_target_lost),
- NULL);
- g_object_unref(adpProp->dbusProxy);
- adpProp->dbusProxy = NULL;
+ if ((*adpProp)->proxy != NULL) {
+ g_signal_handlers_disconnect_by_func((*adpProp)->proxy,
+ G_CALLBACK(neardal_adp_prv_cb_property_changed),
+ NULL);
+ g_signal_handlers_disconnect_by_func((*adpProp)->proxy,
+ G_CALLBACK(neardal_adp_prv_cb_target_found),
+ NULL);
+ g_signal_handlers_disconnect_by_func((*adpProp)->proxy,
+ G_CALLBACK(neardal_adp_prv_cb_target_lost),
+ NULL);
+ g_object_unref((*adpProp)->proxy);
+ (*adpProp)->proxy = NULL;
}
- g_free(adpProp->name);
- if (adpProp->tgtArray != NULL)
- neardal_tools_prv_g_ptr_array_free(adpProp->tgtArray);
- g_boxed_free(G_TYPE_STRV, adpProp->protocols);
- g_free(adpProp);
+ g_free((*adpProp)->name);
+// TODO remove if ((*adpProp)->tgtArray != NULL)
+// g_strfreev((*adpProp)->tgtArray);
+ if ((*adpProp)->protocols != NULL)
+ g_strfreev((*adpProp)->protocols);
+ g_free((*adpProp));
+ (*adpProp) = NULL;
}
/******************************************************************************
* neardal_get_adapters: get an array of NFC adapters (adpName) present
*****************************************************************************/
-errorCode_t neardal_get_adapters(neardal_t neardalObj, char ***array,
+errorCode_t neardal_get_adapters(neardal_t neardalMgr, char ***array,
int *len)
{
errorCode_t errCode = NEARDAL_ERROR_NO_ADAPTER;
AdpProp *adapter = NULL;
gsize size;
- if (neardalObj == NULL || array == NULL)
+ if (neardalMgr == NULL || array == NULL)
return NEARDAL_ERROR_INVALID_PARAMETER;
- adpNb = g_list_length(neardalObj->mgrProp.adpList);
+ adpNb = g_list_length(neardalMgr->prop.adpList);
if (adpNb > 0) {
errCode = NEARDAL_ERROR_NO_MEMORY;
size = (adpNb + 1) * sizeof(char *);
if (adps != NULL) {
GList *list;
while (ct < adpNb) {
- list = neardalObj->mgrProp.adpList;
+ list = neardalMgr->prop.adpList;
adapter = g_list_nth_data(list, ct);
if (adapter != NULL)
adps[ct++] = g_strdup(adapter->name);
* neardal_adp_add: add new NFC adapter, initialize DBus Proxy connection,
* register adapter signal
*****************************************************************************/
-errorCode_t neardal_adp_add(neardal_t neardalObj, char *adapterName)
+errorCode_t neardal_adp_add(neardal_t neardalMgr, char *adapterName)
{
errorCode_t errCode = NEARDAL_SUCCESS;
AdpProp *adpProp = NULL;
+ GList **adpList;
- g_assert(neardalObj != NULL);
+ g_assert(neardalMgr != NULL);
NEARDAL_TRACEF("Adding adapter:%s\n", adapterName);
adpProp = g_try_malloc0(sizeof(AdpProp));
return NEARDAL_ERROR_NO_MEMORY;
adpProp->name = g_strdup(adapterName);
- neardalObj->mgrProp.adpList = g_list_prepend(neardalObj->mgrProp.adpList,
- (gpointer) adpProp);
+ adpProp->parent = neardalMgr;
+
+ adpList = &neardalMgr->prop.adpList;
+ *adpList = g_list_prepend(*adpList, (gpointer) adpProp);
+ errCode = neardal_adp_prv_init(neardalMgr, adpProp);
+
NEARDAL_TRACEF("NEARDAL LIB adapterList contains %d elements\n",
- g_list_length(neardalObj->mgrProp.adpList));
- errCode = neardal_adp_prv_init(neardalObj, adpProp);
+ g_list_length(*adpList));
+
+ /* Invoke client cb 'adapter added' */
+ if (neardalMgr->cb_adp_added != NULL)
+ (neardalMgr->cb_adp_added)((char *) adapterName,
+ neardalMgr->cb_adp_added_ud);
return errCode;
}
/******************************************************************************
- * neardal_adp_remove: remove NFC adapter, unref DBus Proxy connection,
+ * neardal_adp_remove: remove one NFC adapter, unref DBus Proxy connection,
* unregister adapter signal
*****************************************************************************/
-errorCode_t neardal_adp_remove(neardal_t neardalObj, AdpProp *adpProp)
+errorCode_t neardal_adp_remove(neardal_t neardalMgr, AdpProp *adpProp)
{
TgtProp *tgtProp;
GList *node = NULL;
+ GList **adpList;
- g_assert(neardalObj != NULL);
+ g_assert(neardalMgr != NULL);
g_assert(adpProp != NULL);
NEARDAL_TRACEF("Removing adapter:%s\n", adpProp->name);
node = g_list_first(adpProp->tgtList);
tgtProp = (TgtProp *) node->data;
neardal_tgt_remove(tgtProp);
- adpProp->tgtList = g_list_remove(adpProp->tgtList,
- (gconstpointer) tgtProp);
}
- neardal_adp_prv_release(adpProp);
- neardalObj->mgrProp.adpList = g_list_remove(neardalObj->mgrProp.adpList,
- (gconstpointer) adpProp);
+ adpList = &neardalMgr->prop.adpList;
+ (*adpList) = g_list_remove((*adpList), (gconstpointer) adpProp);
+ neardal_adp_prv_free(&adpProp);
return NEARDAL_SUCCESS;
}
if (err != NEARDAL_SUCCESS)
goto exit;
- org_neard_Adapter_publish(adpProp->dbusProxy, hash, &gerror);
+// TODO org_neard_Adapter_publish(adpProp->proxy, hash, &gerror);
exit:
if (hash != NULL)
#ifndef __NEARDAL_ADAPTER_H
#define __NEARDAL_ADAPTER_H
+#include "neard_adapter_proxy.h"
#include "neardal_target.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
-#define NEARD_ADAPTERS_IF_NAME "org.neard.Adapter"
-#define NEARD_ADP_SIG_PROPCHANGED "PropertyChanged"
-#define NEARD_ADP_SIG_TGT_FOUND "TargetFound"
-#define NEARD_ADP_SIG_TGT_LOST "TargetLost"
+#define NEARD_ADP_IF_NAME "org.neard.Adapter"
+#define NEARD_ADP_SIG_PROPCHANGED "property-changed"
+#define NEARD_ADP_SIG_TGT_FOUND "target-found"
+#define NEARD_ADP_SIG_TGT_LOST "target-lost"
/* NEARDAL Adapter Properties */
typedef struct {
- DBusGProxy *dbusProxy; /* The proxy connected to Neard
+ orgNeardAdp *proxy; /* The proxy connected to Neard
Adapter interface */
char *name; /* DBus interface name
(as id) */
+ neardal_t parent;
gboolean polling; /* adapter polling active ? */
gboolean powered; /* adapter powered ? */
- char **protocols; /* protocols list */
- GPtrArray *tgtArray; /* temporary storage */
+ gchar **protocols; /* protocols list */
+ gsize lenProtocols;
+// gchar **tgtArray; /* temporary storage */
+ gsize tgtNb;
GList *tgtList; /* Neard adapter targets list
available */
} AdpProp;
* neardal_adp_add: add new NEARDAL adapter, initialize DBus Proxy
* connection, register adapter signal
*****************************************************************************/
-errorCode_t neardal_adp_add(neardal_t neardalObj, char *adapterName);
+errorCode_t neardal_adp_add(neardal_t neardalMgr, char *adapterName);
/******************************************************************************
* neardal_adp_remove: remove NEARDAL adapter, unref DBus Proxy
* connection, unregister adapter signal
*****************************************************************************/
-errorCode_t neardal_adp_remove(neardal_t neardalObj, AdpProp *adpProp);
+errorCode_t neardal_adp_remove(neardal_t neardalMgr, AdpProp *adpProp);
/******************************************************************************
* neardal_adp_publish: Creates and publish NDEF record to be written to
#include <stdio.h>
#include <string.h>
#include <glib.h>
-#include <dbus/dbus-glib.h>
#include <glib-object.h>
-#include "dbus/dbus.h"
-#include "neard-manager-proxy.h"
-#include "neard-adapter-proxy.h"
+#include "neard_manager_proxy.h"
+#include "neard_adapter_proxy.h"
#include "neardal.h"
#include "neardal_prv.h"
#include <glib-2.0/glib/glist.h>
#include <glib-2.0/glib/garray.h>
+#include <glib-2.0/glib/galloca.h>
/******************************************************************************
* neardal_mgr_prv_cb_property_changed: Callback called when a NFC Manager
* Property is changed
*****************************************************************************/
-static void neardal_mgr_prv_cb_property_changed(DBusGProxy *proxy,
- const char *str0,
- GValue *gvalue,
- void *user_data)
+static void neardal_mgr_prv_cb_property_changed( orgNeardMgr *proxy,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1,
+ void *user_data)
{
- neardal_t neardalObj = user_data;
+ neardal_t neardalMgr = user_data;
NEARDAL_TRACEIN();
- g_assert(neardalObj != NULL);
- g_assert(str0 != NULL);
+ g_assert(neardalMgr != NULL);
+ g_assert(arg_unnamed_arg0 != NULL);
(void) proxy; /* remove warning */
- (void) gvalue; /* remove warning */
+ (void) arg_unnamed_arg1; /* remove warning */
- NEARDAL_TRACEF("str0='%s'\n", str0);
+ NEARDAL_TRACEF("arg_unnamed_arg0='%s'\n", arg_unnamed_arg0);
+ NEARDAL_TRACEF("arg_unnamed_arg1=%s\n",
+ g_variant_print (arg_unnamed_arg1, TRUE));
/* Adapters List ignored... */
}
* neardal_mgr_prv_cb_adapter_added: Callback called when a NFC adapter is
* added
*****************************************************************************/
-static void neardal_mgr_prv_cb_adapter_added(DBusGProxy *proxy,
- const char *str0,
- void *user_data)
+static void neardal_mgr_prv_cb_adapter_added(orgNeardMgr *proxy,
+ const gchar *arg_unnamed_arg0,
+ void *user_data)
{
- neardal_t neardalObj = user_data;
+ neardal_t neardalMgr = user_data;
errorCode_t errCode = NEARDAL_SUCCESS;
NEARDAL_TRACEIN();
- g_assert(neardalObj != NULL);
- g_assert(str0 != NULL);
+ g_assert(neardalMgr != NULL);
+ g_assert(arg_unnamed_arg0 != NULL);
(void) proxy; /* remove warning */
- errCode = neardal_adp_add(neardalObj, (char *) str0);
+ errCode = neardal_adp_add(neardalMgr, (char *) arg_unnamed_arg0);
if (errCode != NEARDAL_SUCCESS)
return;
- /* Invoke client cb 'adapter added' */
- if (neardalObj->cb_adp_added != NULL)
- (neardalObj->cb_adp_added)((char *) str0,
- neardalObj->cb_adp_added_ud);
NEARDAL_TRACEF("NEARDAL LIB adapterList contains %d elements\n",
- g_list_length(neardalObj->mgrProp.adpList));
+ g_list_length(neardalMgr->prop.adpList));
}
/******************************************************************************
* neardal_mgr_prv_cb_adapter_removed: Callback called when a NFC adapter
* is removed
*****************************************************************************/
-static void neardal_mgr_prv_cb_adapter_removed(DBusGProxy *proxy,
- const char *str0,
- void *user_data)
+static void neardal_mgr_prv_cb_adapter_removed(orgNeardMgr *proxy,
+ const gchar *arg_unnamed_arg0,
+ void *user_data)
{
- neardal_t neardalObj = user_data;
+ neardal_t neardalMgr = user_data;
GList *node = NULL;
NEARDAL_TRACEIN();
- g_assert(neardalObj != NULL);
- g_assert(str0 != NULL);
+ g_assert(neardalMgr != NULL);
+ g_assert(arg_unnamed_arg0 != NULL);
(void) proxy; /* remove warning */
- node = g_list_first(neardalObj->mgrProp.adpList);
+ node = g_list_first(neardalMgr->prop.adpList);
if (node == NULL) {
- NEARDAL_TRACE_ERR("NFC adapter not found! (%s)\n", str0);
+ NEARDAL_TRACE_ERR("NFC adapter not found! (%s)\n",
+ arg_unnamed_arg0);
return;
}
- neardal_adp_remove(neardalObj, ((AdpProp *)node->data));
/* Invoke client cb 'adapter removed' */
- if (neardalObj->cb_adp_removed != NULL)
- (neardalObj->cb_adp_removed)((char *) str0,
- neardalObj->cb_adp_removed_ud);
+ if (neardalMgr->cb_adp_removed != NULL)
+ (neardalMgr->cb_adp_removed)((char *) arg_unnamed_arg0,
+ neardalMgr->cb_adp_removed_ud);
+ neardal_adp_remove(neardalMgr, ((AdpProp *)node->data));
+
NEARDAL_TRACEF("NEARDAL LIB adapterList contains %d elements\n",
- g_list_length(neardalObj->mgrProp.adpList));
+ g_list_length(neardalMgr->prop.adpList));
}
/******************************************************************************
* neardal_mgr_prv_get_all_adapters: Check if neard has an adapter
*****************************************************************************/
-static errorCode_t neardal_mgr_prv_get_all_adapters(neardal_t neardalObj,
- GPtrArray **adpArray)
+static errorCode_t neardal_mgr_prv_get_all_adapters(neardal_t neardalMgr,
+ gchar ***adpArray,
+ gsize *len)
{
- GHashTable *neardAdapterHash = NULL;
- GPtrArray *pathsGpa = NULL;
errorCode_t errCode = NEARDAL_ERROR_NO_ADAPTER;
+ GVariant *tmp = NULL;
+ GVariant *tmpOut = NULL;
- g_assert(neardalObj != NULL);
+ g_assert(neardalMgr != NULL);
g_assert(adpArray != NULL);
/* Invoking method 'GetProperties' on Neard Manager */
- if (org_neard_Manager_get_properties(neardalObj->mgrProxy,
- &neardAdapterHash,
- &neardalObj->gerror)) {
- /* Receiving a GPtrArray of GList */
+ if (org_neard_mgr__call_get_properties_sync(neardalMgr->proxy, &tmp,
+ NULL,
+ &neardalMgr->gerror)) {
NEARDAL_TRACEF("Parsing neard adapters...\n");
- errCode = neardal_tools_prv_hashtable_get(neardAdapterHash,
- NEARD_MGR_SECTION_ADAPTERS,
- DBUS_TYPE_G_ARRAY_OF_OBJECT_PATH,
- &pathsGpa);
- if (errCode != NEARDAL_SUCCESS || pathsGpa->len <= 0)
+ NEARDAL_TRACEF("GVariant=%s\n", g_variant_print (tmp, TRUE));
+
+ tmpOut = g_variant_lookup_value(tmp, "Adapters",
+ G_VARIANT_TYPE_ARRAY);
+ if (tmpOut != NULL) {
+ *adpArray = g_variant_dup_objv (tmpOut, len);
+ errCode = NEARDAL_SUCCESS;
+ } else
errCode = NEARDAL_ERROR_NO_ADAPTER;
- else
- neardal_tools_prv_g_ptr_array_copy(adpArray, pathsGpa);
-
- g_hash_table_destroy(neardAdapterHash);
} else {
errCode = NEARDAL_ERROR_DBUS_CANNOT_INVOKE_METHOD;
- NEARDAL_TRACE_ERR("%d:%s\n", neardalObj->gerror->code,
- neardalObj->gerror->message);
- neardal_tools_prv_free_gerror(neardalObj);
+ NEARDAL_TRACE_ERR("%d:%s\n", neardalMgr->gerror->code,
+ neardalMgr->gerror->message);
+ neardal_tools_prv_free_gerror(neardalMgr);
}
return errCode;
/******************************************************************************
* neardal_mgr_prv_get_adapter: Get NFC Adapter from name
*****************************************************************************/
-errorCode_t neardal_mgr_prv_get_adapter(neardal_t neardalObj,
+errorCode_t neardal_mgr_prv_get_adapter(neardal_t neardalMgr,
const char *adpName,
AdpProp **adpProp)
{
AdpProp *adapter;
GList *tmpList;
- g_assert(neardalObj != NULL);
+ g_assert(neardalMgr != NULL);
g_assert(adpProp != NULL);
- tmpList = neardalObj->mgrProp.adpList;
+ tmpList = neardalMgr->prop.adpList;
while (len < g_list_length(tmpList)) {
adapter = g_list_nth_data(tmpList, len);
if (adapter != NULL) {
/******************************************************************************
* neardal_mgr_prv_get_adapter_from_proxy: Get NFC Adapter from proxy
*****************************************************************************/
-errorCode_t neardal_mgr_prv_get_adapter_from_proxy(neardal_t neardalObj,
- DBusGProxy *adpProxy,
+errorCode_t neardal_mgr_prv_get_adapter_from_proxy(neardal_t neardalMgr,
+ orgNeardAdp *adpProxy,
AdpProp **adpProp)
{
errorCode_t errCode = NEARDAL_ERROR_NO_ADAPTER;
AdpProp *adapter;
GList *tmpList;
- g_assert(neardalObj != NULL);
+ g_assert(neardalMgr != NULL);
g_assert(adpProp != NULL);
- tmpList = neardalObj->mgrProp.adpList;
+ tmpList = neardalMgr->prop.adpList;
while (len < g_list_length(tmpList)) {
adapter = g_list_nth_data(tmpList, len);
if (adapter != NULL) {
- if (adapter->dbusProxy == adpProxy) {
+ if (adapter->proxy == adpProxy) {
*adpProp = adapter;
errCode = NEARDAL_SUCCESS;
break;
/******************************************************************************
- * neardal_mgr_init: Get Neard Manager Properties = NFC Adapters list.
+ * neardal_mgr_create: Get Neard Manager Properties = NFC Adapters list.
* Create a DBus proxy for the first one NFC adapter if present
* Register Neard Manager signals ('PropertyChanged')
*****************************************************************************/
-errorCode_t neardal_mgr_init(neardal_t neardalObj)
+errorCode_t neardal_mgr_create(neardal_t neardalMgr)
{
errorCode_t errCode;
- GPtrArray *adpArray = NULL;
+ gchar **adpArray = NULL;
+ gsize adpArrayLen;
char *adpName;
guint len;
- DBusGProxy *proxyTmp;
NEARDAL_TRACEIN();
- errCode = neardal_tools_prv_create_proxy(neardalObj->conn,
- &neardalObj->mgrProxy,
- "/", NEARD_MGR_IF_NAME);
-
- if (errCode != NEARDAL_SUCCESS)
- return errCode;
+ if (neardalMgr->proxy != NULL) {
+ g_signal_handlers_disconnect_by_func(neardalMgr->proxy,
+ G_CALLBACK(neardal_mgr_prv_cb_property_changed),
+ NULL);
+ g_signal_handlers_disconnect_by_func(neardalMgr->proxy,
+ G_CALLBACK(neardal_mgr_prv_cb_adapter_added),
+ NULL);
+ g_signal_handlers_disconnect_by_func(neardalMgr->proxy,
+ G_CALLBACK(neardal_mgr_prv_cb_adapter_removed),
+ NULL);
+ g_object_unref(neardalMgr->proxy);
+ neardalMgr->proxy = NULL;
+ }
+
+ neardalMgr->proxy = org_neard_mgr__proxy_new_sync(neardalMgr->conn,
+ G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE,
+ NEARD_DBUS_SERVICE,
+ NEARD_MGR_PATH,
+ NULL, /* GCancellable */
+ &neardalMgr->gerror);
+
+ if (neardalMgr->gerror != NULL) {
+ NEARDAL_TRACE_ERR(
+ "Unable to create Neard Manager Proxy (%d:%s)\n",
+ neardalMgr->gerror->code,
+ neardalMgr->gerror->message);
+ neardal_tools_prv_free_gerror(neardalMgr);
+ return NEARDAL_ERROR_DBUS_CANNOT_CREATE_PROXY;
+ }
- /* Check if a NFC adapter is present */
- errCode = neardal_mgr_prv_get_all_adapters(neardalObj, &adpArray);
- if (adpArray != NULL && adpArray->len > 0) {
+ /* Get and store NFC adapters (is present) */
+ errCode = neardal_mgr_prv_get_all_adapters(neardalMgr, &adpArray,
+ &adpArrayLen);
+ if (adpArray != NULL && adpArrayLen > 0) {
len = 0;
- while (len < adpArray->len && errCode == NEARDAL_SUCCESS) {
- adpName = g_ptr_array_index(adpArray, len++);
- errCode = neardal_adp_add(neardalObj, adpName);
+ while (len < adpArrayLen && errCode == NEARDAL_SUCCESS) {
+ adpName = adpArray[len++];
+ errCode = neardal_adp_add(neardalMgr, adpName);
}
- neardal_tools_prv_g_ptr_array_free(adpArray);
+ g_strfreev(adpArray);
}
- /* Register Marshaller for signals (String,Variant) */
- dbus_g_object_register_marshaller(neardal_marshal_VOID__STRING_BOXED,
- G_TYPE_NONE, G_TYPE_STRING,
- G_TYPE_VALUE, G_TYPE_INVALID);
-
-
/* Register for manager signals 'PropertyChanged(String,Variant)' */
- proxyTmp = neardalObj->mgrProxy;
NEARDAL_TRACEF("Register Neard-Manager Signal 'PropertyChanged'\n");
- dbus_g_proxy_add_signal(proxyTmp, NEARD_MGR_SIG_PROPCHANGED,
- G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_INVALID);
- dbus_g_proxy_connect_signal(proxyTmp, NEARD_MGR_SIG_PROPCHANGED,
- G_CALLBACK(neardal_mgr_prv_cb_property_changed),
- neardalObj, NULL);
-
+ g_signal_connect(neardalMgr->proxy,
+ NEARD_MGR_SIG_PROPCHANGED,
+ G_CALLBACK (neardal_mgr_prv_cb_property_changed),
+ neardalMgr);
/* Register for manager signals 'AdapterAdded(ObjectPath)' */
NEARDAL_TRACEF("Register Neard-Manager Signal 'AdapterAdded'\n");
- dbus_g_proxy_add_signal(proxyTmp, NEARD_MGR_SIG_ADP_ADDED,
- DBUS_TYPE_G_OBJECT_PATH, G_TYPE_INVALID);
- dbus_g_proxy_connect_signal(proxyTmp, NEARD_MGR_SIG_ADP_ADDED,
- G_CALLBACK(neardal_mgr_prv_cb_adapter_added),
- neardalObj, NULL);
+ g_signal_connect(neardalMgr->proxy,
+ NEARD_MGR_SIG_ADP_ADDED,
+ G_CALLBACK (neardal_mgr_prv_cb_adapter_added),
+ neardalMgr);
/* Register for manager signals 'AdapterRemoved(ObjectPath)' */
NEARDAL_TRACEF("Register Neard-Manager Signal 'AdapterRemoved'\n");
- dbus_g_proxy_add_signal(proxyTmp, NEARD_MGR_SIG_ADP_RM,
- DBUS_TYPE_G_OBJECT_PATH, G_TYPE_INVALID);
- dbus_g_proxy_connect_signal(proxyTmp, NEARD_MGR_SIG_ADP_RM,
- G_CALLBACK(neardal_mgr_prv_cb_adapter_removed),
- neardalObj, NULL);
+ g_signal_connect(neardalMgr->proxy,
+ NEARD_MGR_SIG_ADP_RM,
+ G_CALLBACK (neardal_mgr_prv_cb_adapter_removed),
+ neardalMgr);
return errCode;
}
/******************************************************************************
- * neardal_mgr_release: unref DBus proxy, disconnect Neard Manager signals
+ * neardal_mgr_destroy: unref DBus proxy, disconnect Neard Manager signals
*****************************************************************************/
-void neardal_mgr_release(neardal_t neardalObj)
+void neardal_mgr_destroy(neardal_t *neardalMgr)
{
GList *node;
- GList *tmpList;
+ GList **tmpList;
NEARDAL_TRACEIN();
/* Remove all adapters */
- tmpList = neardalObj->mgrProp.adpList;
- while (g_list_length(tmpList)) {
- node = g_list_first(tmpList);
- neardal_adp_remove(neardalObj, ((AdpProp *)node->data));
- tmpList = g_list_remove(tmpList, node->data);
+ tmpList = &(*neardalMgr)->prop.adpList;
+ while (g_list_length((*tmpList))) {
+ node = g_list_first((*tmpList));
+ neardal_adp_remove((*neardalMgr), ((AdpProp *)node->data));
}
- neardalObj->mgrProp.adpList = tmpList;
+ (*neardalMgr)->prop.adpList = (*tmpList);
- if (neardalObj->mgrProxy == NULL)
+ if ((*neardalMgr)->proxy == NULL)
return;
- dbus_g_proxy_disconnect_signal(neardalObj->mgrProxy,
- NEARD_MGR_SIG_PROPCHANGED,
+ g_signal_handlers_disconnect_by_func((*neardalMgr)->proxy,
G_CALLBACK(neardal_mgr_prv_cb_property_changed),
- NULL);
- dbus_g_proxy_disconnect_signal(neardalObj->mgrProxy,
- NEARD_MGR_SIG_ADP_ADDED,
+ NULL);
+ g_signal_handlers_disconnect_by_func((*neardalMgr)->proxy,
G_CALLBACK(neardal_mgr_prv_cb_adapter_added),
- NULL);
- dbus_g_proxy_disconnect_signal(neardalObj->mgrProxy,
- NEARD_MGR_SIG_ADP_RM,
+ NULL);
+ g_signal_handlers_disconnect_by_func((*neardalMgr)->proxy,
G_CALLBACK(neardal_mgr_prv_cb_adapter_removed),
- NULL);
- g_object_unref(neardalObj->mgrProxy);
- neardalObj->mgrProxy = NULL;
+ NULL);
+ g_object_unref((*neardalMgr)->proxy);
+ (*neardalMgr)->proxy = NULL;
+ g_free((*neardalMgr));
+ (*neardalMgr) = NULL;
}
#endif /* __cplusplus */
#define NEARD_DBUS_SERVICE "org.neard"
+#define NEARD_MGR_PATH "/"
#define NEARD_MGR_IF_NAME "org.neard.Manager"
#define NEARD_MGR_SECTION_ADAPTERS "Adapters"
-#define NEARD_MGR_SIG_PROPCHANGED "PropertyChanged"
-#define NEARD_MGR_SIG_ADP_ADDED "AdapterAdded"
-#define NEARD_MGR_SIG_ADP_RM "AdapterRemoved"
+#define NEARD_MGR_SIG_PROPCHANGED "property-changed"
+#define NEARD_MGR_SIG_ADP_ADDED "adapter-added"
+#define NEARD_MGR_SIG_ADP_RM "adapter-removed"
/* NEARDAL Manager Properties */
typedef struct {
- GList *adpList; /* List of available NEARDAL adapter */
+ GList *adpList; /* List of available adapter (AdpProp*) */
} MgrProp;
/******************************************************************************
* neardal_mgr_prv_get_adapter: Get NEARDAL Adapter from name
*****************************************************************************/
-errorCode_t neardal_mgr_prv_get_adapter(neardal_t neardalObj,
+errorCode_t neardal_mgr_prv_get_adapter(neardal_t neardalMgr,
const char *adpName,
AdpProp **adpProp);
/******************************************************************************
* neardal_mgr_prv_get_adapter_from_proxy: Get NEARDAL Adapter from proxy
*****************************************************************************/
-errorCode_t neardal_mgr_prv_get_adapter_from_proxy(neardal_t neardalObj,
- DBusGProxy *adpProxy,
+errorCode_t neardal_mgr_prv_get_adapter_from_proxy(neardal_t neardalMgr,
+ orgNeardAdp *adpProxy,
AdpProp **adpProp);
/******************************************************************************
RcdProp **rcdProp);
/******************************************************************************
- * neardal_mgr_init: Get Neard Manager Properties = NEARDAL Adapters list.
+ * neardal_mgr_create: Get Neard Manager Properties = NEARDAL Adapters list.
* Create a DBus proxy for the first one NEARDAL adapter if present
* Register Neard Manager signals ('PropertyChanged')
*****************************************************************************/
-errorCode_t neardal_mgr_init(neardal_t neardalObj);
+errorCode_t neardal_mgr_create(neardal_t neardalMgr);
/******************************************************************************
- * neardal_mgr_release: unref DBus proxy, disconnect Neard Manager signals
+ * neardal_mgr_destroy: unref DBus proxy, disconnect Neard Manager signals
*****************************************************************************/
-void neardal_mgr_release(neardal_t neardalObj);
+void neardal_mgr_destroy(neardal_t *neardalMgr);
#ifdef __cplusplus
}
#ifndef __NEARDAL_PRV_H
#define __NEARDAL_PRV_H
+#include "neard_manager_proxy.h"
#include "neardal_manager.h"
#include "neardal_tools.h"
#include "neardal_traces_prv.h"
#endif /* __cplusplus */
-/* GType for Dict(string, variant) */
-#define DBUS_TYPE_G_ARRAY_OF_OBJECT_PATH (dbus_g_type_get_collection( \
- "GPtrArray", \
- DBUS_TYPE_G_OBJECT_PATH))
-
/* NEARDAL context */
typedef struct neardalCtx {
- DBusGConnection *conn; /* The DBus connection */
- DBusGProxy *mgrProxy; /* dbus proxy to Neard Mgr */
- MgrProp mgrProp; /* Mgr Properties
- (adapter list) */
+ GDBusConnection *conn; /* DBus connection */
+ orgNeardMgr *proxy; /* Neard Mgr dbus proxy */
+ MgrProp prop; /* Mgr Properties
+ (adapter list) */
adapter_cb cb_adp_added; /* Client callback for
- 'NEARDAL adapter added' */
- void *cb_adp_added_ud; /* User data for client
- callback 'adapter added'*/
+ 'adapter added' */
+ void *cb_adp_added_ud; /* User data for
+ client callback
+ 'adapter added'*/
adapter_cb cb_adp_removed; /* Client callback for
- 'NEARDAL adapter removed' */
- void *cb_adp_removed_ud; /* User data for client
- callback 'adapter removed'*/
+ 'adapter removed' */
+ void *cb_adp_removed_ud; /* User data for
+ client callback
+ 'adapter removed'*/
adapter_prop_cb cb_adp_prop_changed; /* Client callback for
'adapter property changed' */
- void *cb_adp_prop_changed_ud;/* User data for client callback
+ void *cb_adp_prop_changed_ud;/* User data for
+ client callback
'adapter property changed' */
target_cb cb_tgt_found; /* Client callback for
- 'NEARDAL target found' */
- void *cb_tgt_found_ud; /* User data for client callback
- 'NEARDAL target found' */
+ 'target found' */
+ void *cb_tgt_found_ud; /* User data for
+ client callback
+ 'target found' */
target_cb cb_tgt_lost; /* Client callback for
- 'NEARDAL target lost' */
- void *cb_tgt_lost_ud; /* User data for client callback
- 'NEARDAL target lost' */
+ 'target lost' */
+ void *cb_tgt_lost_ud; /* User data for
+ client callback
+ 'target lost' */
record_cb cb_rcd_found; /* Client callback for
- 'NEARDAL target record found'*/
- void *cb_rcd_found_ud; /* User data for client callback
- 'NEARDAL target record found'*/
+ ' 'target record found'*/
+ void *cb_rcd_found_ud; /* User data for
+ client callback
+ 'target record found'*/
- errorCode_t ec; /* The last NEARDAL Library
- error code */
- GError *gerror; /* The last GError when
- available */
+ errorCode_t ec; /* Lastest NEARDAL error */
+ GError *gerror; /* Lastest GError if available */
} neardalCtx;
#ifdef __cplusplus
#include <stdio.h>
#include <string.h>
#include <glib.h>
-#include <dbus/dbus-glib.h>
#include <glib-object.h>
-#include "dbus/dbus.h"
-#include "neard-record-proxy.h"
+#include "neard_record_proxy.h"
#include "neardal.h"
#include "neardal_prv.h"
* neardal_rcd_prv_read_std_properties: Get Neard Record Properties for non
* smartPoster tag
*****************************************************************************/
-static errorCode_t neardal_rcd_prv_read_std_properties(GHashTable *rcdHash,
+static errorCode_t neardal_rcd_prv_read_std_properties(GVariant *value,
RcdProp *rcd)
{
- errorCode_t errCode;
- char *tmp = NULL;
-
- errCode = neardal_tools_prv_hashtable_get(rcdHash, "Type",
- G_TYPE_STRING, &tmp);
- if (errCode == NEARDAL_SUCCESS)
- rcd->type = g_strdup(tmp);
+ errorCode_t errCode = NEARDAL_SUCCESS;
+ GVariant *tmpOut = NULL;
+ tmpOut = g_variant_lookup_value(value, "Type", G_VARIANT_TYPE_STRING);
+ if (tmpOut != NULL)
+ rcd->type = g_variant_dup_string(tmpOut, NULL);
+
if (!strcmp(rcd->type, "Text")) {
- errCode = neardal_tools_prv_hashtable_get(rcdHash,
- "Representation",
- G_TYPE_STRING, &tmp);
- if (errCode == NEARDAL_SUCCESS)
- rcd->representation = g_strdup(tmp);
+ tmpOut = g_variant_lookup_value(value, "Representation",
+ G_VARIANT_TYPE_STRING);
+ if (tmpOut != NULL)
+ rcd->representation = g_variant_dup_string(tmpOut,
+ NULL);
}
if (!strcmp(rcd->type, "URI")) {
- errCode = neardal_tools_prv_hashtable_get(rcdHash, "URI",
- G_TYPE_STRING, &tmp);
- if (errCode == NEARDAL_SUCCESS)
- rcd->uri = g_strdup(tmp);
+ tmpOut = g_variant_lookup_value(value, "URI",
+ G_VARIANT_TYPE_STRING);
+ if (tmpOut != NULL)
+ rcd->uri = g_variant_dup_string(tmpOut, NULL);
}
if (!strcmp(rcd->type, "MIME Type (RFC 2046)")) {
- errCode = neardal_tools_prv_hashtable_get(rcdHash, "MIME",
- G_TYPE_STRING, &tmp);
- if (errCode == NEARDAL_SUCCESS)
- rcd->mime = g_strdup(tmp);
+ tmpOut = g_variant_lookup_value(value, "MIME",
+ G_VARIANT_TYPE_STRING);
+ if (tmpOut != NULL)
+ rcd->mime = g_variant_dup_string(tmpOut, NULL);
}
return errCode;
}
* neardal_rcd_prv_read_sp_properties: Get Neard Record Properties
* for smartPoster tag
*****************************************************************************/
-static errorCode_t neardal_rcd_prv_read_sp_properties(GHashTable *rcdHash,
+static errorCode_t neardal_rcd_prv_read_sp_properties(GVariant *value,
RcdProp *rcd)
{
/* TODO */
- (void) rcdHash; /* remove warning */
+ (void) value; /* remove warning */
(void) rcd; /* remove warning */
return NEARDAL_ERROR_GENERAL_ERROR;
static errorCode_t neardal_rcd_prv_read_properties(RcdProp *rcd)
{
errorCode_t errCode = NEARDAL_SUCCESS;
- GHashTable *rcdHash = NULL;
GError *gerror = NULL;
- char *tmp = NULL;
- gboolean dbusCall;
-
+ GVariant *tmp = NULL;
+ GVariant *tmpOut = NULL;
NEARDAL_TRACEIN();
g_assert(rcd != NULL);
- g_assert(rcd->dbusProxy != NULL);
+ g_assert(rcd->proxy != NULL);
- dbusCall = org_neard_Record_get_properties(rcd->dbusProxy, &rcdHash,
- &gerror);
- if (dbusCall != TRUE || gerror != NULL) {
+ org_neard_rcd__call_get_properties_sync(rcd->proxy, &tmp, NULL,
+ &gerror);
+ if (gerror != NULL) {
errCode = NEARDAL_ERROR_DBUS;
NEARDAL_TRACE_ERR(
"Unable to read record's properties (%d:%s)\n",
g_error_free(gerror);
return errCode;
}
+ NEARDAL_TRACEF("GVariant=%s\n", g_variant_print (tmp, TRUE));
+
+ tmpOut = g_variant_lookup_value(tmp, "Encoding", G_VARIANT_TYPE_STRING);
+ if (tmpOut != NULL)
+ rcd->encoding = g_variant_dup_string(tmpOut, NULL);
+
+ tmpOut = g_variant_lookup_value(tmp, "HandOver", G_VARIANT_TYPE_BOOLEAN);
+ if (tmpOut != NULL)
+ rcd->handOver = g_variant_get_boolean (tmpOut);
+
+ tmpOut = g_variant_lookup_value(tmp, "Language", G_VARIANT_TYPE_STRING);
+ if (tmpOut != NULL)
+ rcd->language = g_variant_dup_string(tmpOut, NULL);
+
+ tmpOut = g_variant_lookup_value(tmp, "SmartPoster",
+ G_VARIANT_TYPE_BOOLEAN);
+ if (tmpOut != NULL)
+ rcd->smartPoster = g_variant_get_boolean (tmpOut);
- errCode = neardal_tools_prv_hashtable_get(rcdHash, "Encoding",
- G_TYPE_STRING, &tmp);
- if (errCode == NEARDAL_SUCCESS)
- rcd->encoding = g_strdup(tmp);
- errCode = neardal_tools_prv_hashtable_get(rcdHash, "HandOver",
- G_TYPE_BOOLEAN,
- &rcd->handOver);
- errCode = neardal_tools_prv_hashtable_get(rcdHash, "Language",
- G_TYPE_STRING, &tmp);
- if (errCode == NEARDAL_SUCCESS)
- rcd->language = g_strdup(tmp);
- errCode = neardal_tools_prv_hashtable_get(rcdHash, "SmartPoster",
- G_TYPE_BOOLEAN,
- &rcd->smartPoster);
if (rcd->smartPoster == FALSE)
- errCode = neardal_rcd_prv_read_std_properties(rcdHash,
- rcd);
+ errCode = neardal_rcd_prv_read_std_properties(tmp, rcd);
else
- errCode = neardal_rcd_prv_read_sp_properties(rcdHash,
- rcd);
-
- g_hash_table_destroy(rcdHash);
+ errCode = neardal_rcd_prv_read_sp_properties(tmp, rcd);
return errCode;
}
* Create a DBus proxy for the first one NFC record if present
* Register Neard Manager signals ('PropertyChanged')
*****************************************************************************/
-static errorCode_t neardal_rcd_prv_init(neardal_t neardalObj,
+static errorCode_t neardal_rcd_prv_init(neardal_t neardalMgr,
RcdProp *rcd)
{
- errorCode_t errCode = NEARDAL_SUCCESS;
-
NEARDAL_TRACEIN();
g_assert(rcd != NULL);
- if (rcd->dbusProxy != NULL)
- g_object_unref(rcd->dbusProxy);
- rcd->dbusProxy = NULL;
-
- errCode = neardal_tools_prv_create_proxy(neardalObj->conn,
- &rcd->dbusProxy,
- rcd->name,
- NEARD_RECORDS_IF_NAME);
- if (errCode == NEARDAL_SUCCESS)
- errCode = neardal_rcd_prv_read_properties(rcd);
-
- return errCode;
+ if (rcd->proxy != NULL)
+ g_object_unref(rcd->proxy);
+ rcd->proxy = NULL;
+
+ rcd->proxy = org_neard_rcd__proxy_new_sync(neardalMgr->conn,
+ G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE,
+ NEARD_DBUS_SERVICE,
+ rcd->name,
+ NULL, /* GCancellable */
+ &neardalMgr->gerror);
+ if (neardalMgr->gerror != NULL) {
+ NEARDAL_TRACE_ERR(
+ "Unable to create Neard Record Proxy (%d:%s)\n",
+ neardalMgr->gerror->code,
+ neardalMgr->gerror->message);
+ neardal_tools_prv_free_gerror(neardalMgr);
+ return NEARDAL_ERROR_DBUS_CANNOT_CREATE_PROXY;
+ }
+
+ return neardal_rcd_prv_read_properties(rcd);
}
/******************************************************************************
- * neardal_rcd_release: unref DBus proxy, disconnect Neard Record signals
+ * neardal_rcd_prv_free: unref DBus proxy, disconnect Neard Record signals
*****************************************************************************/
-static void neardal_rcd_prv_release(RcdProp *rcd)
+static void neardal_rcd_prv_free(RcdProp **rcd)
{
NEARDAL_TRACEIN();
- if (rcd->dbusProxy != NULL)
- g_object_unref(rcd->dbusProxy);
- rcd->dbusProxy = NULL;
- g_free(rcd->name);
- g_free(rcd->language);
- g_free(rcd->encoding);
- g_free(rcd->mime);
- g_free(rcd->representation);
- g_free(rcd->type);
- g_free(rcd->uri);
- g_free(rcd);
+ if ((*rcd)->proxy != NULL)
+ g_object_unref((*rcd)->proxy);
+ (*rcd)->proxy = NULL;
+ g_free((*rcd)->name);
+ g_free((*rcd)->language);
+ g_free((*rcd)->encoding);
+ g_free((*rcd)->mime);
+ g_free((*rcd)->representation);
+ g_free((*rcd)->type);
+ g_free((*rcd)->uri);
+ g_free((*rcd));
+ (*rcd) = NULL;
}
+
/******************************************************************************
* neardal_rcd_prv_read_std_properties: Insert key/value in a GHashTable for
* non smartPoster tag
NEARDAL_TRACEIN();
g_assert(rcd != NULL);
- g_assert(rcd->dbusProxy != NULL);
+ g_assert(rcd->proxy != NULL);
if (rcd->smartPoster == FALSE)
errCode = neardal_rcd_prv_format_std_properties(hash, rcd);
/******************************************************************************
* neardal_get_records: get an array of target records
*****************************************************************************/
-errorCode_t neardal_get_records(neardal_t neardalObj, char *tgtName,
+errorCode_t neardal_get_records(neardal_t neardalMgr, char *tgtName,
char ***array, int *len)
{
errorCode_t errCode = NEARDAL_ERROR_NO_RECORD;
AdpProp *adpProp = NULL;
TgtProp *tgtProp = NULL;
- int rcdNb = 0;
+ int rcdLen = 0;
int ct = 0; /* counter */
char **rcds = NULL;
RcdProp *rcd = NULL;
- if (neardalObj == NULL || tgtName == NULL || array == NULL)
+ if (neardalMgr == NULL || tgtName == NULL || array == NULL)
return NEARDAL_ERROR_INVALID_PARAMETER;
- errCode = neardal_mgr_prv_get_adapter(neardalObj, tgtName,
+ errCode = neardal_mgr_prv_get_adapter(neardalMgr, tgtName,
&adpProp);
if (errCode != NEARDAL_SUCCESS)
goto exit;
goto exit;
errCode = NEARDAL_ERROR_NO_RECORD;
- rcdNb = g_list_length(tgtProp->rcdList);
- if (rcdNb <= 0)
+ rcdLen = g_list_length(tgtProp->rcdList);
+ if (rcdLen <= 0)
goto exit;
errCode = NEARDAL_ERROR_NO_MEMORY;
- rcds = g_try_malloc0((rcdNb + 1) * sizeof(char *));
+ rcds = g_try_malloc0((rcdLen + 1) * sizeof(char *));
if (rcds == NULL)
goto exit;
- while (ct < rcdNb) {
+ while (ct < rcdLen) {
rcd = g_list_nth_data(tgtProp->rcdList, ct);
if (rcd != NULL)
rcds[ct++] = g_strdup(rcd->name);
exit:
if (len != NULL)
- *len = rcdNb;
+ *len = rcdLen;
*array = rcds;
return errCode;
* neardal_rcd_add: add new NFC record, initialize DBus Proxy connection,
* register record signal
*****************************************************************************/
-errorCode_t neardal_rcd_add(neardal_t neardalObj, char *rcdName)
+errorCode_t neardal_rcd_add(neardal_t neardalMgr, void *parent,
+ char *rcdName)
{
errorCode_t errCode = NEARDAL_ERROR_NO_MEMORY;
- AdpProp *adpProp = NULL;
RcdProp *rcd = NULL;
- TgtProp *tgtProp = NULL;
-
- g_assert(neardalObj != NULL);
+ TgtProp *tgtProp = parent;
+
+ g_assert(neardalMgr != NULL);
g_assert(rcdName != NULL);
+ g_assert(parent != NULL);
NEARDAL_TRACEF("Adding record:%s\n", rcdName);
rcd = g_try_malloc0(sizeof(RcdProp));
if (rcd == NULL)
goto exit;
- rcd->name = g_strdup(rcdName);
+ rcd->name = g_strdup(rcdName);
if (rcd->name == NULL)
goto exit;
- errCode = neardal_rcd_prv_init(neardalObj, rcd);
- if (errCode != NEARDAL_SUCCESS)
- goto exit;
-
- errCode = neardal_mgr_prv_get_adapter(neardalObj, rcdName,
- &adpProp);
- if (errCode != NEARDAL_SUCCESS)
- goto exit;
-
- errCode = neardal_adp_prv_get_target(adpProp, rcdName, &tgtProp);
+ rcd->parent = tgtProp;
+
+ tgtProp->rcdList = g_list_prepend(tgtProp->rcdList, (gpointer) rcd);
+ errCode = neardal_rcd_prv_init(neardalMgr, rcd);
if (errCode != NEARDAL_SUCCESS)
goto exit;
- tgtProp->rcdList = g_list_prepend(tgtProp->rcdList, (gpointer) rcd);
NEARDAL_TRACEF("NEARDAL LIB recordList contains %d elements\n",
g_list_length(tgtProp->rcdList));
+
+ if (neardalMgr->cb_rcd_found != NULL)
+ (neardalMgr->cb_rcd_found)(rcdName,
+ neardalMgr->cb_rcd_found_ud);
errCode = NEARDAL_SUCCESS;
exit:
if (errCode != NEARDAL_SUCCESS) {
- if (rcd->name != NULL) {
- g_free(rcd->name);
- rcd->name = NULL;
- }
- if (rcd != NULL)
- g_free(rcd);
+ tgtProp->rcdList = g_list_remove(tgtProp->rcdList,
+ (gpointer) rcd);
+ neardal_rcd_prv_free(&rcd);
}
return errCode;
*****************************************************************************/
void neardal_rcd_remove(RcdProp *rcd)
{
+ TgtProp *tgtProp;
+
NEARDAL_TRACEIN();
g_assert(rcd != NULL);
+ tgtProp = rcd->parent;
NEARDAL_TRACEF("Removing record:%s\n", rcd->name);
+ tgtProp->rcdList = g_list_remove(tgtProp->rcdList,
+ (gconstpointer) rcd);
/* Remove all records */
- neardal_rcd_prv_release(rcd);
+ neardal_rcd_prv_free(&rcd);
}
#ifndef __NEARDAL_RECORD_H
#define __NEARDAL_RECORD_H
+#include "neard_record_proxy.h"
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define NEARD_RECORDS_IF_NAME "org.neard.Record"
-#define NEARD_TGT_SIG_PROPCHANGED "PropertyChanged"
/* NEARDAL Record Properties */
typedef struct {
- DBusGProxy *dbusProxy; /* proxy to Neard NFC Record
- interface */
- char *name; /* DBus interface name
- (as identifier) */
+ orgNeardRcd *proxy; /* proxy to Neard NFC Record interface */
+ char *name; /* DBus interface name (as identifier) */
+ void *parent; /* parent (target) */
char *encoding;
gboolean handOver;
* neardal_rcd_add: add new NFC record, initialize DBus Proxy connection,
* register record signal
*****************************************************************************/
-errorCode_t neardal_rcd_add(neardal_t neardalObj, char *rcdName);
+errorCode_t neardal_rcd_add(neardal_t neardalMgr, void *parent,
+ char *rcdName);
/******************************************************************************
* neardal_rcd_remove: remove NFC record, unref DBus Proxy connection,
#include <stdio.h>
#include <string.h>
#include <glib.h>
-#include <dbus/dbus-glib.h>
#include <glib-object.h>
-#include "dbus/dbus.h"
-#include "neard-target-proxy.h"
+#include "neard_target_proxy.h"
#include "neardal.h"
#include "neardal_prv.h"
* neardal_tgt_prv_cb_property_changed: Callback called when a NFC target
* property is changed
*****************************************************************************/
-static void neardal_tgt_prv_cb_property_changed(DBusGProxy *proxy,
- const char *str0,
- GValue *gvalue,
- void *user_data)
+static void neardal_tgt_prv_cb_property_changed(orgNeardTgt *proxy,
+ const gchar *arg_unnamed_arg0,
+ GVariant *arg_unnamed_arg1,
+ void *user_data)
{
- GPtrArray *pathsGpa = NULL;
- errorCode_t errCode = NEARDAL_ERROR_NO_TARGET;
- TgtProp *tgtProp = NULL;
+ errorCode_t errCode = NEARDAL_SUCCESS;
+ TgtProp *tgtProp = user_data;
(void) proxy; /* remove warning */
- (void) user_data; /* remove warning */
+ (void) arg_unnamed_arg1; /* remove warning */
NEARDAL_TRACEIN();
- if (tgtProp == NULL || str0 == NULL)
+ if (tgtProp == NULL || arg_unnamed_arg0 == NULL)
return;
- NEARDAL_TRACEF("str0='%s'\n", str0);
- if (!strcmp(str0, "Targets")) {
- if (!G_VALUE_HOLDS(gvalue, DBUS_TYPE_G_ARRAY_OF_OBJECT_PATH)) {
- NEARDAL_TRACE_ERR("Unexpected type: %s",
- G_VALUE_TYPE_NAME(&gvalue));
- errCode = NEARDAL_ERROR_DBUS;
- return;
- }
-
- /* Extract the targets arrays List from the GValue */
- errCode = NEARDAL_ERROR_NO_TARGET;
- pathsGpa = g_value_get_boxed(gvalue);
- if (pathsGpa == NULL)
- goto error;
-
- if (pathsGpa->len <= 0)
- goto error;
-
- /* Getting last target */
- gvalue = g_ptr_array_index(pathsGpa, pathsGpa->len - 1);
- if (gvalue != NULL)
- errCode = NEARDAL_SUCCESS;
- else
- errCode = NEARDAL_ERROR_NO_TARGET;
- }
+ NEARDAL_TRACEF("str0='%s'\n", arg_unnamed_arg0);
+ NEARDAL_TRACEF("arg_unnamed_arg1=%s (%s)\n",
+ g_variant_print (arg_unnamed_arg1, TRUE),
+ g_variant_get_type_string(arg_unnamed_arg1));
- return;
-
-error:
- if (errCode != NEARDAL_SUCCESS) {
- NEARDAL_TRACE_ERR("Exit with error code %d:%s\n", errCode,
- neardal_error_get_text(errCode));
- if (pathsGpa != NULL)
- g_boxed_free(G_TYPE_STRV, pathsGpa);
- }
+ NEARDAL_TRACE_ERR("Exit with error code %d:%s\n", errCode,
+ neardal_error_get_text(errCode));
return;
}
*****************************************************************************/
static errorCode_t neardal_tgt_prv_read_properties(TgtProp *tgtProp)
{
- errorCode_t errCode = NEARDAL_SUCCESS;
- GHashTable *neardTargetPropHash = NULL;
- GError *gerror = NULL;
- void *tmp = NULL;
+ errorCode_t errCode = NEARDAL_SUCCESS;
+ GError *gerror = NULL;
+ GVariant *tmp = NULL;
+ GVariant *tmpOut = NULL;
+ gsize len;
+ gchar **rcdArray = NULL;
NEARDAL_TRACEIN();
g_assert(tgtProp != NULL);
- g_assert(tgtProp->dbusProxy != NULL);
+ g_assert(tgtProp->proxy != NULL);
- org_neard_Target_get_properties(tgtProp->dbusProxy,
- &neardTargetPropHash,
- &gerror);
+ org_neard_tgt__call_get_properties_sync(tgtProp->proxy, &tmp, NULL,
+ &gerror);
if (gerror != NULL) {
errCode = NEARDAL_ERROR_DBUS_CANNOT_INVOKE_METHOD;
NEARDAL_TRACE_ERR(
g_error_free(gerror);
goto exit;
}
+ NEARDAL_TRACEF("GVariant=%s\n", g_variant_print (tmp, TRUE));
+
+ tmpOut = g_variant_lookup_value(tmp, "Records", G_VARIANT_TYPE_ARRAY);
+ if (tmpOut != NULL) {
+ rcdArray = g_variant_dup_objv (tmpOut, &len);
+ tgtProp->rcdLen = len;
+ if (len == 0) {
+ g_strfreev(rcdArray);
+ rcdArray = NULL;
+ } else {
+ guint len = 0;
+ char *rcdName;
+ AdpProp *adpProp;
+ neardal_t neardalMgr;
+
+ adpProp = tgtProp->parent;
+ neardalMgr = adpProp->parent;
+ while (len < tgtProp->rcdLen &&
+ errCode == NEARDAL_SUCCESS) {
+ rcdName = rcdArray[len++];
+ errCode = neardal_rcd_add(neardalMgr, tgtProp,
+ rcdName);
+ }
+ }
+ }
- errCode = neardal_tools_prv_hashtable_get(neardTargetPropHash,
- "Records",
- DBUS_TYPE_G_ARRAY_OF_OBJECT_PATH,
- &tmp);
- if (errCode == NEARDAL_SUCCESS)
- neardal_tools_prv_g_ptr_array_copy(&tgtProp->rcdArray, tmp);
-
- errCode = neardal_tools_prv_hashtable_get(neardTargetPropHash,
- "TagType",
- G_TYPE_STRV, &tmp);
- if (errCode == NEARDAL_SUCCESS)
- tgtProp->tagType = g_boxed_copy(G_TYPE_STRV, tmp);
-
- errCode = neardal_tools_prv_hashtable_get(neardTargetPropHash, "Type",
- G_TYPE_STRING, &tmp);
- if (errCode == NEARDAL_SUCCESS)
- tgtProp->type = g_strdup(tmp);
+ tmpOut = g_variant_lookup_value(tmp, "TagType", G_VARIANT_TYPE_ARRAY);
+ if (tmpOut != NULL) {
+ tgtProp->tagsType = g_variant_dup_strv (tmpOut, &len);
+ tgtProp->tagsTypeLen = len;
+ if (len == 0) {
+ g_strfreev(tgtProp->tagsType);
+ tgtProp->tagsType = NULL;
+ }
+ }
- errCode = neardal_tools_prv_hashtable_get(neardTargetPropHash,
- "ReadOnly", G_TYPE_BOOLEAN,
- &tmp);
- if (errCode == NEARDAL_SUCCESS)
- tgtProp->readOnly = (gboolean) tmp;
+ tmpOut = g_variant_lookup_value(tmp, "Type", G_VARIANT_TYPE_STRING);
+ if (tmpOut != NULL)
+ tgtProp->type = g_variant_dup_string(tmpOut, NULL);
- g_hash_table_destroy(neardTargetPropHash);
+ tmpOut = g_variant_lookup_value(tmp, "ReadOnly", G_VARIANT_TYPE_BOOLEAN);
+ if (tmpOut != NULL)
+ tgtProp->readOnly = g_variant_get_boolean (tmpOut);
exit:
return errCode;
* Create a DBus proxy for the first one NFC target if present
* Register Neard Manager signals ('PropertyChanged')
*****************************************************************************/
-static errorCode_t neardal_tgt_prv_init(neardal_t neardalObj,
+static errorCode_t neardal_tgt_prv_init(neardal_t neardalMgr,
TgtProp *tgtProp)
{
errorCode_t errCode = NEARDAL_SUCCESS;
- guint len = 0;
- char *rcdName;
NEARDAL_TRACEIN();
g_assert(tgtProp != NULL);
- if (tgtProp->dbusProxy != NULL) {
- dbus_g_proxy_disconnect_signal(tgtProp->dbusProxy,
- NEARD_TGT_SIG_PROPCHANGED,
- G_CALLBACK(neardal_tgt_prv_cb_property_changed),
- NULL);
- g_object_unref(tgtProp->dbusProxy);
+ if (tgtProp->proxy != NULL) {
+ g_signal_handlers_disconnect_by_func(tgtProp->proxy,
+ G_CALLBACK(neardal_tgt_prv_cb_property_changed),
+ NULL);
+ g_object_unref(tgtProp->proxy);
+ tgtProp->proxy = NULL;
+ }
+ tgtProp->proxy = NULL;
+
+ tgtProp->proxy = org_neard_tgt__proxy_new_sync(neardalMgr->conn,
+ G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE,
+ NEARD_DBUS_SERVICE,
+ tgtProp->name,
+ NULL, /* GCancellable */
+ &neardalMgr->gerror);
+ if (neardalMgr->gerror != NULL) {
+ NEARDAL_TRACE_ERR(
+ "Unable to create Neard Target Proxy (%d:%s)\n",
+ neardalMgr->gerror->code,
+ neardalMgr->gerror->message);
+ neardal_tools_prv_free_gerror(neardalMgr);
+ return NEARDAL_ERROR_DBUS_CANNOT_CREATE_PROXY;
}
- tgtProp->dbusProxy = NULL;
-
- errCode = neardal_tools_prv_create_proxy(neardalObj->conn,
- &tgtProp->dbusProxy,
- tgtProp->name,
- NEARD_TARGETS_IF_NAME);
- if (errCode != NEARDAL_SUCCESS)
- return errCode;
/* Populate Target datas... */
errCode = neardal_tgt_prv_read_properties(tgtProp);
if (errCode != NEARDAL_SUCCESS)
return errCode;
- if (tgtProp->rcdArray == NULL)
- return NEARDAL_ERROR_GENERAL_ERROR;
-
- if (tgtProp->rcdArray->len <= 0)
- return NEARDAL_ERROR_NO_TARGET;
-
- len = 0;
- while (len < tgtProp->rcdArray->len && errCode == NEARDAL_SUCCESS) {
- rcdName = tgtProp->rcdArray->pdata[len];
- errCode = neardal_rcd_add(neardalObj, rcdName);
- if (errCode == NEARDAL_SUCCESS &&
- neardalObj->cb_tgt_found != NULL)
- (neardalObj->cb_tgt_found)(tgtProp->name,
- neardalObj->cb_tgt_found_ud);
- if (neardalObj->cb_rcd_found != NULL)
- (neardalObj->cb_rcd_found)(rcdName,
- neardalObj->cb_rcd_found_ud);
- len++;
- }
-
- /* Register Marshaller for signals (String,Variant) */
- dbus_g_object_register_marshaller(neardal_marshal_VOID__STRING_BOXED,
- G_TYPE_NONE, G_TYPE_STRING,
- G_TYPE_VALUE, G_TYPE_INVALID);
-
NEARDAL_TRACEF("Register Neard-Target Signal 'PropertyChanged'\n");
- dbus_g_proxy_add_signal(tgtProp->dbusProxy, NEARD_TGT_SIG_PROPCHANGED,
- G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_INVALID);
- dbus_g_proxy_connect_signal(tgtProp->dbusProxy,
- NEARD_TGT_SIG_PROPCHANGED,
- G_CALLBACK(neardal_tgt_prv_cb_property_changed),
- neardalObj, NULL);
+ g_signal_connect(tgtProp->proxy, NEARD_TGT_SIG_PROPCHANGED,
+ G_CALLBACK (neardal_tgt_prv_cb_property_changed),
+ tgtProp);
return errCode;
}
/******************************************************************************
- * neardal_tgt_release: unref DBus proxy, disconnect Neard Target signals
+ * neardal_tgt_prv_free: unref DBus proxy, disconnect Neard Target signals
*****************************************************************************/
-static void neardal_tgt_prv_release(TgtProp *tgtProp)
+static void neardal_tgt_prv_free(TgtProp **tgtProp)
{
NEARDAL_TRACEIN();
- if (tgtProp->dbusProxy != NULL) {
- dbus_g_proxy_disconnect_signal(tgtProp->dbusProxy,
- NEARD_TGT_SIG_PROPCHANGED,
- G_CALLBACK(neardal_tgt_prv_cb_property_changed),
- NULL);
- g_object_unref(tgtProp->dbusProxy);
- tgtProp->dbusProxy = NULL;
+ if ((*tgtProp)->proxy != NULL) {
+ g_signal_handlers_disconnect_by_func((*tgtProp)->proxy,
+ G_CALLBACK(neardal_tgt_prv_cb_property_changed),
+ NULL);
+ g_object_unref((*tgtProp)->proxy);
+ (*tgtProp)->proxy = NULL;
}
- g_free(tgtProp->name);
- g_free(tgtProp->type);
- neardal_tools_prv_g_ptr_array_free(tgtProp->rcdArray);
- g_boxed_free(G_TYPE_STRV, tgtProp->tagType);
+ g_free((*tgtProp)->name);
+ g_free((*tgtProp)->type);
+ g_strfreev((*tgtProp)->tagsType);
+ g_free((*tgtProp));
+ (*tgtProp) = NULL;
}
/******************************************************************************
* neardal_get_targets: get an array of NFC targets present
*****************************************************************************/
-errorCode_t neardal_get_targets(neardal_t neardalObj, char *adpName,
+errorCode_t neardal_get_targets(neardal_t neardalMgr, char *adpName,
char ***array, int *len)
{
errorCode_t errCode = NEARDAL_ERROR_NO_TARGET;
TgtProp *target = NULL;
- if (neardalObj == NULL || adpName == NULL || array == NULL)
+ if (neardalMgr == NULL || adpName == NULL || array == NULL)
return NEARDAL_ERROR_INVALID_PARAMETER;
- errCode = neardal_mgr_prv_get_adapter(neardalObj, adpName,
+ errCode = neardal_mgr_prv_get_adapter(neardalMgr, adpName,
&adpProp);
if (errCode != NEARDAL_SUCCESS)
return errCode;
* neardal_tgt_add: add new NFC target, initialize DBus Proxy connection,
* register target signal
*****************************************************************************/
-errorCode_t neardal_tgt_add(neardal_t neardalObj, char *tgtName)
+errorCode_t neardal_tgt_add(neardal_t neardalMgr, void * parent,
+ gchar *tgtName)
{
errorCode_t errCode = NEARDAL_ERROR_NO_MEMORY;
TgtProp *tgtProp = NULL;
- AdpProp *adpProp;
+ AdpProp *adpProp = parent;
- g_assert(neardalObj != NULL);
+ g_assert(neardalMgr != NULL);
g_assert(tgtName != NULL);
NEARDAL_TRACEF("Adding target:%s\n", tgtName);
goto error;
tgtProp->name = g_strdup(tgtName);
- errCode = neardal_mgr_prv_get_adapter(neardalObj, tgtName,
- &adpProp);
- if (errCode != NEARDAL_SUCCESS)
- goto error;
+ tgtProp->parent = adpProp;
adpProp->tgtList = g_list_prepend(adpProp->tgtList, tgtProp);
- errCode = neardal_tgt_prv_init(neardalObj, tgtProp);
- if (errCode != NEARDAL_SUCCESS) {
- adpProp->tgtList = g_list_remove(adpProp->tgtList, tgtProp);
- goto error;
- }
+ errCode = neardal_tgt_prv_init(neardalMgr, tgtProp);
NEARDAL_TRACEF("NEARDAL LIB targetList contains %d elements\n",
g_list_length(adpProp->tgtList));
+
+ if (neardalMgr->cb_tgt_found != NULL)
+ (neardalMgr->cb_tgt_found)(tgtProp->name,
+ neardalMgr->cb_tgt_found_ud);
return errCode;
}
/******************************************************************************
- * neardal_tgt_remove: remove NFC target, unref DBus Proxy connection,
+ * neardal_tgt_remove: remove one NFC target, unref DBus Proxy connection,
* unregister target signal
*****************************************************************************/
void neardal_tgt_remove(TgtProp *tgtProp)
{
RcdProp *rcdProp = NULL;
GList *node;
+ AdpProp *adpProp;
g_assert(tgtProp != NULL);
while (g_list_length(tgtProp->rcdList)) {
node = g_list_first(tgtProp->rcdList);
rcdProp = (RcdProp *) node->data;
- tgtProp->rcdList = g_list_remove(tgtProp->rcdList,
- (gconstpointer) rcdProp);
neardal_rcd_remove(rcdProp);
}
- neardal_tgt_prv_release(tgtProp);
+ adpProp = tgtProp->parent;
+ adpProp->tgtList = g_list_remove(adpProp->tgtList,
+ (gconstpointer) tgtProp);
+
+ neardal_tgt_prv_free(&tgtProp);
}
#ifndef __NEARDAL_TARGET_H
#define __NEARDAL_TARGET_H
+#include "neard_target_proxy.h"
#include "neardal_record.h"
-#include <glib-2.0/glib/glist.h>
+// #include <glib-2.0/glib/gtypes.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define NEARD_TARGETS_IF_NAME "org.neard.Target"
-#define NEARD_TGT_SIG_PROPCHANGED "PropertyChanged"
+#define NEARD_TGT_SIG_PROPCHANGED "property-changed"
/* NEARDAL Target Properties */
typedef struct {
- DBusGProxy *dbusProxy; /* proxy to Neard NEARDAL Target
+ orgNeardTgt *proxy; /* proxy to Neard NEARDAL Target
interface */
char *name; /* DBus interface name
(as identifier) */
- GPtrArray *rcdArray; /* temporary storage */
+ void *parent; /* parent (adapter ) */
+
+ gchar *type;
+
+ gsize rcdLen;
GList *rcdList; /* target's records paths */
- char **tagType; /* array of tag types */
- char *type;
+
+ gchar **tagsType; /* array of tag types */
+ gsize tagsTypeLen;
gboolean readOnly; /* Read-Only flag */
} TgtProp;
* neardal_tgt_add: add new NEARDAL target, initialize DBus Proxy connection,
* register target signal
*****************************************************************************/
-errorCode_t neardal_tgt_add(neardal_t neardalObj, char *tgtName);
+errorCode_t neardal_tgt_add(neardal_t neardalMgr, void *parent,
+ gchar *tgtName);
/******************************************************************************
* neardal_tgt_remove: remove NEARDAL target, unref DBus Proxy connection,
#include <stdio.h>
#include <string.h>
#include <glib.h>
-#include <dbus/dbus-glib.h>
#include <glib-object.h>
-#include "dbus/dbus.h"
-#include "neard-manager-proxy.h"
-#include "neard-adapter-proxy.h"
+#include "neard_manager_proxy.h"
+#include "neard_adapter_proxy.h"
#include "neardal.h"
#include "neardal_prv.h"
/******************************************************************************
* neardal_tools_prv__g_ptr_array_copy: duplicate a 'GPtrArray' array
*****************************************************************************/
-static void neardal_tools_g_ptr_array_add(gpointer data, gpointer array)
-{
- char *tmp;
- tmp = g_strdup(data);
- g_ptr_array_add(array, tmp);
-}
-void neardal_tools_prv_g_ptr_array_copy(GPtrArray **target, GPtrArray *source)
-{
- if (*target == NULL)
- *target = g_ptr_array_sized_new(source->len);
- g_ptr_array_foreach(source, neardal_tools_g_ptr_array_add, *target);
-}
+// static void neardal_tools_g_ptr_array_add(gpointer data, gpointer array)
+// {
+// char *tmp;
+// tmp = g_strdup(data);
+// g_ptr_array_add(array, tmp);
+// }
+// void neardal_tools_prv_array_copy(gchar ***target, gchar **source)
+// {
+// if (*target == NULL)
+// *target = g_ptr_array_sized_new(source->len);
+// g_ptr_array_foreach(source, neardal_tools_g_ptr_array_add, *target);
+// }
/******************************************************************************
* neardal_tools_prv_g_ptr_array_free: free a 'GPtrArray' array
*****************************************************************************/
-static void neardal_tools_g_ptr_array_free_node(gpointer data, gpointer array)
-{
- (void) array; /* remove warning */
- g_free(data);
-}
-void neardal_tools_prv_g_ptr_array_free(GPtrArray *array)
-{
- g_ptr_array_foreach(array, neardal_tools_g_ptr_array_free_node, NULL);
- g_ptr_array_free(array, TRUE);
-}
-
-/******************************************************************************
- * neardal_tools_prv_create_proxy: create dbus proxy to Neard daemon
- *****************************************************************************/
-errorCode_t neardal_tools_prv_create_proxy(DBusGConnection *conn,
- DBusGProxy **oProxy, const char *path,
- const char *iface)
-{
- DBusGProxy *proxy = NULL;
- GError *gerror = NULL;
-
- g_assert(conn != NULL);
- g_assert(oProxy != NULL);
- g_assert(path != NULL);
- g_assert(iface != NULL);
-
- NEARDAL_TRACEIN();
- NEARDAL_TRACEF("Trying connection to (path:'%s', interface:'%s')...\n",
- path, iface);
- proxy = dbus_g_proxy_new_for_name_owner(conn, NEARD_DBUS_SERVICE, path,
- iface, &gerror);
- if (proxy == NULL) {
- NEARDAL_TRACE_ERR(
- "Unable to connect to (path:'%s', interface:'%s') (err:'%s')\n",
- path, iface, gerror->message);
- g_error_free(gerror);
- return NEARDAL_ERROR_DBUS_CANNOT_CREATE_PROXY;
- }
- NEARDAL_TRACEF("Connection to (path:'%s', interface:'%s') OK!\n", path,
- iface);
-/*TODO g_signal_connect (G_OBJECT (proxy), "destroy",
- * G_CALLBACK(destroy_signal), proxy); */
-
- *oProxy = proxy;
-
- return NEARDAL_SUCCESS;
-}
+// static void neardal_tools_g_ptr_array_free_node(gpointer data, gpointer array)
+// {
+// (void) array; /* remove warning */
+// g_free(data);
+// }
+// void neardal_tools_prv_g_ptr_array_free(GPtrArray *array)
+// {
+// g_ptr_array_foreach(array, neardal_tools_g_ptr_array_free_node, NULL);
+// g_ptr_array_free(array, TRUE);
+// }
/******************************************************************************
* neardal_tools_prv_free_gerror: freeing gerror in neardal context
*****************************************************************************/
-void neardal_tools_prv_free_gerror(neardal_t neardalObj)
+void neardal_tools_prv_free_gerror(neardal_t neardalMgr)
{
- g_assert(neardalObj != NULL);
+ g_assert(neardalMgr != NULL);
- if (neardalObj->gerror != NULL)
- g_error_free(neardalObj->gerror);
- neardalObj->gerror = NULL;
+ if (neardalMgr->gerror != NULL)
+ g_error_free(neardalMgr->gerror);
+ neardalMgr->gerror = NULL;
}
/******************************************************************************
return ret;
}
-
-/******************************************************************************
- * neardal_tools_prv_hashtable_get: Parse a hashtable and get value of GType
- * 'type' with a specific key
- *****************************************************************************/
-errorCode_t neardal_tools_prv_hashtable_get(GHashTable *hashTable,
- gconstpointer key, GType gtype,
- void *value)
-{
- gpointer valueGp = NULL;
- errorCode_t errCode = NEARDAL_ERROR_GENERAL_ERROR;
- gboolean found;
-
- NEARDAL_TRACEF("key'%s'=", key);
- found = g_hash_table_lookup_extended(hashTable, key, NULL, &valueGp);
- if (found == FALSE) {
- NEARDAL_TRACE_ERR("key '%s' NOT FOUND!!!\n", key);
- return errCode;
- }
-
- if (valueGp == NULL)
- goto error;
-
- if (G_VALUE_HOLDS(valueGp, gtype) != TRUE) {
- NEARDAL_TRACE_ERR(
- "Unknown GType (waiting 0x%X='%s' instead of 0x%X='%s')",
- gtype, g_type_name(gtype),
- G_VALUE_TYPE(valueGp),
- g_type_name(G_VALUE_TYPE(valueGp)));
- goto error;
- }
-
- if (value == NULL)
- goto error;
-
- switch (gtype) {
- case G_TYPE_BOOLEAN:
- *((gboolean *)value) = g_value_get_boolean(valueGp);
- NEARDAL_TRACE("(boolean) %d", *(gboolean *)value);
- errCode = NEARDAL_SUCCESS;
- break;
- case G_TYPE_STRING:
- *((const gchar * *)value) = g_value_get_string(valueGp);
- NEARDAL_TRACE("(string) %s", *(const gchar * *)value);
- errCode = NEARDAL_SUCCESS;
- break;
- default:
- if (gtype == G_TYPE_STRV) {
- void *tmp;
-
- tmp = g_value_get_boxed(valueGp);
- *((gchar ***)value) = tmp;
- NEARDAL_TRACE("(array of strings, first string =) %s",
- ((gchar **) tmp)[0]);
- errCode = NEARDAL_SUCCESS;
- break;
- }
- if (gtype == DBUS_TYPE_G_ARRAY_OF_OBJECT_PATH) {
- GPtrArray *tmp = NULL;
- tmp = g_value_get_boxed(valueGp);
-
- errCode = NEARDAL_ERROR_GENERAL_ERROR;
- if (tmp == NULL)
- break;
-
- NEARDAL_TRACE("(array of DBusGObjectPath: ");
- if (tmp->len > 0)
- NEARDAL_TRACE(
- "%d elements, first path=%s)",
- tmp->len,
- g_ptr_array_index(tmp, 0));
- else
- NEARDAL_TRACE(" (Empty!)");
- *((GPtrArray **)value) = tmp;
- errCode = NEARDAL_SUCCESS;
- break;
- }
-
- NEARDAL_TRACE_ERR(
- "Unknown GType (waiting 0x%X='%s' instead of 0x%X='%s')",
- gtype, g_type_name(gtype),
- G_VALUE_TYPE(valueGp),
- g_type_name(G_VALUE_TYPE(valueGp)));
- break;
- }
-
- NEARDAL_TRACE("\n");
-
- return errCode;
-
-error:
- NEARDAL_TRACE_ERR("key '%s' NOT FOUND!!!\n", key);
- return errCode;
-
-}
-
/******************************************************************************
* neardal_tools_create_dict: Create a GHashTable for dict_entries.
*****************************************************************************/
/******************************************************************************
* neardal_tools_prv_free_gerror: freeing gerror in neardal context
*****************************************************************************/
-void neardal_tools_prv_free_gerror(neardal_t neardalObj);
+void neardal_tools_prv_free_gerror(neardal_t neardalMgr);
/******************************************************************************
* neardal_tools_prv_cmp_path: Compare dbus path.
int neardal_tools_prv_cmp_path(const char *neardalPath, const char *reqPath);
/******************************************************************************
- * neardal_tools_prv_hashtable_get: Parse a hashtable and get value of GType
- * 'type' with a specific key
- *****************************************************************************/
-errorCode_t neardal_tools_prv_hashtable_get(GHashTable *hashTable,
- gconstpointer key, GType gtype,
- void *value);
-
-/******************************************************************************
- * neardal_tools_prv_create_proxy: create dbus proxy to Neard daemon
- *****************************************************************************/
-errorCode_t neardal_tools_prv_create_proxy(DBusGConnection *conn,
- DBusGProxy **oProxy, const char *path,
- const char *iface);
-
-/******************************************************************************
- * neardal_marshal_VOID__STRING_BOXED: marshaller function for signal
- * invocations
- *****************************************************************************/
-void neardal_marshal_VOID__STRING_BOXED(GClosure *closure,
- GValue *return_value,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-
-/******************************************************************************
- * neardal_tools_prv__g_ptr_array_copy: duplicate a 'GPtrArray' array
- *****************************************************************************/
-void neardal_tools_prv_g_ptr_array_copy(GPtrArray **target, GPtrArray *source);
-
-/******************************************************************************
- * neardal_tools_prv_g_ptr_array_free: free a 'GPtrArray' array
- *****************************************************************************/
-void neardal_tools_prv_g_ptr_array_free(GPtrArray *array);
-
-/******************************************************************************
* neardal_tools_create_dict: Create a GHashTable for dict_entries.
*****************************************************************************/
GHashTable *neardal_tools_create_dict(void);
ncl_cmd_print(stdout, "\nCommand line list\n");
for (index = 0; index < nbCmd; index++) {
+ if (0) { /* TODO: Remove */
snprintf(funcName, sizeof(funcName), "%40s",
itFunc[index].cmdName);
ncl_cmd_print(stdout, "%s :\t%s\n", funcName,
itFunc[index].helpStr);
+ } else {
+ ncl_cmd_print(stdout, "%s :\n\t%s\n\n", itFunc[index].cmdName,
+ itFunc[index].helpStr);
+ }
}
return 0;
NCL_CMD_PRINT(".. Type:\t\t'%s'\n", target.type);
NCL_CMD_PRINT(".. Number of 'Tag Type':%d\n", target.nbTagTypes);
- tagTypes = target.tagType;
+ tagTypes = target.tagsType;
if (target.nbTagTypes > 0) {
NCL_CMD_PRINT(".. Tags type[]:\t\t");
while ((*tagTypes) != NULL) {
tagTypes++;
}
NCL_CMD_PRINT("\n");
- neardal_free_array(&target.tagType);
+ neardal_free_array(&target.tagsType);
}
records = target.records;
*****************************************************************************/
static void ncl_cmd_cb_adapter_added(const char *adpName, void *user_data)
{
- neardal_t neardalObj = user_data;
+ neardal_t neardalMgr = user_data;
errorCode_t ec;
neardal_adapter adapter;
NCL_CMD_PRINTF("NFC Adapter added '%s'\n", adpName);
- ec = neardal_get_adapter_properties(neardalObj, adpName, &adapter);
+ ec = neardal_get_adapter_properties(neardalMgr, adpName, &adapter);
if (ec == NEARDAL_SUCCESS)
ncl_cmd_prv_dump_adapter(adapter);
else
static void ncl_cmd_cb_adapter_removed(const char *adpName, void * user_data)
{
- neardal_t neardalObj = user_data;
+ neardal_t neardalMgr = user_data;
- (void) neardalObj;
+ (void) neardalMgr;
NCL_CMD_PRINTF("NFC Adapter removed '%s'\n", adpName);
}
static void ncl_cmd_cb_adapter_prop_changed(char *adpName, char *propName,
void *value, void *user_data)
{
- neardal_t neardalObj = user_data;
+ neardal_t neardalMgr = user_data;
int polling;
- (void) neardalObj;
+ (void) neardalMgr;
if (!strcmp(propName, "Polling")) {
polling = (int)value;
NCL_CMD_PRINTF("Polling=%d\n", polling);
static void ncl_cmd_cb_target_found(const char *tgtName, void *user_data)
{
- neardal_t neardalObj = user_data;
+ neardal_t neardalMgr = user_data;
neardal_target target;
errorCode_t ec;
NCL_CMD_PRINTF("NFC Target found (%s)\n", tgtName);
- ec = neardal_get_target_properties(neardalObj, tgtName, &target);
+ ec = neardal_get_target_properties(neardalMgr, tgtName, &target);
if (ec == NEARDAL_SUCCESS)
ncl_cmd_prv_dump_target(target);
else
static void ncl_cmd_cb_target_lost(const char *tgtName, void *user_data)
{
- neardal_t neardalObj = user_data;
+ neardal_t neardalMgr = user_data;
NCL_CMD_PRINTF("NFC Target lost (%s)\n", tgtName);
- (void) neardalObj;
+ (void) neardalMgr;
}
static void ncl_cmd_cb_record_found(const char *rcdName, void *user_data)
{
- neardal_t neardalObj = user_data;
+ neardal_t neardalMgr = user_data;
errorCode_t ec;
neardal_record record;
NCL_CMD_PRINTF("Target Record found (%s)\n", rcdName);
- ec = neardal_get_record_properties(neardalObj, rcdName, &record);
+ ec = neardal_get_record_properties(neardalMgr, rcdName, &record);
if (ec == NEARDAL_SUCCESS) {
ncl_cmd_prv_dump_record(record);
/* NCL_CMD_PRINTF("(Re)Start Poll\n");
sleep(1);
- neardal_start_poll(neardalObj, (char *) rcdName, NULL); */
+ neardal_start_poll(neardalMgr, (char *) rcdName, NULL); */
} else
NCL_CMD_PRINTF("Read record error. (error:%d='%s').\n", ec,
neardal_error_get_text(ec));
(void) argv; /* remove warning */
/* Construct NEARDAL object */
- sNclCmdCtx.neardalObj = neardal_construct(&ec);
- if (sNclCmdCtx.neardalObj != NULL)
+ sNclCmdCtx.neardalMgr = neardal_construct(&ec);
+ if (sNclCmdCtx.neardalMgr != NULL)
NCL_CMD_PRINTF("NFC object constructed");
else
NCL_CMD_PRINTF("NFC object not constructed");
neardal_error_get_text(ec));
NCL_CMD_PRINT("\n");
- if (sNclCmdCtx.neardalObj == NULL)
+ if (sNclCmdCtx.neardalMgr == NULL)
goto exit;
nclErr = NCLERR_NOERROR;
- neardal_set_cb_adapter_added(sNclCmdCtx.neardalObj,
+ neardal_set_cb_adapter_added(sNclCmdCtx.neardalMgr,
ncl_cmd_cb_adapter_added,
- sNclCmdCtx.neardalObj);
- neardal_set_cb_adapter_removed(sNclCmdCtx.neardalObj,
+ sNclCmdCtx.neardalMgr);
+ neardal_set_cb_adapter_removed(sNclCmdCtx.neardalMgr,
ncl_cmd_cb_adapter_removed,
- sNclCmdCtx.neardalObj);
- neardal_set_cb_adapter_property_changed(sNclCmdCtx.neardalObj,
+ sNclCmdCtx.neardalMgr);
+ neardal_set_cb_adapter_property_changed(sNclCmdCtx.neardalMgr,
ncl_cmd_cb_adapter_prop_changed,
- sNclCmdCtx.neardalObj);
+ sNclCmdCtx.neardalMgr);
NCL_CMD_PRINTF("NFC adapter callback registered\n");
- neardal_set_cb_target_found(sNclCmdCtx.neardalObj,
+ neardal_set_cb_target_found(sNclCmdCtx.neardalMgr,
ncl_cmd_cb_target_found,
- sNclCmdCtx.neardalObj);
- neardal_set_cb_target_lost(sNclCmdCtx.neardalObj,
+ sNclCmdCtx.neardalMgr);
+ neardal_set_cb_target_lost(sNclCmdCtx.neardalMgr,
ncl_cmd_cb_target_lost,
- sNclCmdCtx.neardalObj);
+ sNclCmdCtx.neardalMgr);
NCL_CMD_PRINTF("NFC target registered\n");
- neardal_set_cb_record_found(sNclCmdCtx.neardalObj,
+ neardal_set_cb_record_found(sNclCmdCtx.neardalMgr,
ncl_cmd_cb_record_found,
- sNclCmdCtx.neardalObj);
+ sNclCmdCtx.neardalMgr);
NCL_CMD_PRINTF("NFC record callback registered\n");
exit:
int adpOff;
/* Check if NEARDAL object exist */
- if (sNclCmdCtx.neardalObj == NULL) {
- NCL_CMD_PRINTERR("Construct NEARDAL object...\n");
+ if (sNclCmdCtx.neardalMgr == NULL) {
+ NCL_CMD_PRINT("Construct NEARDAL object...\n");
nclErr = ncl_cmd_neardal_construct(argc, argv);
}
- if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalObj == NULL))
+ if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalMgr == NULL))
return nclErr;
- ec = neardal_get_adapters(sNclCmdCtx.neardalObj, &adpArray,
+ ec = neardal_get_adapters(sNclCmdCtx.neardalMgr, &adpArray,
&adpLen);
if (ec == NEARDAL_SUCCESS) {
adpOff = 0;
return NCLERR_PARSING_PARAMETERS;
/* Check if NEARDAL object exist */
- if (sNclCmdCtx.neardalObj == NULL) {
+ if (sNclCmdCtx.neardalMgr == NULL) {
NCL_CMD_PRINTERR("Construct NEARDAL object...\n");
nclErr = ncl_cmd_neardal_construct(argc, argv);
}
- if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalObj == NULL))
+ if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalMgr == NULL))
return nclErr;
adapterName = argv[1];
- ec = neardal_get_adapter_properties(sNclCmdCtx.neardalObj,
+ ec = neardal_get_adapter_properties(sNclCmdCtx.neardalMgr,
adapterName, &adapter);
if (ec == NEARDAL_SUCCESS)
return NCLERR_PARSING_PARAMETERS;
/* Check if NEARDAL object exist */
- if (sNclCmdCtx.neardalObj == NULL) {
+ if (sNclCmdCtx.neardalMgr == NULL) {
NCL_CMD_PRINTERR("Construct NEARDAL object...\n");
nclErr = ncl_cmd_neardal_construct(argc, argv);
}
- if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalObj == NULL))
+ if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalMgr == NULL))
return nclErr;
- ec = neardal_get_targets(sNclCmdCtx.neardalObj, argv[1],
+ ec = neardal_get_targets(sNclCmdCtx.neardalMgr, argv[1],
&tgtArray, &tgtLen);
if (ec == NEARDAL_SUCCESS) {
tgtOff = 0;
return NCLERR_PARSING_PARAMETERS;
/* Check if NEARDAL object exist */
- if (sNclCmdCtx.neardalObj == NULL) {
+ if (sNclCmdCtx.neardalMgr == NULL) {
NCL_CMD_PRINTERR("Construct NEARDAL object...\n");
nclErr = ncl_cmd_neardal_construct(argc, argv);
}
- if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalObj == NULL))
+ if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalMgr == NULL))
return nclErr;
targetName = argv[1];
- ec = neardal_get_target_properties(sNclCmdCtx.neardalObj, targetName,
+ ec = neardal_get_target_properties(sNclCmdCtx.neardalMgr, targetName,
&target);
if (ec == NEARDAL_SUCCESS)
return NCLERR_PARSING_PARAMETERS;
/* Check if NEARDAL object exist */
- if (sNclCmdCtx.neardalObj == NULL) {
+ if (sNclCmdCtx.neardalMgr == NULL) {
NCL_CMD_PRINTERR("Construct NEARDAL object...\n");
nclErr = ncl_cmd_neardal_construct(argc, argv);
}
- if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalObj == NULL))
+ if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalMgr == NULL))
return nclErr;
- ec = neardal_get_records(sNclCmdCtx.neardalObj, argv[1],
+ ec = neardal_get_records(sNclCmdCtx.neardalMgr, argv[1],
&rcdArray, &rcdLen);
if (ec == NEARDAL_SUCCESS) {
rcdOff = 0;
return NCLERR_PARSING_PARAMETERS;
/* Check if NEARDAL object exist */
- if (sNclCmdCtx.neardalObj == NULL) {
+ if (sNclCmdCtx.neardalMgr == NULL) {
NCL_CMD_PRINTERR("Construct NEARDAL object...\n");
nclErr = ncl_cmd_neardal_construct(argc, argv);
}
- if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalObj == NULL))
+ if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalMgr == NULL))
return nclErr;
recordName = argv[1];
- ec = neardal_get_record_properties(sNclCmdCtx.neardalObj, recordName,
+ ec = neardal_get_record_properties(sNclCmdCtx.neardalMgr, recordName,
&record);
if (ec == NEARDAL_SUCCESS)
ncl_cmd_prv_dump_record(record);
rcd.smartPoster = (smartPoster != 0) ? true : false;
/* Check if NEARDAL object exist */
- if (sNclCmdCtx.neardalObj == NULL) {
+ if (sNclCmdCtx.neardalMgr == NULL) {
NCL_CMD_PRINTERR("Construct NEARDAL object...\n");
nclErr = ncl_cmd_neardal_construct(argc, argv);
}
- if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalObj == NULL))
+ if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalMgr == NULL))
goto exit;
- ec = neardal_publish(sNclCmdCtx.neardalObj, &rcd);
+ ec = neardal_publish(sNclCmdCtx.neardalMgr, &rcd);
exit:
NCL_CMD_PRINT("\nExit with error code %d:%s\n", ec,
return NCLERR_PARSING_PARAMETERS;
/* Check if NEARDAL object exist */
- if (sNclCmdCtx.neardalObj == NULL) {
+ if (sNclCmdCtx.neardalMgr == NULL) {
NCL_CMD_PRINTERR("Construct NEARDAL object...\n");
nclErr = ncl_cmd_neardal_construct(argc, argv);
}
- if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalObj == NULL))
+ if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalMgr == NULL))
return nclErr;
/* Start polling if adapter present */
adpName = argv[1];
- neardal_start_poll(sNclCmdCtx.neardalObj, adpName, &ec);
+ neardal_start_poll(sNclCmdCtx.neardalMgr, adpName, &ec);
if (ec != NEARDAL_SUCCESS) {
NCL_CMD_PRINTF("NFC polling activation error:%d='%s'\n",
ec, neardal_error_get_text(ec));
return NCLERR_PARSING_PARAMETERS;
/* Check if NEARDAL object exist */
- if (sNclCmdCtx.neardalObj == NULL) {
+ if (sNclCmdCtx.neardalMgr == NULL) {
NCL_CMD_PRINTERR("Construct NEARDAL object...\n");
nclErr = ncl_cmd_neardal_construct(argc, argv);
}
- if ((nclErr != NCLERR_NOERROR) && (sNclCmdCtx.neardalObj == NULL))
+ if ((nclErr != NCLERR_NOERROR) || (sNclCmdCtx.neardalMgr == NULL))
return nclErr;
adpName = argv[1];
- neardal_stop_poll(sNclCmdCtx.neardalObj, adpName, &ec);
+ neardal_stop_poll(sNclCmdCtx.neardalMgr, adpName, &ec);
if (ec != NEARDAL_SUCCESS) {
NCL_CMD_PRINTF("Stop NFC polling error:%d='%s'.\n", ec,
neardal_error_get_text(ec));
nclCtxP = ncl_get_ctx();
/* Release NEARDAL object */
- neardal_destroy(sNclCmdCtx.neardalObj);
- sNclCmdCtx.neardalObj = NULL;
+ neardal_destroy(sNclCmdCtx.neardalMgr);
+ sNclCmdCtx.neardalMgr = NULL;
/* Quit Main Loop */
if (nclCtxP)
g_string_free(sNclCmdCtx.clBuf, TRUE);
/* Release NFC object */
- if (sNclCmdCtx.neardalObj != NULL)
- neardal_destroy(sNclCmdCtx.neardalObj);
+ if (sNclCmdCtx.neardalMgr != NULL)
+ neardal_destroy(sNclCmdCtx.neardalMgr);
}
/* Command Line Interpretor context... */
typedef struct {
/* NEARDAL Object */
- neardal_t neardalObj;
+ neardal_t neardalMgr;
/* command line interpretor context */
GString *clBuf; /* Command line buffer */