Struct logind_zbus::SessionProxy[][src]

pub struct SessionProxy<'a>(_);
Expand description

Proxy wrapper for the logind Session dbus interface

All get_* methods are property getters

Example

use logind_zbus::ManagerProxy;
use logind_zbus::SessionProxy;
use zbus::blocking::Connection;

let connection = Connection::system().unwrap();
let manager = ManagerProxy::new(&connection).unwrap();
let sessions = manager.list_sessions().unwrap();
let session = SessionProxy::new(&connection, &sessions[0]).unwrap();

let time1 = session.get_timestamp().unwrap();
assert!(time1.as_secs() > 0);

let time2 = session.get_timestamp_monotonic().unwrap();
assert!(time2.as_secs() > 0);

Notes

All connect_* functions are signals and each of these functions names reflect the underlying generated Proxy call. If desired the wrapped function can be bypassed with:

*<SessionProxy>.connect_<function name>()

Implementations

Borrow the underlying SessionProxy for use with zbus directly

Bring session to foreground

Send a signal to all processes of the user

Ask session to activate its screen lock

Allows a session controller to synchronously pause a device after receiving a PauseDevice(“pause”) signal

Drops control of a given session. Closing the D-Bus connection implicitly releases control as well. This method also releases all devices for which the controller requested

Release a device (after TakeDevice). This is also implicitly done by release_control() or when closing the D-Bus connection.

Used to set the display brightness. This is intended to be used by the desktop environment and allows unprivileged programs to access hardware settings in a controlled way.

SetIdleHint() is called by the session object to update the idle state of the session whenever it changes

Allows the type of the session to be changed dynamically. It can only be called by session’s current controller. If take_control() has not been called, this method will fail. In addition, the session type will be reset to its original value once control is released, either by calling release_control() or closing the D-Bus connection.

Allows a process to take exclusive managed device access-control for that session

Get a file descriptor for a specific device. Pass in the major and minor numbers of the character device and systemd-logind will return a file descriptor for the device.

Forcibly terminate this session

Ask this session to deactivate its lock screen

Property: Is session is active, i.e. currently in the foreground. This field is semi-redundant due to State (get_state()).

Property: the Kernel Audit session ID of the session if auditing is available.

Property: The class of Session

Property: Describes the desktop environment running in the session (if known)

The X11 display name if this is a graphical login. If not, this is an empty string.

Property: Session ID

Property: PID of the process that registered the session

Property: shows the locked hint state of this session

Property: The User name

Property: local or remote

Property: None if not remote

Property: None if not remote

Property: systemd scope unit name of this session

Property: seat this session belongs to if there is any

Property: PAM service name that registered the session

Property: State of the session

Property: kernel TTY path of the session if this is a text login. If not this None.

Property: Get time since session was created (realtime)

Property: Get time since session was created (wal time)

Property: Session type

Property: User the session belongs to

Property: Virtual terminal number of the session if there is any, 0 otherwise.

Methods from Deref<Target = Proxy<'a>>

Get a reference to the associated connection.

Get a reference to the destination service name.

Get a reference to the object path.

Get a reference to the interface.

Introspect the associated object, and return the XML description.

See the xml module for parsing the result.

Get the cached value of the property property_name.

This returns None if the property is not in the cache. This could be because the cache was invalidated by an update, because caching was disabled for this property or proxy, or because the cache has not yet been populated. Use get_property to fetch the value from the peer.

Get the cached value of the property property_name.

Same as cached_property, but gives you access to the raw value stored in the cache. This is useful if you want to avoid allocations and cloning.

Get the property property_name.

Get the property value from the cache or call the Get method of the org.freedesktop.DBus.Properties interface.

Set the property property_name.

Effectively, call the Set method of the org.freedesktop.DBus.Properties interface.

Call a method and return the reply.

Typically, you would want to use call method instead. Use this method if you need to deserialize the reply message manually (this way, you can avoid the memory allocation/copying, by deserializing the reply to an unowned type).

Call a method and return the reply body.

Use call_method instead if you need to deserialize the reply manually/separately.

Call a method without expecting a reply

This sets the NoReplyExpected flag on the calling message and does not wait for a reply.

Create a stream for signal named signal_name.

Errors

Apart from general I/O errors that can result from socket communications, calling this method will also result in an error if the destination service has not yet registered its well-known name with the bus (assuming you’re using the well-known name as destination).

Create a stream for all signals emitted by this service.

Errors

Apart from general I/O errors that can result from socket communications, calling this method will also result in an error if the destination service has not yet registered its well-known name with the bus (assuming you’re using the well-known name as destination).

Get an iterator to receive owner changed events.

If the proxy destination is a unique name, the stream will be notified of the peer disconnection from the bus (with a None value).

If the proxy destination is a well-known name, the stream will be notified whenever the name owner is changed, either by a new peer being granted ownership (Some value) or when the name is released (with a None value).

Note that zbus doesn’t queue the updates. If the listener is slower than the receiver, it will only receive the last update.

Get an iterator to receive property changed events.

Note that zbus doesn’t queue the updates. If the listener is slower than the receiver, it will only receive the last update.

Get a reference to the underlying async Proxy.

Trait Implementations

Performs the conversion.

Performs the conversion.

The resulting type after dereferencing.

Dereferences the value.

Mutably dereferences the value.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.