Partially on the way to receiving an incoming message
This is getting really ugly, but let's run with it for now.
This commit is contained in:
@@ -9,6 +9,7 @@ mod type_text;
|
||||
pub use type_text::*;
|
||||
|
||||
use crate::telepathy;
|
||||
use std::sync::Arc;
|
||||
|
||||
// FIXME: I'm assuming that all channels will be of type text and 1-1 for now.
|
||||
#[derive(Debug)]
|
||||
@@ -24,29 +25,24 @@ pub fn channel_interfaces() -> Vec<String> {
|
||||
type Result<T> = std::result::Result<T, dbus::tree::MethodErr>;
|
||||
|
||||
impl Channel {
|
||||
fn build_tree(self) -> dbus::tree::Tree<dbus::tree::MTFn, ()> {
|
||||
let c_rc = std::rc::Rc::new(self);
|
||||
pub fn build_object_path(
|
||||
channel: Arc<Channel>,
|
||||
) -> dbus::tree::ObjectPath<dbus::tree::MTFn, ()> {
|
||||
let f = dbus::tree::Factory::new_fn::<()>();
|
||||
let mut tree = f.tree(());
|
||||
|
||||
let c_rc1 = c_rc.clone();
|
||||
let c_rc1 = channel.clone();
|
||||
let chan_iface = telepathy::channel_server(&f, (), move |_| c_rc1.clone());
|
||||
|
||||
let c_rc2 = c_rc.clone();
|
||||
let c_rc2 = channel.clone();
|
||||
let messages_iface =
|
||||
telepathy::channel_interface_messages_server(&f, (), move |_| c_rc2.clone());
|
||||
|
||||
let type_text_iface = telepathy::channel_type_text_server(&f, (), move |_| c_rc.clone());
|
||||
let type_text_iface = telepathy::channel_type_text_server(&f, (), move |_| channel.clone());
|
||||
|
||||
tree = tree.add(
|
||||
f.object_path("", ())
|
||||
.introspectable()
|
||||
.add(chan_iface)
|
||||
.add(messages_iface)
|
||||
.add(type_text_iface),
|
||||
);
|
||||
tree = tree.add(f.object_path("/", ()).introspectable());
|
||||
|
||||
tree
|
||||
f.object_path("", ())
|
||||
.introspectable()
|
||||
.add(chan_iface)
|
||||
.add(messages_iface)
|
||||
.add(type_text_iface)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user