use dbus_tree::{Factory, MTSync, Method};
use crate::dbus_api::{
api::manager_2_1::methods::{create_pool, set_key, unlock_pool, unset_key},
types::TData,
};
pub fn create_pool_method(f: &Factory<MTSync<TData>, TData>) -> Method<MTSync<TData>, TData> {
f.method("CreatePool", (), create_pool)
.in_arg(("name", "s"))
.in_arg(("redundancy", "(bq)"))
.in_arg(("devices", "as"))
.in_arg(("key_desc", "(bs)"))
.out_arg(("result", "(b(oao))"))
.out_arg(("return_code", "q"))
.out_arg(("return_string", "s"))
}
pub fn set_key_method(f: &Factory<MTSync<TData>, TData>) -> Method<MTSync<TData>, TData> {
f.method("SetKey", (), set_key)
.in_arg(("key_desc", "s"))
.in_arg(("key_fd", "h"))
.in_arg(("interactive", "b"))
.out_arg(("result", "(bb)"))
.out_arg(("return_code", "q"))
.out_arg(("return_string", "s"))
}
pub fn unset_key_method(f: &Factory<MTSync<TData>, TData>) -> Method<MTSync<TData>, TData> {
f.method("UnsetKey", (), unset_key)
.in_arg(("key_desc", "s"))
.out_arg(("result", "b"))
.out_arg(("return_code", "q"))
.out_arg(("return_string", "s"))
}
pub fn unlock_pool_method(f: &Factory<MTSync<TData>, TData>) -> Method<MTSync<TData>, TData> {
f.method("UnlockPool", (), unlock_pool)
.in_arg(("pool_uuid", "s"))
.out_arg(("result", "(bas)"))
.out_arg(("return_code", "q"))
.out_arg(("return_string", "s"))
}