void bus_server_run (void) { g_return_if_fail (server); /* create and run main loop */ mainloop = g_main_loop_new (NULL, FALSE); g_main_loop_run (mainloop); /* bus_server_quit is called. stop server */ g_dbus_server_stop (server); ibus_object_destroy ((IBusObject *)dbus); ibus_object_destroy ((IBusObject *)ibus); /* release resources */ g_object_unref (server); g_main_loop_unref (mainloop); mainloop = NULL; g_free (address); address = NULL; /* When _ibus_exit() is called, bus_ibus_impl_destroy() needs * to be called so that waitpid() prevents the processes from * becoming the daemons. So we run execv() after * ibus_object_destroy(ibus) is called here. */ if (_restart) { _restart_server (); /* should not reach here */ g_assert_not_reached (); } }
wxWebViewWebKit::~wxWebViewWebKit() { if (m_web_view) GTKDisconnect(m_web_view); if (m_dbusServer) g_dbus_server_stop(m_dbusServer); g_clear_object(&m_dbusServer); g_clear_object(&m_extension); }
void ide_worker_manager_shutdown (IdeWorkerManager *self) { g_return_if_fail (IDE_IS_WORKER_MANAGER (self)); if (self->dbus_server != NULL) g_dbus_server_stop (self->dbus_server); g_clear_pointer (&self->plugin_name_to_worker, g_hash_table_unref); g_clear_object (&self->dbus_server); }
static void ide_worker_manager_finalize (GObject *object) { IdeWorkerManager *self = (IdeWorkerManager *)object; if (self->dbus_server != NULL) g_dbus_server_stop (self->dbus_server); g_clear_pointer (&self->plugin_name_to_worker, g_hash_table_unref); g_clear_object (&self->dbus_server); G_OBJECT_CLASS (ide_worker_manager_parent_class)->finalize (object); DZL_COUNTER_DEC (instances); }
/** * @brief Destroying the GstSwitchController. * @memberof GstSwitchController * @see GObject */ static void gst_switch_controller_finalize (GstSwitchController * controller) { INFO ("gst_switch_controller finalized"); if (controller->bus_server) { g_dbus_server_stop (controller->bus_server); g_assert (!g_dbus_server_is_active (controller->bus_server)); g_object_unref (controller->bus_server); controller->bus_server = NULL; } g_mutex_clear (&controller->clients_lock); if (G_OBJECT_CLASS (gst_switch_controller_parent_class)->finalize) (*G_OBJECT_CLASS (gst_switch_controller_parent_class)->finalize) (G_OBJECT (controller)); }
gboolean _gumd_dbus_server_p2p_stop ( GumdDbusServer *self) { g_return_val_if_fail (GUMD_IS_DBUS_SERVER_P2P (self), FALSE); DBG("Stop P2P DBus Server"); GumdDbusServerP2P *server = GUMD_DBUS_SERVER_P2P (self); if (server->priv->bus_server) { if (g_dbus_server_is_active (server->priv->bus_server)) g_dbus_server_stop (server->priv->bus_server); g_object_unref (server->priv->bus_server); server->priv->bus_server = NULL; } return TRUE; }
static void test_auth_mechanism (const gchar *allowed_client_mechanism, const gchar *allowed_server_mechanism) { GDBusServer *server; GMainLoop *loop; GThread *client_thread; TestAuthData data; server = server_new_for_mechanism (allowed_server_mechanism); loop = g_main_loop_new (NULL, FALSE); g_signal_connect (server, "new-connection", G_CALLBACK (test_auth_on_new_connection), loop); g_timeout_add_seconds (5, test_auth_on_timeout, NULL); data.allowed_client_mechanism = allowed_client_mechanism; data.allowed_server_mechanism = allowed_server_mechanism; data.address = g_dbus_server_get_client_address (server); /* run the D-Bus client in a thread */ client_thread = g_thread_new ("gdbus-client-thread", test_auth_client_thread_func, &data); g_dbus_server_start (server); g_main_loop_run (loop); g_dbus_server_stop (server); g_thread_join (client_thread); g_object_unref (server); }
int main (int argc, char **argv) { ServiceData svc = {0,}; GError *error = NULL; const char *address = NULL; char *guid; #ifdef ENABLE_NLS /* initialize i18n */ bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); #endif g_type_init (); gst_init (NULL, NULL); g_set_prgname ("rhythmbox-metadata"); if (argv[1] != NULL && strcmp(argv[1], "--debug") == 0) { argv++; rb_debug_init (TRUE); } else if (argv[1] != NULL && strcmp (argv[1], "--debug-match") == 0) { rb_debug_init_match (argv[2]); argv += 2; } else { rb_debug_init (FALSE); } /* bug report modes */ if (argv[1] != NULL && strcmp(argv[1], "--load") == 0) { return test_load (argv[2]); } if (argv[1] != NULL && strcmp(argv[1], "--saveable-types") == 0) { return test_saveable_types (); } if (argv[1] != NULL && strcmp (argv[1], "--external") == 0) { argv++; svc.external = TRUE; } if (argv[1] == NULL) { address = "unix:tmpdir=/tmp"; } else { address = argv[1]; } rb_debug ("initializing metadata service; pid = %d; address = %s", getpid (), address); svc.metadata = rb_metadata_new (); svc.loop = g_main_loop_new (NULL, TRUE); /* create the server */ guid = g_dbus_generate_guid (); svc.server = g_dbus_server_new_sync (address, G_DBUS_SERVER_FLAGS_NONE, guid, NULL, NULL, &error); g_free (guid); if (error != NULL) { g_warning ("D-Bus server init failed: %s", error->message); return -1; } /* set up interface info */ svc.node_info = g_dbus_node_info_new_for_xml (rb_metadata_iface_xml, &error); if (error != NULL) { g_warning ("D-Bus server init failed: %s", error->message); return -1; } g_signal_connect (svc.server, "new-connection", G_CALLBACK (new_connection_cb), &svc); g_dbus_server_start (svc.server); /* write the server address back to the parent process */ { const char *addr; addr = g_dbus_server_get_client_address (svc.server); rb_debug ("D-BUS server listening on address %s", addr); printf ("%s\n", addr); fflush (stdout); } /* run main loop until we get bored */ if (!svc.external) g_timeout_add_seconds (ATTENTION_SPAN / 2, (GSourceFunc) electromagnetic_shotgun, &svc); g_main_loop_run (svc.loop); if (svc.connection) { g_dbus_connection_close_sync (svc.connection, NULL, NULL); g_object_unref (svc.connection); } g_object_unref (svc.metadata); g_main_loop_unref (svc.loop); g_dbus_server_stop (svc.server); g_object_unref (svc.server); gst_deinit (); return 0; }