1 extern crate dbus; 2 3 use dbus::{Connection, BusType, NameFlag}; 4 use dbus::tree::Factory; 5 6 fn main() { 7 let c = Connection::get_private(BusType::Session).unwrap(); 8 c.register_name("com.example.dbustest", NameFlag::ReplaceExisting as u32).unwrap(); 9 10 let f = Factory::new_fn(); 11 let tree = f.tree().add(f.object_path("/hello").introspectable().add( 12 f.interface("com.example.dbustest").add_m( 13 f.method("Hello", |m,_,_| { 14 let s = format!("Hello {}!", m.sender().unwrap()); 15 Ok(vec!(m.method_return().append(s))) 16 }).out_arg(("reply", "s")) // One output argument, no input arguments 17 ) 18 )); 19 20 tree.set_registered(&c, true).unwrap(); 21 for _ in tree.run(&c, c.iter(1000)) {} 22 } 23