How to use Dbus to detect application uniqueness in D?
Hossain Adnan
relay.public.adnan at outlook.com
Fri Sep 27 22:10:48 UTC 2019
Hi I need to detect application uniqueness using dbus. I have a
working code in Rust:
fn run_as_unique_instance() {
println!("First instance detected. Doing work...");
loop {}
}
fn run_as_nonunique_instance() {
println!("Another instance is already running. Quiting...");
std::process::exit(0);
}
fn main() {
let session =
dbus::blocking::Connection::new_session().expect("Cannot
setup a new dbus session");
match session.request_name("com.localserver.app.bus", false,
false, false) {
Ok(dbus::blocking::stdintf::org_freedesktop_dbus::RequestNameReply::PrimaryOwner) => {
run_as_unique_instance()
}
Ok(_) => run_as_nonunique_instance(), //
RequestNameReply::InQueue
Err(_) => panic!("Error in session name request."),
}
}
This creates a new session in dbus and then requests name. If the
response is "PrimaryOwner" it means the application is unique.
However I can't find the similar symbols in ddbus.
https://ddbus.dpldocs.info/search-results.html#!session
https://ddbus.dpldocs.info/search-results.html#!Connection
Returns nothing.
More information about the Digitalmars-d-learn
mailing list