void Initialize() { try { if (upower == null && Bus.System.NameHasOwner(UPowerName)) { upower = Bus.System.GetObject <IUPower> (UPowerName, new ObjectPath(UPowerPath)); upower.Changed += HandleCapabilitiesChanged; Log <SystemManager> .Debug("Using UPower dbus service"); } else if (devicekit == null && Bus.System.NameHasOwner(DeviceKitPowerName)) { devicekit = Bus.System.GetObject <IDeviceKitPower> (DeviceKitPowerName, new ObjectPath(DeviceKitPowerPath)); devicekit.Changed += HandleCapabilitiesChanged; Log <SystemManager> .Debug("Using DeviceKit.Power dbus service"); } if (systemd == null && Bus.System.NameHasOwner(SystemdName)) { systemd = Bus.System.GetObject <ISystemd> (SystemdName, new ObjectPath(SystemdPath)); Log <SystemManager> .Debug("Using login1.Manager dbus service"); } else if (consolekit == null && Bus.System.NameHasOwner(ConsoleKitName)) { consolekit = Bus.System.GetObject <IConsoleKit> (ConsoleKitName, new ObjectPath(ConsoleKitPath)); Log <SystemManager> .Debug("Using ConsoleKit.Manager dbus service"); } } catch (Exception e) { Log <SystemService> .Error("Could not initialize needed dbus service: '{0}'", e.Message); Log <SystemService> .Info(e.StackTrace); } }
public void Initialize() { // Set a sane default value for on_battery. Thus, if we don't find a working power manager // we assume we're not on battery. on_battery = false; try { BusG.Init(); if (Bus.System.NameHasOwner(DeviceKitPowerName)) { devicekit = Bus.System.GetObject <IDeviceKitPower> (DeviceKitPowerName, new ObjectPath(DeviceKitPowerPath)); devicekit.OnChanged += DeviceKitOnChanged; on_battery = (bool)devicekit.Get(DeviceKitPowerName, "on-battery"); Log <SystemService> .Debug("Using org.freedesktop.DeviceKit.Power for battery information"); } else if (Bus.Session.NameHasOwner(PowerManagementName)) { power = Bus.Session.GetObject <IPowerManagement> (PowerManagementName, new ObjectPath(PowerManagementPath)); power.OnBatteryChanged += PowerOnBatteryChanged; on_battery = power.GetOnBattery(); Log <SystemService> .Debug("Using org.freedesktop.PowerManager for battery information"); } } catch (Exception e) { Log <SystemService> .Error("Could not initialize dbus: {0}", e.Message); Log <SystemService> .Debug(e.StackTrace); } }
void InitializeBattery() { // Set a sane default value for on_battery. Thus, if we don't find a working power manager // we assume we're not on battery. on_battery = false; try { if (Bus.System.NameHasOwner(UPowerName)) { upower = Bus.System.GetObject <IUPower> (UPowerName, new ObjectPath(UPowerPath)); upower.Changed += HandleUPowerChanged; HandleUPowerChanged(); Log <SystemService> .Debug("Using org.freedesktop.UPower for battery information"); } else if (Bus.System.NameHasOwner(DeviceKitPowerName)) { devicekit = Bus.System.GetObject <IDeviceKitPower> (DeviceKitPowerName, new ObjectPath(DeviceKitPowerPath)); devicekit.Changed += HandleDeviceKitChanged; HandleDeviceKitChanged(); Log <SystemService> .Debug("Using org.freedesktop.DeviceKit.Power for battery information"); } else if (Bus.Session.NameHasOwner(PowerManagementName)) { power = Bus.Session.GetObject <IPowerManagement> (PowerManagementName, new ObjectPath(PowerManagementPath)); power.OnBatteryChanged += PowerOnBatteryChanged; on_battery = power.GetOnBattery(); Log <SystemService> .Debug("Using org.freedesktop.PowerManager for battery information"); } } catch (Exception e) { Log <SystemService> .Error("Could not initialize power manager dbus: '{0}'", e.Message); Log <SystemService> .Info(e.StackTrace); } }
private SystemManager() { try { SystemBus = Bus.System.GetObject <IBus> ("org.freedesktop.DBus", new ObjectPath("/org/freedesktop/DBus")); SystemBus.NameOwnerChanged += delegate(string name, string old_owner, string new_owner) { if (name != UPowerName && name != DeviceKitPowerName && name != SystemdName && name != ConsoleKitName) { return; } Log <SystemManager> .Debug("DBus services changed, reconnecting now"); if (upower != null) { upower = null; } if (devicekit != null) { devicekit = null; } if (systemd != null) { systemd = null; } if (consolekit != null) { consolekit = null; } Initialize(); HandlePowerBusChanged(); HandleCapabilitiesChanged(); }; Initialize(); // Set up file monitor to watch for reboot_required file GLib.File reboot_required_file = FileFactory.NewForPath("/var/run/reboot-required"); reboot_required_monitor = reboot_required_file.Monitor(FileMonitorFlags.None, null); reboot_required_monitor.RateLimit = 10000; reboot_required_monitor.Changed += HandleRebootRequired; } catch (Exception e) { Log <SessionManagerItem> .Error(e.Message); } }