use crate::SchedMode;
use crate::SupportedSched;
#[zbus::proxy(
interface = "org.scx.Loader",
default_service = "org.scx.Loader",
default_path = "/org/scx/Loader"
)]
pub trait LoaderClient {
fn start_scheduler(&self, scx_name: SupportedSched, sched_mode: SchedMode) -> zbus::Result<()>;
fn start_scheduler_with_args(
&self,
scx_name: SupportedSched,
scx_args: &[String],
) -> zbus::Result<()>;
fn stop_scheduler(&self) -> zbus::Result<()>;
fn switch_scheduler(&self, scx_name: SupportedSched, sched_mode: SchedMode)
-> zbus::Result<()>;
fn switch_scheduler_with_args(
&self,
scx_name: SupportedSched,
scx_args: &[String],
) -> zbus::Result<()>;
fn restart_scheduler(&self) -> zbus::Result<()>;
fn restore_default(&self) -> zbus::Result<()>;
#[zbus(property)]
fn current_scheduler(&self) -> zbus::Result<String>;
#[zbus(property)]
fn scheduler_mode(&self) -> zbus::Result<SchedMode>;
#[zbus(property)]
fn current_scheduler_args(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn supported_schedulers(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn default_scheduler(&self) -> zbus::Result<String>;
#[zbus(property)]
fn default_mode(&self) -> zbus::Result<SchedMode>;
}