libsession-sys 0.1.1

session management daemon
Documentation
#[cfg(feature = "consolekit")]
pub mod consolekit;
#[cfg(any(feature = "sessiond", feature = "consolekit"))]
mod inotify;
#[cfg(feature = "logind")]
pub mod logind;
#[cfg(feature = "sessiond")]
pub mod sessiond;

use std::ffi;
use std::os::fd;

pub trait Backend {
    fn get_owner_uid(&mut self, pid: u32) -> Option<u32>;

    fn get_display(&mut self, uid: u32) -> Option<String>;

    fn get_state(&mut self, uid: u32) -> Option<crate::LibsessionUserState>;

    fn get_uid(&mut self, session_id: &ffi::CStr) -> Option<u32>;

    fn get_session_id(&mut self, pid: u32) -> Option<String>;

    fn get_session_state(
        &mut self,
        session_id: &ffi::CStr,
    ) -> Option<crate::LibsessionSessionState>;

    fn is_local_session(&self, session_id: &ffi::CStr) -> Option<bool>;

    fn get_monitor(&self) -> Option<Box<dyn BackendMonitor>>;
}

pub trait BackendMonitor {
    fn fd(&self) -> fd::RawFd;

    fn flush(&mut self);
}