Implement FileChooser portal proxy with virtiofsd mount
This commit is contained in:
parent
116839fb59
commit
eefb000865
6 changed files with 718 additions and 26 deletions
85
sidebus-broker/src/portal/documents.rs
Normal file
85
sidebus-broker/src/portal/documents.rs
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
use std::collections::HashMap;
|
||||
|
||||
use zbus::{proxy, zvariant};
|
||||
|
||||
#[proxy(
|
||||
interface = "org.freedesktop.portal.Documents",
|
||||
default_service = "org.freedesktop.portal.Documents",
|
||||
default_path = "/org/freedesktop/portal/documents"
|
||||
)]
|
||||
pub trait Documents {
|
||||
/// Add method
|
||||
fn add(
|
||||
&self,
|
||||
o_path_fd: zvariant::Fd<'_>,
|
||||
reuse_existing: bool,
|
||||
persistent: bool,
|
||||
) -> zbus::Result<String>;
|
||||
|
||||
/// AddFull method
|
||||
fn add_full(
|
||||
&self,
|
||||
o_path_fds: &[zvariant::Fd<'_>],
|
||||
flags: u32,
|
||||
app_id: &str,
|
||||
permissions: &[&str],
|
||||
) -> zbus::Result<(Vec<String>, HashMap<String, zvariant::OwnedValue>)>;
|
||||
|
||||
/// AddNamed method
|
||||
fn add_named(
|
||||
&self,
|
||||
o_path_parent_fd: zvariant::Fd<'_>,
|
||||
filename: &[u8],
|
||||
reuse_existing: bool,
|
||||
persistent: bool,
|
||||
) -> zbus::Result<String>;
|
||||
|
||||
/// AddNamedFull method
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
fn add_named_full(
|
||||
&self,
|
||||
o_path_fd: zvariant::Fd<'_>,
|
||||
filename: &[u8],
|
||||
flags: u32,
|
||||
app_id: &str,
|
||||
permissions: &[&str],
|
||||
) -> zbus::Result<(String, HashMap<String, zvariant::OwnedValue>)>;
|
||||
|
||||
/// Delete method
|
||||
fn delete(&self, doc_id: &str) -> zbus::Result<()>;
|
||||
|
||||
/// GetHostPaths method
|
||||
fn get_host_paths(&self, doc_ids: &[&str]) -> zbus::Result<HashMap<String, Vec<u8>>>;
|
||||
|
||||
/// GetMountPoint method
|
||||
fn get_mount_point(&self) -> zbus::Result<Vec<u8>>;
|
||||
|
||||
/// GrantPermissions method
|
||||
fn grant_permissions(
|
||||
&self,
|
||||
doc_id: &str,
|
||||
app_id: &str,
|
||||
permissions: &[&str],
|
||||
) -> zbus::Result<()>;
|
||||
|
||||
/// Info method
|
||||
fn info(&self, doc_id: &str) -> zbus::Result<(Vec<u8>, HashMap<String, Vec<String>>)>;
|
||||
|
||||
/// List method
|
||||
fn list(&self, app_id: &str) -> zbus::Result<HashMap<String, Vec<u8>>>;
|
||||
|
||||
/// Lookup method
|
||||
fn lookup(&self, filename: &[u8]) -> zbus::Result<String>;
|
||||
|
||||
/// RevokePermissions method
|
||||
fn revoke_permissions(
|
||||
&self,
|
||||
doc_id: &str,
|
||||
app_id: &str,
|
||||
permissions: &[&str],
|
||||
) -> zbus::Result<()>;
|
||||
|
||||
/// version property
|
||||
#[zbus(property, name = "version")]
|
||||
fn version(&self) -> zbus::Result<u32>;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue