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.

Reply via email to