atomes 1.3.2
atomes: an atomic scale modeling tool box
Loading...
Searching...
No Matches
fr_ipcms_atomes-Instance.c
Go to the documentation of this file.
1/*
2 * This file is generated by gdbus-codegen, do not modify it.
3 *
4 * The license of this code is the same as for the D-Bus interface description
5 * it was derived from. Note that it links to GLib, so must comply with the
6 * LGPL linking clauses.
7 */
8
9#ifdef HAVE_CONFIG_H
10# include "config.h"
11#endif
12
14
15#include <string.h>
16#ifdef G_OS_UNIX
17# include <gio/gunixfdlist.h>
18#endif
19
20#ifdef G_ENABLE_DEBUG
21#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v)
22#define g_marshal_value_peek_char(v) g_value_get_schar (v)
23#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v)
24#define g_marshal_value_peek_int(v) g_value_get_int (v)
25#define g_marshal_value_peek_uint(v) g_value_get_uint (v)
26#define g_marshal_value_peek_long(v) g_value_get_long (v)
27#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v)
28#define g_marshal_value_peek_int64(v) g_value_get_int64 (v)
29#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v)
30#define g_marshal_value_peek_enum(v) g_value_get_enum (v)
31#define g_marshal_value_peek_flags(v) g_value_get_flags (v)
32#define g_marshal_value_peek_float(v) g_value_get_float (v)
33#define g_marshal_value_peek_double(v) g_value_get_double (v)
34#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v)
35#define g_marshal_value_peek_param(v) g_value_get_param (v)
36#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v)
37#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v)
38#define g_marshal_value_peek_object(v) g_value_get_object (v)
39#define g_marshal_value_peek_variant(v) g_value_get_variant (v)
40#else /* !G_ENABLE_DEBUG */
41/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
42 * Do not access GValues directly in your code. Instead, use the
43 * g_value_get_*() functions
44 */
45#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int
46#define g_marshal_value_peek_char(v) (v)->data[0].v_int
47#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint
48#define g_marshal_value_peek_int(v) (v)->data[0].v_int
49#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint
50#define g_marshal_value_peek_long(v) (v)->data[0].v_long
51#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong
52#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64
53#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64
54#define g_marshal_value_peek_enum(v) (v)->data[0].v_long
55#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong
56#define g_marshal_value_peek_float(v) (v)->data[0].v_float
57#define g_marshal_value_peek_double(v) (v)->data[0].v_double
58#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer
59#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer
60#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
61#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer
62#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
63#define g_marshal_value_peek_variant(v) (v)->data[0].v_pointer
64#endif /* !G_ENABLE_DEBUG */
65
66typedef struct
67{
68 GDBusArgInfo parent_struct;
69 gboolean use_gvariant;
71
72typedef struct
73{
74 GDBusMethodInfo parent_struct;
75 const gchar *signal_name;
76 gboolean pass_fdlist;
78
79typedef struct
80{
81 GDBusSignalInfo parent_struct;
82 const gchar *signal_name;
84
85typedef struct
86{
87 GDBusPropertyInfo parent_struct;
88 const gchar *hyphen_name;
89 guint use_gvariant : 1;
92
93typedef struct
94{
95 GDBusInterfaceInfo parent_struct;
96 const gchar *hyphen_name;
98
99typedef struct
100{
102 guint prop_id;
103 GValue orig_value; /* the value before the change */
105
106static void
107_changed_property_free (ChangedProperty *data)
108{
109 g_value_unset (&data->orig_value);
110 g_free (data);
111}
112
113static gboolean
114_g_strv_equal0 (gchar **a, gchar **b)
115{
116 gboolean ret = FALSE;
117 guint n;
118 if (a == NULL && b == NULL)
119 {
120 ret = TRUE;
121 goto out;
122 }
123 if (a == NULL || b == NULL)
124 goto out;
125 if (g_strv_length (a) != g_strv_length (b))
126 goto out;
127 for (n = 0; a[n] != NULL; n++)
128 if (g_strcmp0 (a[n], b[n]) != 0)
129 goto out;
130 ret = TRUE;
131out:
132 return ret;
133}
134
135static gboolean
136_g_variant_equal0 (GVariant *a, GVariant *b)
137{
138 gboolean ret = FALSE;
139 if (a == NULL && b == NULL)
140 {
141 ret = TRUE;
142 goto out;
143 }
144 if (a == NULL || b == NULL)
145 goto out;
146 ret = g_variant_equal (a, b);
147out:
148 return ret;
149}
150
151G_GNUC_UNUSED static gboolean
152_g_value_equal (const GValue *a, const GValue *b)
153{
154 gboolean ret = FALSE;
155 g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
156 switch (G_VALUE_TYPE (a))
157 {
158 case G_TYPE_BOOLEAN:
159 ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
160 break;
161 case G_TYPE_UCHAR:
162 ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
163 break;
164 case G_TYPE_INT:
165 ret = (g_value_get_int (a) == g_value_get_int (b));
166 break;
167 case G_TYPE_UINT:
168 ret = (g_value_get_uint (a) == g_value_get_uint (b));
169 break;
170 case G_TYPE_INT64:
171 ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
172 break;
173 case G_TYPE_UINT64:
174 ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
175 break;
176 case G_TYPE_DOUBLE:
177 {
178 /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
179 gdouble da = g_value_get_double (a);
180 gdouble db = g_value_get_double (b);
181 ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
182 }
183 break;
184 case G_TYPE_STRING:
185 ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
186 break;
187 case G_TYPE_VARIANT:
188 ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
189 break;
190 default:
191 if (G_VALUE_TYPE (a) == G_TYPE_STRV)
192 ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
193 else
194 g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
195 break;
196 }
197 return ret;
198}
199
200static void
201_g_dbus_codegen_marshal_BOOLEAN__OBJECT_STRING (
202 GClosure *closure,
203 GValue *return_value,
204 unsigned int n_param_values,
205 const GValue *param_values,
206 void *invocation_hint G_GNUC_UNUSED,
207 void *marshal_data)
208{
209 typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectStringFunc)
210 (void *data1,
211 GDBusMethodInvocation *arg_method_invocation,
212 const gchar *arg_atomes,
213 void *data2);
214 _GDbusCodegenMarshalBoolean_ObjectStringFunc callback;
215 GCClosure *cc = (GCClosure*) closure;
216 void *data1, *data2;
217 gboolean v_return;
218
219 g_return_if_fail (return_value != NULL);
220 g_return_if_fail (n_param_values == 3);
221
222 if (G_CCLOSURE_SWAP_DATA (closure))
223 {
224 data1 = closure->data;
225 data2 = g_value_peek_pointer (param_values + 0);
226 }
227 else
228 {
229 data1 = g_value_peek_pointer (param_values + 0);
230 data2 = closure->data;
231 }
232
233 callback = (_GDbusCodegenMarshalBoolean_ObjectStringFunc)
234 (marshal_data ? marshal_data : cc->callback);
235
236 v_return =
237 callback (data1,
238 g_marshal_value_peek_object (param_values + 1),
239 g_marshal_value_peek_string (param_values + 2),
240 data2);
241
242 g_value_set_boolean (return_value, v_return);
243}
244
245/* ------------------------------------------------------------------------
246 * Code for interface fr.ipcms.atomes.Instance
247 * ------------------------------------------------------------------------
248 */
249
257
258/* ---- Introspection data for fr.ipcms.atomes.Instance ---- */
259
260static const _ExtendedGDBusArgInfo _instance_method_info_open_file_IN_ARG_atomes =
261{
262 {
263 -1,
264 (gchar *) "atomes",
265 (gchar *) "s",
266 NULL
267 },
268 FALSE
269};
270
271static const GDBusArgInfo * const _instance_method_info_open_file_IN_ARG_pointers[] =
272{
273 &_instance_method_info_open_file_IN_ARG_atomes.parent_struct,
274 NULL
275};
276
277static const _ExtendedGDBusMethodInfo _instance_method_info_open_file =
278{
279 {
280 -1,
281 (gchar *) "OpenFile",
282 (GDBusArgInfo **) &_instance_method_info_open_file_IN_ARG_pointers,
283 NULL,
284 NULL
285 },
286 "handle-open-file",
287 FALSE
288};
289
290static const GDBusMethodInfo * const _instance_method_info_pointers[] =
291{
292 &_instance_method_info_open_file.parent_struct,
293 NULL
294};
295
296static const _ExtendedGDBusInterfaceInfo _instance_interface_info =
297{
298 {
299 -1,
300 (gchar *) "fr.ipcms.atomes.Instance",
301 (GDBusMethodInfo **) &_instance_method_info_pointers,
302 NULL,
303 NULL,
304 NULL
305 },
306 "instance",
307};
308
309
317GDBusInterfaceInfo *
319{
320 return (GDBusInterfaceInfo *) &_instance_interface_info.parent_struct;
321}
322
333guint
334instance_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
335{
336 return property_id_begin - 1;
337}
338
339
340inline static void
341instance_method_marshal_open_file (
342 GClosure *closure,
343 GValue *return_value,
344 unsigned int n_param_values,
345 const GValue *param_values,
346 void *invocation_hint,
347 void *marshal_data)
348{
349 _g_dbus_codegen_marshal_BOOLEAN__OBJECT_STRING (closure,
350 return_value, n_param_values, param_values, invocation_hint, marshal_data);
351}
352
353
359
367
369G_DEFINE_INTERFACE (Instance, instance, G_TYPE_OBJECT)
370
371static void
372instance_default_init (InstanceIface *iface)
373{
374 /* GObject signals for incoming D-Bus method calls: */
387 g_signal_new ("handle-open-file",
388 G_TYPE_FROM_INTERFACE (iface),
389 G_SIGNAL_RUN_LAST,
390 G_STRUCT_OFFSET (InstanceIface, handle_open_file),
391 g_signal_accumulator_true_handled,
392 NULL,
393 instance_method_marshal_open_file,
394 G_TYPE_BOOLEAN,
395 2,
396 G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
397
398}
399
414void
416 Instance *proxy,
417 const gchar *arg_atomes,
418 GCancellable *cancellable,
419 GAsyncReadyCallback callback,
420 gpointer user_data)
421{
422 g_dbus_proxy_call (G_DBUS_PROXY (proxy),
423 "OpenFile",
424 g_variant_new ("(s)",
425 arg_atomes),
426 G_DBUS_CALL_FLAGS_NONE,
427 -1,
428 cancellable,
429 callback,
430 user_data);
431}
432
443gboolean
445 Instance *proxy,
446 GAsyncResult *res,
447 GError **error)
448{
449 GVariant *_ret;
450 _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
451 if (_ret == NULL)
452 goto _out;
453 g_variant_get (_ret,
454 "()");
455 g_variant_unref (_ret);
456_out:
457 return _ret != NULL;
458}
459
473gboolean
475 Instance *proxy,
476 const gchar *arg_atomes,
477 GCancellable *cancellable,
478 GError **error)
479{
480 GVariant *_ret;
481 _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
482 "OpenFile",
483 g_variant_new ("(s)",
484 arg_atomes),
485 G_DBUS_CALL_FLAGS_NONE,
486 -1,
487 cancellable,
488 error);
489 if (_ret == NULL)
490 goto _out;
491 g_variant_get (_ret,
492 "()");
493 g_variant_unref (_ret);
494_out:
495 return _ret != NULL;
496}
497
507void
509 Instance *object G_GNUC_UNUSED,
510 GDBusMethodInvocation *invocation)
511{
512 g_dbus_method_invocation_return_value (invocation,
513 g_variant_new ("()"));
514}
515
516/* ------------------------------------------------------------------------ */
517
523
530
532{
533 GData *qdata;
534};
535
536static void instance_proxy_iface_init (InstanceIface *iface);
537
538#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
539G_DEFINE_TYPE_WITH_CODE (InstanceProxy, instance_proxy, G_TYPE_DBUS_PROXY,
540 G_ADD_PRIVATE (InstanceProxy)
541 G_IMPLEMENT_INTERFACE (TYPE_INSTANCE, instance_proxy_iface_init))
542
543#else
544G_DEFINE_TYPE_WITH_CODE (InstanceProxy, instance_proxy, G_TYPE_DBUS_PROXY,
545 G_IMPLEMENT_INTERFACE (TYPE_INSTANCE, instance_proxy_iface_init))
546
547#endif
548static void
549instance_proxy_finalize (GObject *object)
550{
551 InstanceProxy *proxy = INSTANCE_PROXY (object);
552 g_datalist_clear (&proxy->priv->qdata);
553 G_OBJECT_CLASS (instance_proxy_parent_class)->finalize (object);
554}
555
556static void
557instance_proxy_get_property (GObject *object G_GNUC_UNUSED,
558 guint prop_id G_GNUC_UNUSED,
559 GValue *value G_GNUC_UNUSED,
560 GParamSpec *pspec G_GNUC_UNUSED)
561{
562}
563
564static void
565instance_proxy_set_property (GObject *object G_GNUC_UNUSED,
566 guint prop_id G_GNUC_UNUSED,
567 const GValue *value G_GNUC_UNUSED,
568 GParamSpec *pspec G_GNUC_UNUSED)
569{
570}
571
572static void
573instance_proxy_g_signal (GDBusProxy *proxy,
574 const gchar *sender_name G_GNUC_UNUSED,
575 const gchar *signal_name,
576 GVariant *parameters)
577{
579 GVariantIter iter;
580 GVariant *child;
581 GValue *paramv;
582 gsize num_params;
583 gsize n;
584 guint signal_id;
585 info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_instance_interface_info.parent_struct, signal_name);
586 if (info == NULL)
587 return;
588 num_params = g_variant_n_children (parameters);
589 paramv = g_new0 (GValue, num_params + 1);
590 g_value_init (&paramv[0], TYPE_INSTANCE);
591 g_value_set_object (&paramv[0], proxy);
592 g_variant_iter_init (&iter, parameters);
593 n = 1;
594 while ((child = g_variant_iter_next_value (&iter)) != NULL)
595 {
596 _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
597 if (arg_info->use_gvariant)
598 {
599 g_value_init (&paramv[n], G_TYPE_VARIANT);
600 g_value_set_variant (&paramv[n], child);
601 n++;
602 }
603 else
604 g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
605 g_variant_unref (child);
606 }
607 signal_id = g_signal_lookup (info->signal_name, TYPE_INSTANCE);
608 g_signal_emitv (paramv, signal_id, 0, NULL);
609 for (n = 0; n < num_params + 1; n++)
610 g_value_unset (&paramv[n]);
611 g_free (paramv);
612}
613
614static void
615instance_proxy_g_properties_changed (GDBusProxy *_proxy,
616 GVariant *changed_properties,
617 const gchar *const *invalidated_properties)
618{
619 InstanceProxy *proxy = INSTANCE_PROXY (_proxy);
620 guint n;
621 const gchar *key;
622 GVariantIter *iter;
624 g_variant_get (changed_properties, "a{sv}", &iter);
625 while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
626 {
627 info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_instance_interface_info.parent_struct, key);
628 g_datalist_remove_data (&proxy->priv->qdata, key);
629 if (info != NULL)
630 g_object_notify (G_OBJECT (proxy), info->hyphen_name);
631 }
632 g_variant_iter_free (iter);
633 for (n = 0; invalidated_properties[n] != NULL; n++)
634 {
635 info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_instance_interface_info.parent_struct, invalidated_properties[n]);
636 g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
637 if (info != NULL)
638 g_object_notify (G_OBJECT (proxy), info->hyphen_name);
639 }
640}
641
642static void
643instance_proxy_init (InstanceProxy *proxy)
644{
645#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
646 proxy->priv = instance_proxy_get_instance_private (proxy);
647#else
648 proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_INSTANCE_PROXY, InstanceProxyPrivate);
649#endif
650
651 g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), instance_interface_info ());
652}
653
654static void
655instance_proxy_class_init (InstanceProxyClass *klass)
656{
657 GObjectClass *gobject_class;
658 GDBusProxyClass *proxy_class;
659
660 gobject_class = G_OBJECT_CLASS (klass);
661 gobject_class->finalize = instance_proxy_finalize;
662 gobject_class->get_property = instance_proxy_get_property;
663 gobject_class->set_property = instance_proxy_set_property;
664
665 proxy_class = G_DBUS_PROXY_CLASS (klass);
666 proxy_class->g_signal = instance_proxy_g_signal;
667 proxy_class->g_properties_changed = instance_proxy_g_properties_changed;
668
669#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
670 g_type_class_add_private (klass, sizeof (InstanceProxyPrivate));
671#endif
672}
673
674static void
675instance_proxy_iface_init (InstanceIface *iface G_GNUC_UNUSED)
676{
677}
678
696void
698 GDBusConnection *connection,
699 GDBusProxyFlags flags,
700 const gchar *name,
701 const gchar *object_path,
702 GCancellable *cancellable,
703 GAsyncReadyCallback callback,
704 gpointer user_data)
705{
706 g_async_initable_new_async (TYPE_INSTANCE_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", "fr.ipcms.atomes.Instance", NULL);
707}
708
718Instance *
720 GAsyncResult *res,
721 GError **error)
722{
723 GObject *ret;
724 GObject *source_object;
725 source_object = g_async_result_get_source_object (res);
726 ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
727 g_object_unref (source_object);
728 if (ret != NULL)
729 return INSTANCE (ret);
730 else
731 return NULL;
732}
733
751Instance *
753 GDBusConnection *connection,
754 GDBusProxyFlags flags,
755 const gchar *name,
756 const gchar *object_path,
757 GCancellable *cancellable,
758 GError **error)
759{
760 GInitable *ret;
761 ret = g_initable_new (TYPE_INSTANCE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "fr.ipcms.atomes.Instance", NULL);
762 if (ret != NULL)
763 return INSTANCE (ret);
764 else
765 return NULL;
766}
767
768
786void
788 GBusType bus_type,
789 GDBusProxyFlags flags,
790 const gchar *name,
791 const gchar *object_path,
792 GCancellable *cancellable,
793 GAsyncReadyCallback callback,
794 gpointer user_data)
795{
796 g_async_initable_new_async (TYPE_INSTANCE_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", "fr.ipcms.atomes.Instance", NULL);
797}
798
808Instance *
810 GAsyncResult *res,
811 GError **error)
812{
813 GObject *ret;
814 GObject *source_object;
815 source_object = g_async_result_get_source_object (res);
816 ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
817 g_object_unref (source_object);
818 if (ret != NULL)
819 return INSTANCE (ret);
820 else
821 return NULL;
822}
823
841Instance *
843 GBusType bus_type,
844 GDBusProxyFlags flags,
845 const gchar *name,
846 const gchar *object_path,
847 GCancellable *cancellable,
848 GError **error)
849{
850 GInitable *ret;
851 ret = g_initable_new (TYPE_INSTANCE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "fr.ipcms.atomes.Instance", NULL);
852 if (ret != NULL)
853 return INSTANCE (ret);
854 else
855 return NULL;
856}
857
858
859/* ------------------------------------------------------------------------ */
860
866
873
882
883static void
884_instance_skeleton_handle_method_call (
885 GDBusConnection *connection G_GNUC_UNUSED,
886 const gchar *sender G_GNUC_UNUSED,
887 const gchar *object_path G_GNUC_UNUSED,
888 const gchar *interface_name,
889 const gchar *method_name,
890 GVariant *parameters,
891 GDBusMethodInvocation *invocation,
892 gpointer user_data)
893{
894 InstanceSkeleton *skeleton = INSTANCE_SKELETON (user_data);
896 GVariantIter iter;
897 GVariant *child;
898 GValue *paramv;
899 gsize num_params;
900 guint num_extra;
901 gsize n;
902 guint signal_id;
903 GValue return_value = G_VALUE_INIT;
904 info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
905 g_assert (info != NULL);
906 num_params = g_variant_n_children (parameters);
907 num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra);
908 n = 0;
909 g_value_init (&paramv[n], TYPE_INSTANCE);
910 g_value_set_object (&paramv[n++], skeleton);
911 g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
912 g_value_set_object (&paramv[n++], invocation);
913 if (info->pass_fdlist)
914 {
915#ifdef G_OS_UNIX
916 g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
917 g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
918#else
919 g_assert_not_reached ();
920#endif
921 }
922 g_variant_iter_init (&iter, parameters);
923 while ((child = g_variant_iter_next_value (&iter)) != NULL)
924 {
925 _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
926 if (arg_info->use_gvariant)
927 {
928 g_value_init (&paramv[n], G_TYPE_VARIANT);
929 g_value_set_variant (&paramv[n], child);
930 n++;
931 }
932 else
933 g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
934 g_variant_unref (child);
935 }
936 signal_id = g_signal_lookup (info->signal_name, TYPE_INSTANCE);
937 g_value_init (&return_value, G_TYPE_BOOLEAN);
938 g_signal_emitv (paramv, signal_id, 0, &return_value);
939 if (!g_value_get_boolean (&return_value))
940 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);
941 g_value_unset (&return_value);
942 for (n = 0; n < num_params + num_extra; n++)
943 g_value_unset (&paramv[n]);
944 g_free (paramv);
945}
946
947static GVariant *
948_instance_skeleton_handle_get_property (
949 GDBusConnection *connection G_GNUC_UNUSED,
950 const gchar *sender G_GNUC_UNUSED,
951 const gchar *object_path G_GNUC_UNUSED,
952 const gchar *interface_name G_GNUC_UNUSED,
953 const gchar *property_name,
954 GError **error,
955 gpointer user_data)
956{
957 InstanceSkeleton *skeleton = INSTANCE_SKELETON (user_data);
958 GValue value = G_VALUE_INIT;
959 GParamSpec *pspec;
961 GVariant *ret;
962 ret = NULL;
963 info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_instance_interface_info.parent_struct, property_name);
964 g_assert (info != NULL);
965 pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
966 if (pspec == NULL)
967 {
968 g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
969 }
970 else
971 {
972 g_value_init (&value, pspec->value_type);
973 g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
974 ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
975 g_value_unset (&value);
976 }
977 return ret;
978}
979
980static gboolean
981_instance_skeleton_handle_set_property (
982 GDBusConnection *connection G_GNUC_UNUSED,
983 const gchar *sender G_GNUC_UNUSED,
984 const gchar *object_path G_GNUC_UNUSED,
985 const gchar *interface_name G_GNUC_UNUSED,
986 const gchar *property_name,
987 GVariant *variant,
988 GError **error,
989 gpointer user_data)
990{
991 InstanceSkeleton *skeleton = INSTANCE_SKELETON (user_data);
992 GValue value = G_VALUE_INIT;
993 GParamSpec *pspec;
995 gboolean ret;
996 ret = FALSE;
997 info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_instance_interface_info.parent_struct, property_name);
998 g_assert (info != NULL);
999 pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
1000 if (pspec == NULL)
1001 {
1002 g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
1003 }
1004 else
1005 {
1006 if (info->use_gvariant)
1007 g_value_set_variant (&value, variant);
1008 else
1009 g_dbus_gvariant_to_gvalue (variant, &value);
1010 g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
1011 g_value_unset (&value);
1012 ret = TRUE;
1013 }
1014 return ret;
1015}
1016
1017static const GDBusInterfaceVTable _instance_skeleton_vtable =
1018{
1019 _instance_skeleton_handle_method_call,
1020 _instance_skeleton_handle_get_property,
1021 _instance_skeleton_handle_set_property,
1022 {NULL}
1023};
1024
1025static GDBusInterfaceInfo *
1026instance_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
1027{
1028 return instance_interface_info ();
1029}
1030
1031static GDBusInterfaceVTable *
1032instance_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
1033{
1034 return (GDBusInterfaceVTable *) &_instance_skeleton_vtable;
1035}
1036
1037static GVariant *
1038instance_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
1039{
1040 InstanceSkeleton *skeleton = INSTANCE_SKELETON (_skeleton);
1041
1042 GVariantBuilder builder;
1043 guint n;
1044#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
1045 g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
1046#else
1047 g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
1048#endif
1049 if (_instance_interface_info.parent_struct.properties == NULL)
1050 goto out;
1051 for (n = 0; _instance_interface_info.parent_struct.properties[n] != NULL; n++)
1052 {
1053 GDBusPropertyInfo *info = _instance_interface_info.parent_struct.properties[n];
1054 if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
1055 {
1056 GVariant *value;
1057 value = _instance_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)), "fr.ipcms.atomes.Instance", info->name, NULL, skeleton);
1058 if (value != NULL)
1059 {
1060 g_variant_take_ref (value);
1061 g_variant_builder_add (&builder, "{sv}", info->name, value);
1062 g_variant_unref (value);
1063 }
1064 }
1065 }
1066out:
1067 return g_variant_builder_end (&builder);
1068}
1069
1070static void
1071instance_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
1072{
1073}
1074
1075static void instance_skeleton_iface_init (InstanceIface *iface);
1076#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
1077G_DEFINE_TYPE_WITH_CODE (InstanceSkeleton, instance_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
1078 G_ADD_PRIVATE (InstanceSkeleton)
1079 G_IMPLEMENT_INTERFACE (TYPE_INSTANCE, instance_skeleton_iface_init))
1080
1081#else
1082G_DEFINE_TYPE_WITH_CODE (InstanceSkeleton, instance_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
1083 G_IMPLEMENT_INTERFACE (TYPE_INSTANCE, instance_skeleton_iface_init))
1084
1085#endif
1086static void
1087instance_skeleton_finalize (GObject *object)
1088{
1089 InstanceSkeleton *skeleton = INSTANCE_SKELETON (object);
1090 g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
1091#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
1092 /* coverity[missing_lock : SUPPRESS] */
1093 g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy);
1094#else
1095 if (skeleton->priv->changed_properties_idle_source != NULL)
1096 g_source_destroy (skeleton->priv->changed_properties_idle_source);
1097skeleton->priv->changed_properties_idle_source = NULL;
1098#endif
1099 g_main_context_unref (skeleton->priv->context);
1100 g_mutex_clear (&skeleton->priv->lock);
1101 G_OBJECT_CLASS (instance_skeleton_parent_class)->finalize (object);
1102}
1103
1104static void
1105instance_skeleton_init (InstanceSkeleton *skeleton)
1106{
1107#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
1108 skeleton->priv = instance_skeleton_get_instance_private (skeleton);
1109#else
1110 skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_INSTANCE_SKELETON, InstanceSkeletonPrivate);
1111#endif
1112
1113 g_mutex_init (&skeleton->priv->lock);
1114 skeleton->priv->context = g_main_context_ref_thread_default ();
1115}
1116
1117static void
1118instance_skeleton_class_init (InstanceSkeletonClass *klass)
1119{
1120 GObjectClass *gobject_class;
1121 GDBusInterfaceSkeletonClass *skeleton_class;
1122
1123 gobject_class = G_OBJECT_CLASS (klass);
1124 gobject_class->finalize = instance_skeleton_finalize;
1125
1126 skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
1127 skeleton_class->get_info = instance_skeleton_dbus_interface_get_info;
1128 skeleton_class->get_properties = instance_skeleton_dbus_interface_get_properties;
1129 skeleton_class->flush = instance_skeleton_dbus_interface_flush;
1130 skeleton_class->get_vtable = instance_skeleton_dbus_interface_get_vtable;
1131
1132#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
1133 g_type_class_add_private (klass, sizeof (InstanceSkeletonPrivate));
1134#endif
1135}
1136
1137static void
1138instance_skeleton_iface_init (InstanceIface *iface G_GNUC_UNUSED)
1139{
1140}
1141
1149Instance *
1151{
1152 return INSTANCE (g_object_new (TYPE_INSTANCE_SKELETON, NULL));
1153}
1154
Instance * instance_skeleton_new(void)
gboolean instance_call_open_file_finish(Instance *proxy, GAsyncResult *res, GError **error)
#define g_marshal_value_peek_string(v)
void instance_call_open_file(Instance *proxy, const gchar *arg_atomes, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
Instance * instance_proxy_new_for_bus_finish(GAsyncResult *res, GError **error)
guint instance_override_properties(GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
GDBusInterfaceInfo * instance_interface_info(void)
InstanceIface InstanceInterface
void instance_complete_open_file(Instance *object G_GNUC_UNUSED, GDBusMethodInvocation *invocation)
void instance_proxy_new_for_bus(GBusType bus_type, GDBusProxyFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
void instance_proxy_new(GDBusConnection *connection, GDBusProxyFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
Instance * instance_proxy_new_finish(GAsyncResult *res, GError **error)
gboolean instance_call_open_file_sync(Instance *proxy, const gchar *arg_atomes, GCancellable *cancellable, GError **error)
#define g_marshal_value_peek_object(v)
G_DEFINE_TYPE_WITH_CODE(InstanceProxy, instance_proxy, G_TYPE_DBUS_PROXY, G_IMPLEMENT_INTERFACE(TYPE_INSTANCE, instance_proxy_iface_init))
Instance * instance_proxy_new_for_bus_sync(GBusType bus_type, GDBusProxyFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GError **error)
Instance * instance_proxy_new_sync(GDBusConnection *connection, GDBusProxyFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GError **error)
#define INSTANCE(o)
struct _InstanceProxyPrivate InstanceProxyPrivate
#define INSTANCE_PROXY(o)
struct _InstanceSkeletonClass InstanceSkeletonClass
#define TYPE_INSTANCE
struct _Instance Instance
struct _InstanceSkeleton InstanceSkeleton
struct _InstanceSkeletonPrivate InstanceSkeletonPrivate
struct _InstanceIface InstanceIface
#define TYPE_INSTANCE_PROXY
struct _InstanceProxyClass InstanceProxyClass
#define INSTANCE_SKELETON(o)
#define TYPE_INSTANCE_SKELETON
struct _InstanceProxy InstanceProxy
InstanceProxyPrivate * priv
InstanceSkeletonPrivate * priv
const _ExtendedGDBusPropertyInfo * info
GtkWidget * res[2]
Definition w_encode.c:342