/* dbus_rawvariants_client.c generated by valac, the Vala compiler * generated from dbus_rawvariants_client.vala, do not modify */ #include #include #include #include #include #if !defined(VALA_EXTERN) #if defined(_WIN32) || defined(__CYGWIN__) #define VALA_EXTERN __declspec(dllexport) extern #elif __GNUC__ >= 4 #define VALA_EXTERN __attribute__((visibility("default"))) extern #else #define VALA_EXTERN extern #endif #endif #define TYPE_TEST (test_get_type ()) #define TEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TEST, Test)) #define IS_TEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TEST)) #define TEST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_TEST, TestIface)) typedef struct _Test Test; typedef struct _TestIface TestIface; #define TYPE_TEST_PROXY (test_proxy_get_type ()) enum { TEST_TEST_SIGNAL_SIGNAL, TEST_NUM_SIGNALS }; static guint test_signals[TEST_NUM_SIGNALS] = {0}; typedef GDBusProxy TestProxy; typedef GDBusProxyClass TestProxyClass; #define _g_free0(var) (var = (g_free (var), NULL)) #define TYPE_TEST_RAW (test_raw_get_type ()) #define TEST_RAW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TEST_RAW, TestRaw)) #define IS_TEST_RAW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TEST_RAW)) #define TEST_RAW_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_TEST_RAW, TestRawIface)) typedef struct _TestRaw TestRaw; typedef struct _TestRawIface TestRawIface; #define TYPE_TEST_RAW_PROXY (test_raw_proxy_get_type ()) enum { TEST_RAW_TEST_SIGNAL_SIGNAL, TEST_RAW_NUM_SIGNALS }; static guint test_raw_signals[TEST_RAW_NUM_SIGNALS] = {0}; typedef GDBusProxy TestRawProxy; typedef GDBusProxyClass TestRawProxyClass; #define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL))) typedef struct _Block1Data Block1Data; #define _g_main_loop_unref0(var) ((var == NULL) ? NULL : (var = (g_main_loop_unref (var), NULL))) typedef struct _Block2Data Block2Data; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); #define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; } #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); struct _TestIface { GTypeInterface parent_iface; gint (*test_method) (Test* self, gint j, gint k, GError** error); gchar* (*get_test_property) (Test* self); void (*set_test_property) (Test* self, const gchar* value); }; struct _TestRawIface { GTypeInterface parent_iface; GVariant* (*test_method) (TestRaw* self, GVariant* j, GVariant* k, GError** error); GVariant* (*get_test_property) (TestRaw* self); void (*set_test_property) (TestRaw* self, GVariant* value); }; struct _Block1Data { int _ref_count_; GMainLoop* main_loop; }; struct _Block2Data { int _ref_count_; GMainLoop* main_loop; }; VALA_EXTERN GType test_proxy_get_type (void) G_GNUC_CONST ; VALA_EXTERN guint test_register_object (void* object, GDBusConnection* connection, const gchar* path, GError** error); VALA_EXTERN GType test_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (Test, g_object_unref) VALA_EXTERN gint test_test_method (Test* self, gint j, gint k, GError** error); VALA_EXTERN gchar* test_get_test_property (Test* self); VALA_EXTERN void test_set_test_property (Test* self, const gchar* value); static GType test_get_type_once (void); static void test_proxy_g_signal (GDBusProxy* proxy, const gchar* sender_name, const gchar* signal_name, GVariant* parameters); static void _dbus_handle_test_test_signal (Test* self, GVariant* parameters); static gint test_proxy_test_method (Test* self, gint j, gint k, GError** error); static gchar* test_dbus_proxy_get_test_property (Test* self); static void test_dbus_proxy_set_test_property (Test* self, const gchar* value); static void test_proxy_test_interface_init (TestIface* iface); static void _dbus_test_test_method (Test* self, GVariant* _parameters_, GDBusMethodInvocation* invocation); static void test_dbus_interface_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); static GVariant* test_dbus_interface_get_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GError** error, gpointer user_data); static GVariant* _dbus_test_get_test_property (Test* self); static gboolean test_dbus_interface_set_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GVariant* value, GError** error, gpointer user_data); static void _dbus_test_set_test_property (Test* self, GVariant* _value); static void _dbus_test_test_signal (GObject* _sender, gint i, gpointer* _data); static void _test_unregister_object (gpointer user_data); VALA_EXTERN GType test_raw_proxy_get_type (void) G_GNUC_CONST ; VALA_EXTERN guint test_raw_register_object (void* object, GDBusConnection* connection, const gchar* path, GError** error); VALA_EXTERN GType test_raw_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (TestRaw, g_object_unref) VALA_EXTERN GVariant* test_raw_test_method (TestRaw* self, GVariant* j, GVariant* k, GError** error); VALA_EXTERN GVariant* test_raw_get_test_property (TestRaw* self); VALA_EXTERN void test_raw_set_test_property (TestRaw* self, GVariant* value); static GType test_raw_get_type_once (void); static void test_raw_proxy_g_signal (GDBusProxy* proxy, const gchar* sender_name, const gchar* signal_name, GVariant* parameters); static void _dbus_handle_test_raw_test_signal (TestRaw* self, GVariant* parameters); static GVariant* test_raw_proxy_test_method (TestRaw* self, GVariant* j, GVariant* k, GError** error); static GVariant* test_raw_dbus_proxy_get_test_property (TestRaw* self); static void test_raw_dbus_proxy_set_test_property (TestRaw* self, GVariant* value); static void test_raw_proxy_test_raw_interface_init (TestRawIface* iface); static void _dbus_test_raw_test_method (TestRaw* self, GVariant* _parameters_, GDBusMethodInvocation* invocation); static void test_raw_dbus_interface_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); static GVariant* test_raw_dbus_interface_get_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GError** error, gpointer user_data); static GVariant* _dbus_test_raw_get_test_property (TestRaw* self); static gboolean test_raw_dbus_interface_set_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GVariant* value, GError** error, gpointer user_data); static void _dbus_test_raw_set_test_property (TestRaw* self, GVariant* _value); static void _dbus_test_raw_test_signal (GObject* _sender, GVariant* i, gpointer* _data); static void _test_raw_unregister_object (gpointer user_data); VALA_EXTERN void test_raw (TestRaw* test); static Block1Data* block1_data_ref (Block1Data* _data1_); static void block1_data_unref (void * _userdata_); static void _vala_lambda0_ (Block1Data* _data1_, GVariant* var_i); static gint _variant_get1 (GVariant* value); static void __vala_lambda0__test_raw_test_signal (TestRaw* _sender, GVariant* i, gpointer self); static GVariant* _variant_new1 (gint value); static GVariant* _variant_new2 (gint value); static gint _variant_get2 (GVariant* value); static GVariant* _variant_new3 (const gchar* value); static gchar* _variant_get3 (GVariant* value); VALA_EXTERN void test (Test* test); static Block2Data* block2_data_ref (Block2Data* _data2_); static void block2_data_unref (void * _userdata_); static void _vala_lambda1_ (Block2Data* _data2_, gint i); static void __vala_lambda1__test_test_signal (Test* _sender, gint i, gpointer self); static void _vala_main (void); static const GDBusArgInfo _test_dbus_arg_info_test_method_j = {-1, "j", "i", NULL}; static const GDBusArgInfo _test_dbus_arg_info_test_method_k = {-1, "k", "i", NULL}; static const GDBusArgInfo _test_dbus_arg_info_test_method_result = {-1, "result", "i", NULL}; static const GDBusArgInfo * const _test_dbus_arg_info_test_method_in[] = {&_test_dbus_arg_info_test_method_j, &_test_dbus_arg_info_test_method_k, NULL}; static const GDBusArgInfo * const _test_dbus_arg_info_test_method_out[] = {&_test_dbus_arg_info_test_method_result, NULL}; static const GDBusMethodInfo _test_dbus_method_info_test_method = {-1, "TestMethod", (GDBusArgInfo **) (&_test_dbus_arg_info_test_method_in), (GDBusArgInfo **) (&_test_dbus_arg_info_test_method_out), NULL}; static const GDBusMethodInfo * const _test_dbus_method_info[] = {&_test_dbus_method_info_test_method, NULL}; static const GDBusArgInfo _test_dbus_arg_info_test_signal_i = {-1, "i", "i", NULL}; static const GDBusArgInfo * const _test_dbus_arg_info_test_signal[] = {&_test_dbus_arg_info_test_signal_i, NULL}; static const GDBusSignalInfo _test_dbus_signal_info_test_signal = {-1, "TestSignal", (GDBusArgInfo **) (&_test_dbus_arg_info_test_signal), NULL}; static const GDBusSignalInfo * const _test_dbus_signal_info[] = {&_test_dbus_signal_info_test_signal, NULL}; static const GDBusPropertyInfo _test_dbus_property_info_test_property = {-1, "TestProperty", "s", G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE, NULL}; static const GDBusPropertyInfo * const _test_dbus_property_info[] = {&_test_dbus_property_info_test_property, NULL}; static const GDBusInterfaceInfo _test_dbus_interface_info = {-1, "org.example.Test", (GDBusMethodInfo **) (&_test_dbus_method_info), (GDBusSignalInfo **) (&_test_dbus_signal_info), (GDBusPropertyInfo **) (&_test_dbus_property_info), NULL}; static const GDBusInterfaceVTable _test_dbus_interface_vtable = {test_dbus_interface_method_call, test_dbus_interface_get_property, test_dbus_interface_set_property}; static const GDBusArgInfo _test_raw_dbus_arg_info_test_method_j = {-1, "j", "i", NULL}; static const GDBusArgInfo _test_raw_dbus_arg_info_test_method_k = {-1, "k", "i", NULL}; static const GDBusArgInfo _test_raw_dbus_arg_info_test_method_result = {-1, "result", "i", NULL}; static const GDBusArgInfo * const _test_raw_dbus_arg_info_test_method_in[] = {&_test_raw_dbus_arg_info_test_method_j, &_test_raw_dbus_arg_info_test_method_k, NULL}; static const GDBusArgInfo * const _test_raw_dbus_arg_info_test_method_out[] = {&_test_raw_dbus_arg_info_test_method_result, NULL}; static const GDBusMethodInfo _test_raw_dbus_method_info_test_method = {-1, "TestMethod", (GDBusArgInfo **) (&_test_raw_dbus_arg_info_test_method_in), (GDBusArgInfo **) (&_test_raw_dbus_arg_info_test_method_out), NULL}; static const GDBusMethodInfo * const _test_raw_dbus_method_info[] = {&_test_raw_dbus_method_info_test_method, NULL}; static const GDBusArgInfo _test_raw_dbus_arg_info_test_signal_i = {-1, "i", "i", NULL}; static const GDBusArgInfo * const _test_raw_dbus_arg_info_test_signal[] = {&_test_raw_dbus_arg_info_test_signal_i, NULL}; static const GDBusSignalInfo _test_raw_dbus_signal_info_test_signal = {-1, "TestSignal", (GDBusArgInfo **) (&_test_raw_dbus_arg_info_test_signal), NULL}; static const GDBusSignalInfo * const _test_raw_dbus_signal_info[] = {&_test_raw_dbus_signal_info_test_signal, NULL}; static const GDBusPropertyInfo _test_raw_dbus_property_info_test_property = {-1, "TestProperty", "s", G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE, NULL}; static const GDBusPropertyInfo * const _test_raw_dbus_property_info[] = {&_test_raw_dbus_property_info_test_property, NULL}; static const GDBusInterfaceInfo _test_raw_dbus_interface_info = {-1, "org.example.Test", (GDBusMethodInfo **) (&_test_raw_dbus_method_info), (GDBusSignalInfo **) (&_test_raw_dbus_signal_info), (GDBusPropertyInfo **) (&_test_raw_dbus_property_info), NULL}; static const GDBusInterfaceVTable _test_raw_dbus_interface_vtable = {test_raw_dbus_interface_method_call, test_raw_dbus_interface_get_property, test_raw_dbus_interface_set_property}; gint test_test_method (Test* self, gint j, gint k, GError** error) { TestIface* _iface_; g_return_val_if_fail (IS_TEST (self), 0); _iface_ = TEST_GET_INTERFACE (self); if (_iface_->test_method) { return _iface_->test_method (self, j, k, error); } return -1; } gchar* test_get_test_property (Test* self) { TestIface* _iface_; g_return_val_if_fail (IS_TEST (self), NULL); _iface_ = TEST_GET_INTERFACE (self); if (_iface_->get_test_property) { return _iface_->get_test_property (self); } return NULL; } void test_set_test_property (Test* self, const gchar* value) { TestIface* _iface_; g_return_if_fail (IS_TEST (self)); _iface_ = TEST_GET_INTERFACE (self); if (_iface_->set_test_property) { _iface_->set_test_property (self, value); } } static void test_default_init (TestIface * iface, gpointer iface_data) { test_signals[TEST_TEST_SIGNAL_SIGNAL] = g_signal_new ("test-signal", TYPE_TEST, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT); } static GType test_get_type_once (void) { static const GTypeInfo g_define_type_info = { sizeof (TestIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) test_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType test_type_id; test_type_id = g_type_register_static (G_TYPE_INTERFACE, "Test", &g_define_type_info, 0); g_type_interface_add_prerequisite (test_type_id, G_TYPE_OBJECT); g_type_set_qdata (test_type_id, g_quark_from_static_string ("vala-dbus-proxy-type"), (void*) test_proxy_get_type); g_type_set_qdata (test_type_id, g_quark_from_static_string ("vala-dbus-interface-name"), "org.example.Test"); g_type_set_qdata (test_type_id, g_quark_from_static_string ("vala-dbus-interface-info"), (void*) (&_test_dbus_interface_info)); g_type_set_qdata (test_type_id, g_quark_from_static_string ("vala-dbus-register-object"), (void*) test_register_object); return test_type_id; } GType test_get_type (void) { static volatile gsize test_type_id__once = 0; if (g_once_init_enter (&test_type_id__once)) { GType test_type_id; test_type_id = test_get_type_once (); g_once_init_leave (&test_type_id__once, test_type_id); } return test_type_id__once; } G_DEFINE_TYPE_EXTENDED (TestProxy, test_proxy, G_TYPE_DBUS_PROXY, 0, G_IMPLEMENT_INTERFACE (TYPE_TEST, test_proxy_test_interface_init) ) static void test_proxy_class_init (TestProxyClass* klass) { G_DBUS_PROXY_CLASS (klass)->g_signal = test_proxy_g_signal; } static void _dbus_handle_test_test_signal (Test* self, GVariant* parameters) { GVariantIter _arguments_iter; gint i = 0; GVariant* _tmp0_; g_variant_iter_init (&_arguments_iter, parameters); _tmp0_ = g_variant_iter_next_value (&_arguments_iter); i = g_variant_get_int32 (_tmp0_); g_variant_unref (_tmp0_); g_signal_emit_by_name (self, "test-signal", i); } static void test_proxy_g_signal (GDBusProxy* proxy, const gchar* sender_name, const gchar* signal_name, GVariant* parameters) { if (strcmp (signal_name, "TestSignal") == 0) { _dbus_handle_test_test_signal ((Test*) proxy, parameters); } } static void test_proxy_init (TestProxy* self) { g_dbus_proxy_set_interface_info (G_DBUS_PROXY (self), (GDBusInterfaceInfo *) (&_test_dbus_interface_info)); } static gint test_proxy_test_method (Test* self, gint j, gint k, GError** error) { GDBusMessage *_message; GVariant *_arguments; GVariantBuilder _arguments_builder; GDBusMessage *_reply_message; GVariant *_reply; GVariantIter _reply_iter; gint _result = 0; GVariant* _tmp3_; G_IO_ERROR; _message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.example.Test", "TestMethod"); g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE); g_variant_builder_add_value (&_arguments_builder, g_variant_new_int32 (j)); g_variant_builder_add_value (&_arguments_builder, g_variant_new_int32 (k)); _arguments = g_variant_builder_end (&_arguments_builder); g_dbus_message_set_body (_message, _arguments); _reply_message = g_dbus_connection_send_message_with_reply_sync (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, error); g_object_unref (_message); if (!_reply_message) { gint _tmp1_ = 0; return _tmp1_; } if (g_dbus_message_to_gerror (_reply_message, error)) { gint _tmp2_ = 0; g_object_unref (_reply_message); return _tmp2_; } _reply = g_dbus_message_get_body (_reply_message); g_variant_iter_init (&_reply_iter, _reply); _tmp3_ = g_variant_iter_next_value (&_reply_iter); _result = g_variant_get_int32 (_tmp3_); g_variant_unref (_tmp3_); g_object_unref (_reply_message); return _result; } static gchar* test_dbus_proxy_get_test_property (Test* self) { GVariant *_inner_reply; gchar* _result; _inner_reply = g_dbus_proxy_get_cached_property ((GDBusProxy *) self, "TestProperty"); if (!_inner_reply) { GVariant *_arguments; GVariant *_reply; GVariantBuilder _arguments_builder; g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE); g_variant_builder_add_value (&_arguments_builder, g_variant_new_string ("org.example.Test")); g_variant_builder_add_value (&_arguments_builder, g_variant_new_string ("TestProperty")); _arguments = g_variant_builder_end (&_arguments_builder); _reply = g_dbus_proxy_call_sync ((GDBusProxy *) self, "org.freedesktop.DBus.Properties.Get", _arguments, G_DBUS_CALL_FLAGS_NONE, -1, NULL, NULL); if (!_reply) { return NULL; } g_variant_get (_reply, "(v)", &_inner_reply); g_variant_unref (_reply); } _result = g_variant_dup_string (_inner_reply, NULL); g_variant_unref (_inner_reply); return _result; } static void test_dbus_proxy_set_test_property (Test* self, const gchar* value) { GVariant *_arguments; GVariant *_reply; GVariantBuilder _arguments_builder; g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE); g_variant_builder_add_value (&_arguments_builder, g_variant_new_string ("org.example.Test")); g_variant_builder_add_value (&_arguments_builder, g_variant_new_string ("TestProperty")); g_variant_builder_open (&_arguments_builder, G_VARIANT_TYPE_VARIANT); g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (value)); g_variant_builder_close (&_arguments_builder); _arguments = g_variant_builder_end (&_arguments_builder); _reply = g_dbus_proxy_call_sync ((GDBusProxy *) self, "org.freedesktop.DBus.Properties.Set", _arguments, G_DBUS_CALL_FLAGS_NONE, -1, NULL, NULL); if (!_reply) { return; } g_variant_unref (_reply); } static void test_proxy_test_interface_init (TestIface* iface) { iface->test_method = test_proxy_test_method; iface->get_test_property = test_dbus_proxy_get_test_property; iface->set_test_property = test_dbus_proxy_set_test_property; } static void _dbus_test_test_method (Test* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) { GError* error = NULL; GVariantIter _arguments_iter; gint j = 0; GVariant* _tmp4_; gint k = 0; GVariant* _tmp5_; GDBusMessage* _reply_message = NULL; GVariant* _reply; GVariantBuilder _reply_builder; gint result; g_variant_iter_init (&_arguments_iter, _parameters_); _tmp4_ = g_variant_iter_next_value (&_arguments_iter); j = g_variant_get_int32 (_tmp4_); g_variant_unref (_tmp4_); _tmp5_ = g_variant_iter_next_value (&_arguments_iter); k = g_variant_get_int32 (_tmp5_); g_variant_unref (_tmp5_); result = test_test_method (self, j, k, &error); if (error) { g_dbus_method_invocation_take_error (invocation, error); return; } _reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation)); g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE); g_variant_builder_add_value (&_reply_builder, g_variant_new_int32 (result)); _reply = g_variant_builder_end (&_reply_builder); g_dbus_message_set_body (_reply_message, _reply); g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL); g_object_unref (invocation); g_object_unref (_reply_message); } static void test_dbus_interface_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) { gpointer* data; gpointer object; data = user_data; object = data[0]; if (strcmp (method_name, "TestMethod") == 0) { _dbus_test_test_method (object, parameters, invocation); } else { g_object_unref (invocation); } } static GVariant* _dbus_test_get_test_property (Test* self) { gchar* result; GVariant* _reply; result = test_get_test_property (self); _reply = g_variant_new_string (result); _g_free0 (result); return _reply; } static GVariant* test_dbus_interface_get_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GError** error, gpointer user_data) { gpointer* data; gpointer object; data = user_data; object = data[0]; if (strcmp (property_name, "TestProperty") == 0) { return _dbus_test_get_test_property (object); } return NULL; } static void _dbus_test_set_test_property (Test* self, GVariant* _value) { gchar* value = NULL; value = g_variant_dup_string (_value, NULL); test_set_test_property (self, value); _g_free0 (value); } static gboolean test_dbus_interface_set_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GVariant* value, GError** error, gpointer user_data) { gpointer* data; gpointer object; data = user_data; object = data[0]; if (strcmp (property_name, "TestProperty") == 0) { _dbus_test_set_test_property (object, value); return TRUE; } return FALSE; } static void _dbus_test_test_signal (GObject* _sender, gint i, gpointer* _data) { GDBusConnection * _connection; const gchar * _path; GVariant *_arguments; GVariantBuilder _arguments_builder; _connection = _data[1]; _path = _data[2]; g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE); g_variant_builder_add_value (&_arguments_builder, g_variant_new_int32 (i)); _arguments = g_variant_builder_end (&_arguments_builder); g_dbus_connection_emit_signal (_connection, NULL, _path, "org.example.Test", "TestSignal", _arguments, NULL); } guint test_register_object (gpointer object, GDBusConnection* connection, const gchar* path, GError** error) { guint result; gpointer *data; data = g_new (gpointer, 3); data[0] = g_object_ref (object); data[1] = g_object_ref (connection); data[2] = g_strdup (path); result = g_dbus_connection_register_object (connection, path, (GDBusInterfaceInfo *) (&_test_dbus_interface_info), &_test_dbus_interface_vtable, data, _test_unregister_object, error); if (!result) { return 0; } g_signal_connect (object, "test-signal", (GCallback) _dbus_test_test_signal, data); return result; } static void _test_unregister_object (gpointer user_data) { gpointer* data; data = user_data; g_signal_handlers_disconnect_by_func (data[0], _dbus_test_test_signal, data); g_object_unref (data[0]); g_object_unref (data[1]); g_free (data[2]); g_free (data); } GVariant* test_raw_test_method (TestRaw* self, GVariant* j, GVariant* k, GError** error) { TestRawIface* _iface_; g_return_val_if_fail (IS_TEST_RAW (self), NULL); _iface_ = TEST_RAW_GET_INTERFACE (self); if (_iface_->test_method) { return _iface_->test_method (self, j, k, error); } return NULL; } GVariant* test_raw_get_test_property (TestRaw* self) { TestRawIface* _iface_; g_return_val_if_fail (IS_TEST_RAW (self), NULL); _iface_ = TEST_RAW_GET_INTERFACE (self); if (_iface_->get_test_property) { return _iface_->get_test_property (self); } return NULL; } void test_raw_set_test_property (TestRaw* self, GVariant* value) { TestRawIface* _iface_; g_return_if_fail (IS_TEST_RAW (self)); _iface_ = TEST_RAW_GET_INTERFACE (self); if (_iface_->set_test_property) { _iface_->set_test_property (self, value); } } static void test_raw_default_init (TestRawIface * iface, gpointer iface_data) { test_raw_signals[TEST_RAW_TEST_SIGNAL_SIGNAL] = g_signal_new ("test-signal", TYPE_TEST_RAW, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VARIANT, G_TYPE_NONE, 1, G_TYPE_VARIANT); } static GType test_raw_get_type_once (void) { static const GTypeInfo g_define_type_info = { sizeof (TestRawIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) test_raw_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType test_raw_type_id; test_raw_type_id = g_type_register_static (G_TYPE_INTERFACE, "TestRaw", &g_define_type_info, 0); g_type_interface_add_prerequisite (test_raw_type_id, G_TYPE_OBJECT); g_type_set_qdata (test_raw_type_id, g_quark_from_static_string ("vala-dbus-proxy-type"), (void*) test_raw_proxy_get_type); g_type_set_qdata (test_raw_type_id, g_quark_from_static_string ("vala-dbus-interface-name"), "org.example.Test"); g_type_set_qdata (test_raw_type_id, g_quark_from_static_string ("vala-dbus-interface-info"), (void*) (&_test_raw_dbus_interface_info)); g_type_set_qdata (test_raw_type_id, g_quark_from_static_string ("vala-dbus-register-object"), (void*) test_raw_register_object); return test_raw_type_id; } GType test_raw_get_type (void) { static volatile gsize test_raw_type_id__once = 0; if (g_once_init_enter (&test_raw_type_id__once)) { GType test_raw_type_id; test_raw_type_id = test_raw_get_type_once (); g_once_init_leave (&test_raw_type_id__once, test_raw_type_id); } return test_raw_type_id__once; } G_DEFINE_TYPE_EXTENDED (TestRawProxy, test_raw_proxy, G_TYPE_DBUS_PROXY, 0, G_IMPLEMENT_INTERFACE (TYPE_TEST_RAW, test_raw_proxy_test_raw_interface_init) ) static void test_raw_proxy_class_init (TestRawProxyClass* klass) { G_DBUS_PROXY_CLASS (klass)->g_signal = test_raw_proxy_g_signal; } static void _dbus_handle_test_raw_test_signal (TestRaw* self, GVariant* parameters) { GVariantIter _arguments_iter; GVariant* i = NULL; g_variant_iter_init (&_arguments_iter, parameters); i = g_variant_iter_next_value (&_arguments_iter); g_signal_emit_by_name (self, "test-signal", i); _g_variant_unref0 (i); } static void test_raw_proxy_g_signal (GDBusProxy* proxy, const gchar* sender_name, const gchar* signal_name, GVariant* parameters) { if (strcmp (signal_name, "TestSignal") == 0) { _dbus_handle_test_raw_test_signal ((TestRaw*) proxy, parameters); } } static void test_raw_proxy_init (TestRawProxy* self) { g_dbus_proxy_set_interface_info (G_DBUS_PROXY (self), (GDBusInterfaceInfo *) (&_test_raw_dbus_interface_info)); } static GVariant* test_raw_proxy_test_method (TestRaw* self, GVariant* j, GVariant* k, GError** error) { GDBusMessage *_message; GVariant *_arguments; GVariantBuilder _arguments_builder; GDBusMessage *_reply_message; GVariant *_reply; GVariantIter _reply_iter; GVariant* _result = NULL; G_IO_ERROR; _message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.example.Test", "TestMethod"); g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE); g_variant_builder_add_value (&_arguments_builder, j); g_variant_builder_add_value (&_arguments_builder, k); _arguments = g_variant_builder_end (&_arguments_builder); g_dbus_message_set_body (_message, _arguments); _reply_message = g_dbus_connection_send_message_with_reply_sync (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, error); g_object_unref (_message); if (!_reply_message) { return NULL; } if (g_dbus_message_to_gerror (_reply_message, error)) { g_object_unref (_reply_message); return NULL; } _reply = g_dbus_message_get_body (_reply_message); g_variant_iter_init (&_reply_iter, _reply); _result = g_variant_iter_next_value (&_reply_iter); g_object_unref (_reply_message); return _result; } static GVariant* test_raw_dbus_proxy_get_test_property (TestRaw* self) { GVariant *_inner_reply; GVariant* _result; _inner_reply = g_dbus_proxy_get_cached_property ((GDBusProxy *) self, "TestProperty"); if (!_inner_reply) { GVariant *_arguments; GVariant *_reply; GVariantBuilder _arguments_builder; g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE); g_variant_builder_add_value (&_arguments_builder, g_variant_new_string ("org.example.Test")); g_variant_builder_add_value (&_arguments_builder, g_variant_new_string ("TestProperty")); _arguments = g_variant_builder_end (&_arguments_builder); _reply = g_dbus_proxy_call_sync ((GDBusProxy *) self, "org.freedesktop.DBus.Properties.Get", _arguments, G_DBUS_CALL_FLAGS_NONE, -1, NULL, NULL); if (!_reply) { return NULL; } g_variant_get (_reply, "(v)", &_inner_reply); g_variant_unref (_reply); } _result = _inner_reply; return _result; } static void test_raw_dbus_proxy_set_test_property (TestRaw* self, GVariant* value) { GVariant *_arguments; GVariant *_reply; GVariantBuilder _arguments_builder; g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE); g_variant_builder_add_value (&_arguments_builder, g_variant_new_string ("org.example.Test")); g_variant_builder_add_value (&_arguments_builder, g_variant_new_string ("TestProperty")); g_variant_builder_open (&_arguments_builder, G_VARIANT_TYPE_VARIANT); g_variant_builder_add_value (&_arguments_builder, value); g_variant_builder_close (&_arguments_builder); _arguments = g_variant_builder_end (&_arguments_builder); _reply = g_dbus_proxy_call_sync ((GDBusProxy *) self, "org.freedesktop.DBus.Properties.Set", _arguments, G_DBUS_CALL_FLAGS_NONE, -1, NULL, NULL); if (!_reply) { return; } g_variant_unref (_reply); } static void test_raw_proxy_test_raw_interface_init (TestRawIface* iface) { iface->test_method = test_raw_proxy_test_method; iface->get_test_property = test_raw_dbus_proxy_get_test_property; iface->set_test_property = test_raw_dbus_proxy_set_test_property; } static void _dbus_test_raw_test_method (TestRaw* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) { GError* error = NULL; GVariantIter _arguments_iter; GVariant* j = NULL; GVariant* k = NULL; GDBusMessage* _reply_message = NULL; GVariant* _reply; GVariantBuilder _reply_builder; GVariant* result; g_variant_iter_init (&_arguments_iter, _parameters_); j = g_variant_iter_next_value (&_arguments_iter); k = g_variant_iter_next_value (&_arguments_iter); result = test_raw_test_method (self, j, k, &error); if (error) { g_dbus_method_invocation_take_error (invocation, error); goto _error; } _reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation)); g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE); g_variant_builder_add_value (&_reply_builder, result); _g_variant_unref0 (result); _reply = g_variant_builder_end (&_reply_builder); g_dbus_message_set_body (_reply_message, _reply); g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL); g_object_unref (invocation); g_object_unref (_reply_message); _error: _g_variant_unref0 (j); _g_variant_unref0 (k); ; } static void test_raw_dbus_interface_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) { gpointer* data; gpointer object; data = user_data; object = data[0]; if (strcmp (method_name, "TestMethod") == 0) { _dbus_test_raw_test_method (object, parameters, invocation); } else { g_object_unref (invocation); } } static GVariant* _dbus_test_raw_get_test_property (TestRaw* self) { GVariant* result; GVariant* _reply; result = test_raw_get_test_property (self); _reply = result; return _reply; } static GVariant* test_raw_dbus_interface_get_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GError** error, gpointer user_data) { gpointer* data; gpointer object; data = user_data; object = data[0]; if (strcmp (property_name, "TestProperty") == 0) { return _dbus_test_raw_get_test_property (object); } return NULL; } static void _dbus_test_raw_set_test_property (TestRaw* self, GVariant* _value) { GVariant* value = NULL; value = _value; test_raw_set_test_property (self, value); } static gboolean test_raw_dbus_interface_set_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GVariant* value, GError** error, gpointer user_data) { gpointer* data; gpointer object; data = user_data; object = data[0]; if (strcmp (property_name, "TestProperty") == 0) { _dbus_test_raw_set_test_property (object, value); return TRUE; } return FALSE; } static void _dbus_test_raw_test_signal (GObject* _sender, GVariant* i, gpointer* _data) { GDBusConnection * _connection; const gchar * _path; GVariant *_arguments; GVariantBuilder _arguments_builder; _connection = _data[1]; _path = _data[2]; g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE); g_variant_builder_add_value (&_arguments_builder, i); _arguments = g_variant_builder_end (&_arguments_builder); g_dbus_connection_emit_signal (_connection, NULL, _path, "org.example.Test", "TestSignal", _arguments, NULL); } guint test_raw_register_object (gpointer object, GDBusConnection* connection, const gchar* path, GError** error) { guint result; gpointer *data; data = g_new (gpointer, 3); data[0] = g_object_ref (object); data[1] = g_object_ref (connection); data[2] = g_strdup (path); result = g_dbus_connection_register_object (connection, path, (GDBusInterfaceInfo *) (&_test_raw_dbus_interface_info), &_test_raw_dbus_interface_vtable, data, _test_raw_unregister_object, error); if (!result) { return 0; } g_signal_connect (object, "test-signal", (GCallback) _dbus_test_raw_test_signal, data); return result; } static void _test_raw_unregister_object (gpointer user_data) { gpointer* data; data = user_data; g_signal_handlers_disconnect_by_func (data[0], _dbus_test_raw_test_signal, data); g_object_unref (data[0]); g_object_unref (data[1]); g_free (data[2]); g_free (data); } static Block1Data* block1_data_ref (Block1Data* _data1_) { g_atomic_int_inc (&_data1_->_ref_count_); return _data1_; } static void block1_data_unref (void * _userdata_) { Block1Data* _data1_; _data1_ = (Block1Data*) _userdata_; if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) { _g_main_loop_unref0 (_data1_->main_loop); g_slice_free (Block1Data, _data1_); } } static gint _variant_get1 (GVariant* value) { return g_variant_get_int32 (value); } static void _vala_lambda0_ (Block1Data* _data1_, GVariant* var_i) { gint i = 0; gint _tmp0_; g_return_if_fail (var_i != NULL); _tmp0_ = _variant_get1 (var_i); i = _tmp0_; _vala_assert (i == 46, "i == 46"); g_main_loop_quit (_data1_->main_loop); } static void __vala_lambda0__test_raw_test_signal (TestRaw* _sender, GVariant* i, gpointer self) { _vala_lambda0_ (self, i); } static GVariant* _variant_new1 (gint value) { return g_variant_ref_sink (g_variant_new_int32 (value)); } static GVariant* _variant_new2 (gint value) { return g_variant_ref_sink (g_variant_new_int32 (value)); } static gint _variant_get2 (GVariant* value) { return g_variant_get_int32 (value); } static GVariant* _variant_new3 (const gchar* value) { return g_variant_ref_sink (g_variant_new_string (value)); } static gchar* _variant_get3 (GVariant* value) { return g_variant_dup_string (value, NULL); } void test_raw (TestRaw* test) { Block1Data* _data1_; GMainLoop* _tmp0_; gulong id = 0UL; gulong _tmp1_; GVariant* _tmp2_ = NULL; GVariant* _tmp3_; GVariant* _tmp4_; GVariant* _tmp5_; GVariant* _tmp6_; gint j = 0; gint _tmp7_; GVariant* _tmp8_; gchar* s = NULL; GVariant* _tmp9_; GVariant* _tmp10_; GVariant* _tmp11_; gchar* _tmp12_; gchar* _tmp13_; const gchar* _tmp14_; GError* _inner_error0_ = NULL; g_return_if_fail (IS_TEST_RAW (test)); _data1_ = g_slice_new0 (Block1Data); _data1_->_ref_count_ = 1; _tmp0_ = g_main_loop_new (NULL, FALSE); _data1_->main_loop = _tmp0_; _tmp1_ = g_signal_connect_data (test, "test-signal", (GCallback) __vala_lambda0__test_raw_test_signal, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0); id = _tmp1_; _tmp3_ = _variant_new1 (23); _tmp4_ = _variant_new2 (11); _tmp5_ = test_raw_test_method (test, _tmp3_, _tmp4_, &_inner_error0_); _tmp6_ = _tmp5_; _g_variant_unref0 (_tmp4_); _g_variant_unref0 (_tmp3_); _tmp2_ = _tmp6_; if (G_UNLIKELY (_inner_error0_ != NULL)) { block1_data_unref (_data1_); _data1_ = NULL; g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); g_clear_error (&_inner_error0_); return; } _tmp7_ = _variant_get2 (_tmp2_); j = _tmp7_; _vala_assert (j == 42, "j == 42"); g_main_loop_run (_data1_->main_loop); g_signal_handler_disconnect (G_TYPE_CHECK_INSTANCE_CAST (test, G_TYPE_OBJECT, GObject), id); _tmp8_ = _variant_new3 ("hello"); test_raw_set_test_property (test, _tmp8_); _g_variant_unref0 (_tmp8_); _tmp9_ = test_raw_get_test_property (test); _tmp10_ = _tmp9_; _tmp11_ = _tmp10_; _tmp12_ = _variant_get3 (_tmp11_); _tmp13_ = _tmp12_; _g_variant_unref0 (_tmp11_); s = _tmp13_; _tmp14_ = s; _vala_assert (g_strcmp0 (_tmp14_, "hello") == 0, "s == \"hello\""); _g_free0 (s); _g_variant_unref0 (_tmp2_); block1_data_unref (_data1_); _data1_ = NULL; } static Block2Data* block2_data_ref (Block2Data* _data2_) { g_atomic_int_inc (&_data2_->_ref_count_); return _data2_; } static void block2_data_unref (void * _userdata_) { Block2Data* _data2_; _data2_ = (Block2Data*) _userdata_; if (g_atomic_int_dec_and_test (&_data2_->_ref_count_)) { _g_main_loop_unref0 (_data2_->main_loop); g_slice_free (Block2Data, _data2_); } } static void _vala_lambda1_ (Block2Data* _data2_, gint i) { _vala_assert (i == 46, "i == 46"); g_main_loop_quit (_data2_->main_loop); } static void __vala_lambda1__test_test_signal (Test* _sender, gint i, gpointer self) { _vala_lambda1_ (self, i); } void test (Test* test) { Block2Data* _data2_; GMainLoop* _tmp0_; gulong id = 0UL; gulong _tmp1_; gint j = 0; gchar* s = NULL; gchar* _tmp2_; gchar* _tmp3_; const gchar* _tmp4_; GError* _inner_error0_ = NULL; g_return_if_fail (IS_TEST (test)); _data2_ = g_slice_new0 (Block2Data); _data2_->_ref_count_ = 1; _tmp0_ = g_main_loop_new (NULL, FALSE); _data2_->main_loop = _tmp0_; _tmp1_ = g_signal_connect_data (test, "test-signal", (GCallback) __vala_lambda1__test_test_signal, block2_data_ref (_data2_), (GClosureNotify) block2_data_unref, 0); id = _tmp1_; j = test_test_method (test, 23, 11, &_inner_error0_); if (G_UNLIKELY (_inner_error0_ != NULL)) { block2_data_unref (_data2_); _data2_ = NULL; g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); g_clear_error (&_inner_error0_); return; } _vala_assert (j == 42, "j == 42"); g_main_loop_run (_data2_->main_loop); g_signal_handler_disconnect (G_TYPE_CHECK_INSTANCE_CAST (test, G_TYPE_OBJECT, GObject), id); test_set_test_property (test, "hello"); _tmp2_ = test_get_test_property (test); _tmp3_ = _tmp2_; s = _tmp3_; _tmp4_ = s; _vala_assert (g_strcmp0 (_tmp4_, "hello") == 0, "s == \"hello\""); _g_free0 (s); block2_data_unref (_data2_); _data2_ = NULL; } static void _vala_main (void) { Test* test1 = NULL; Test* _tmp0_; Test* _tmp1_; TestRaw* test2 = NULL; TestRaw* _tmp2_; TestRaw* _tmp3_; TestRaw* test3 = NULL; TestRaw* _tmp4_; TestRaw* _tmp5_; GError* _inner_error0_ = NULL; _tmp0_ = (Test*) g_initable_new (TYPE_TEST_PROXY, NULL, &_inner_error0_, "g-flags", G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, "g-name", "org.example.Test", "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", "/org/example/testraw", "g-interface-name", "org.example.Test", NULL); test1 = (Test*) _tmp0_; if (G_UNLIKELY (_inner_error0_ != NULL)) { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); g_clear_error (&_inner_error0_); return; } _tmp1_ = test1; test (_tmp1_); _tmp2_ = (TestRaw*) g_initable_new (TYPE_TEST_RAW_PROXY, NULL, &_inner_error0_, "g-flags", G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, "g-name", "org.example.Test", "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", "/org/example/test", "g-interface-name", "org.example.Test", NULL); test2 = (TestRaw*) _tmp2_; if (G_UNLIKELY (_inner_error0_ != NULL)) { _g_object_unref0 (test1); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); g_clear_error (&_inner_error0_); return; } _tmp3_ = test2; test_raw (_tmp3_); _tmp4_ = (TestRaw*) g_initable_new (TYPE_TEST_RAW_PROXY, NULL, &_inner_error0_, "g-flags", G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, "g-name", "org.example.Test", "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", "/org/example/testraw", "g-interface-name", "org.example.Test", NULL); test3 = (TestRaw*) _tmp4_; if (G_UNLIKELY (_inner_error0_ != NULL)) { _g_object_unref0 (test2); _g_object_unref0 (test1); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); g_clear_error (&_inner_error0_); return; } _tmp5_ = test3; test_raw (_tmp5_); _g_object_unref0 (test3); _g_object_unref0 (test2); _g_object_unref0 (test1); } int main (int argc, char ** argv) { _vala_main (); return 0; }