Example #1
0
        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);
            }
        }
Example #2
0
        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);
            }
        }
		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");
				}
				
				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);
			}
		}
		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 != SystemdName && name != ConsoleKitName)
						return;

					Log<SystemManager>.Debug ("DBus services changed, reconnecting now");
					
					if (upower != null)
						upower = 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);
			}
		}