static void daemon_constructed (GObject *_object) { Daemon *daemon = DAEMON (_object); CockpitManager *manager; CockpitMachines *machines; CockpitResourceMonitor *monitor; CockpitMultiResourceMonitor *multi_monitor; CockpitRealms *realms; CockpitServices *services; CockpitJournal *journal; CockpitAccounts *accounts; CockpitStorageManager *storage_manager; CockpitObjectSkeleton *object = NULL; g_assert (_daemon_instance == NULL); _daemon_instance = daemon; daemon->system_bus_proxy = g_dbus_proxy_new_sync (daemon->connection, G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, NULL, "org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus", NULL, NULL); g_assert (daemon->system_bus_proxy != NULL); daemon->object_manager = g_dbus_object_manager_server_new ("/com/redhat/Cockpit"); /* /com/redhat/Cockpit/Machines */ machines = machines_new (daemon_get_object_manager (daemon)); daemon->machines = MACHINES (machines); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/Machines"); cockpit_object_skeleton_set_machines (object, machines); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (machines); g_object_unref (object); /* /com/redhat/Cockpit/Manager */ manager = manager_new (daemon); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/Manager"); cockpit_object_skeleton_set_manager (object, manager); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (manager); g_object_unref (object); /* /com/redhat/Cockpit/CpuMonitor */ monitor = cpu_monitor_new (daemon); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/CpuMonitor"); cockpit_object_skeleton_set_resource_monitor (object, monitor); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (monitor); g_object_unref (object); /* /com/redhat/Cockpit/MemoryMonitor */ monitor = memory_monitor_new (daemon); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/MemoryMonitor"); cockpit_object_skeleton_set_resource_monitor (object, monitor); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (monitor); g_object_unref (object); /* /com/redhat/Cockpit/NetworkMonitor */ monitor = network_monitor_new (daemon); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/NetworkMonitor"); cockpit_object_skeleton_set_resource_monitor (object, monitor); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (monitor); g_object_unref (object); /* /com/redhat/Cockpit/DiskIOMonitor */ monitor = disk_io_monitor_new (daemon); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/DiskIOMonitor"); cockpit_object_skeleton_set_resource_monitor (object, monitor); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (monitor); g_object_unref (object); /* /com/redhat/Cockpit/LxcMonitor */ multi_monitor = cgroup_monitor_new (G_OBJECT (daemon)); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/LxcMonitor"); cockpit_object_skeleton_set_multi_resource_monitor (object, multi_monitor); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (multi_monitor); g_object_unref (object); /* /com/redhat/Cockpit/NetdevMonitor */ multi_monitor = netdev_monitor_new (G_OBJECT (daemon)); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/NetdevMonitor"); cockpit_object_skeleton_set_multi_resource_monitor (object, multi_monitor); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (multi_monitor); g_object_unref (object); /* /com/redhat/Cockpit/Realms */ realms = realms_new (daemon); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/Realms"); cockpit_object_skeleton_set_realms (object, realms); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (realms); g_object_unref (object); /* /com/redhat/Cockpit/Services */ services = services_new (daemon); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/Services"); cockpit_object_skeleton_set_services (object, services); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (services); g_object_unref (object); /* /com/redhat/Cockpit/Journal */ journal = journal_new (); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/Journal"); cockpit_object_skeleton_set_journal (object, journal); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (journal); /* /com/redhat/Cockpit/Accounts */ accounts = accounts_new (); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/Accounts"); cockpit_object_skeleton_set_accounts (object, accounts); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (accounts); g_object_unref (object); /* /com/redhat/Cockpit/Storage/Manager */ storage_manager = storage_manager_new (daemon); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/Storage/Manager"); cockpit_object_skeleton_set_storage_manager (object, storage_manager); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (storage_manager); g_object_unref (object); daemon->storage_provider = storage_provider_new (daemon); /* Export the ObjectManager */ g_dbus_object_manager_server_set_connection (daemon->object_manager, daemon->connection); daemon->tick_timeout_id = g_timeout_add_seconds (1, on_timeout, daemon); if (G_OBJECT_CLASS (daemon_parent_class)->constructed != NULL) G_OBJECT_CLASS (daemon_parent_class)->constructed (_object); }
static void daemon_constructed (GObject *_object) { Daemon *daemon = DAEMON (_object); CockpitResourceMonitor *monitor; CockpitMultiResourceMonitor *multi_monitor; CockpitStorageManager *storage_manager; CockpitObjectSkeleton *object = NULL; g_assert (_daemon_instance == NULL); _daemon_instance = daemon; g_debug ("creating bus proxy"); daemon->system_bus_proxy = g_dbus_proxy_new_sync (daemon->connection, G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, NULL, "org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus", NULL, NULL); g_assert (daemon->system_bus_proxy != NULL); g_debug ("creating object manager"); daemon->object_manager = g_dbus_object_manager_server_new ("/com/redhat/Cockpit"); /* /com/redhat/Cockpit/NetworkMonitor */ monitor = network_monitor_new (daemon); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/NetworkMonitor"); cockpit_object_skeleton_set_resource_monitor (object, monitor); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (monitor); g_object_unref (object); g_debug ("exported network monitor"); /* /com/redhat/Cockpit/DiskIOMonitor */ monitor = disk_io_monitor_new (daemon); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/DiskIOMonitor"); cockpit_object_skeleton_set_resource_monitor (object, monitor); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (monitor); g_object_unref (object); g_debug ("exported disk io monitor"); /* /com/redhat/Cockpit/LxcMonitor */ multi_monitor = cgroup_monitor_new (G_OBJECT (daemon)); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/LxcMonitor"); cockpit_object_skeleton_set_multi_resource_monitor (object, multi_monitor); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (multi_monitor); g_object_unref (object); g_debug ("exported lxc monitor"); /* /com/redhat/Cockpit/NetdevMonitor */ multi_monitor = netdev_monitor_new (G_OBJECT (daemon)); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/NetdevMonitor"); cockpit_object_skeleton_set_multi_resource_monitor (object, multi_monitor); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (multi_monitor); g_object_unref (object); g_debug ("exported net dev monitor"); /* /com/redhat/Cockpit/BlockdevMonitor */ multi_monitor = blockdev_monitor_new (G_OBJECT (daemon)); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/BlockdevMonitor"); cockpit_object_skeleton_set_multi_resource_monitor (object, multi_monitor); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (multi_monitor); g_object_unref (object); g_debug ("exported block dev monitor"); /* /com/redhat/Cockpit/MountMonitor */ multi_monitor = mount_monitor_new (G_OBJECT (daemon)); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/MountMonitor"); cockpit_object_skeleton_set_multi_resource_monitor (object, multi_monitor); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (multi_monitor); g_object_unref (object); g_debug ("exported mount monitor"); /* /com/redhat/Cockpit/Storage/Manager */ storage_manager = storage_manager_new (daemon); object = cockpit_object_skeleton_new ("/com/redhat/Cockpit/Storage/Manager"); cockpit_object_skeleton_set_storage_manager (object, storage_manager); g_dbus_object_manager_server_export (daemon->object_manager, G_DBUS_OBJECT_SKELETON (object)); g_object_unref (storage_manager); g_object_unref (object); g_debug ("exported storage manager"); daemon->storage_provider = storage_provider_new (daemon); /* Export the ObjectManager */ g_dbus_object_manager_server_set_connection (daemon->object_manager, daemon->connection); daemon->tick_timeout_id = g_timeout_add_seconds (1, on_timeout, daemon); g_debug ("daemon constructed"); if (G_OBJECT_CLASS (daemon_parent_class)->constructed != NULL) G_OBJECT_CLASS (daemon_parent_class)->constructed (_object); }