daemon: scaffolding for settings / sync
This commit is contained in:
@@ -2,10 +2,13 @@ mod dbus;
|
||||
mod daemon;
|
||||
|
||||
use std::future;
|
||||
use std::sync::{Arc, Mutex};
|
||||
use log::LevelFilter;
|
||||
|
||||
use daemon::Daemon;
|
||||
use dbus::endpoint::Endpoint as DbusEndpoint;
|
||||
use dbus::interface;
|
||||
use dbus::server_impl::ServerImpl;
|
||||
|
||||
fn initialize_logging() {
|
||||
env_logger::Builder::from_default_env()
|
||||
@@ -19,16 +22,32 @@ async fn main() {
|
||||
initialize_logging();
|
||||
|
||||
// Create the daemon
|
||||
let daemon = Daemon::new()
|
||||
.map_err(|e| {
|
||||
log::error!("Failed to start daemon: {}", e);
|
||||
std::process::exit(1);
|
||||
})
|
||||
.unwrap();
|
||||
let daemon = Arc::new(
|
||||
Mutex::new(
|
||||
Daemon::new()
|
||||
.map_err(|e| {
|
||||
log::error!("Failed to start daemon: {}", e);
|
||||
std::process::exit(1);
|
||||
})
|
||||
.unwrap()
|
||||
)
|
||||
);
|
||||
|
||||
// Create the D-Bus endpoint
|
||||
let endpoint = DbusEndpoint::new(daemon);
|
||||
endpoint.start().await;
|
||||
// Create the server implementation
|
||||
let server = ServerImpl::new(daemon);
|
||||
|
||||
// Register DBus interfaces with endpoint
|
||||
let endpoint = DbusEndpoint::new(server.clone());
|
||||
endpoint.register(
|
||||
interface::NAME,
|
||||
interface::OBJECT_PATH,
|
||||
|cr| {
|
||||
vec![
|
||||
interface::register_net_buzzert_kordophone_repository(cr),
|
||||
interface::register_net_buzzert_kordophone_settings(cr)
|
||||
]
|
||||
}
|
||||
).await;
|
||||
|
||||
future::pending::<()>().await;
|
||||
unreachable!()
|
||||
|
||||
Reference in New Issue
Block a user