Started to factor out DbusRegistry from Endpoint
This commit is contained in:
@@ -5,9 +5,9 @@ use log::LevelFilter;
|
||||
use std::future;
|
||||
|
||||
use daemon::signals::Signal;
|
||||
use daemon::{Attachment, Daemon};
|
||||
use daemon::Daemon;
|
||||
|
||||
use dbus::endpoint::Endpoint as DbusEndpoint;
|
||||
use dbus::endpoint::DbusRegistry;
|
||||
use dbus::interface;
|
||||
use dbus::server_impl::ServerImpl;
|
||||
use dbus_tokio::connection;
|
||||
@@ -54,32 +54,20 @@ async fn main() {
|
||||
.await
|
||||
.expect("Unable to acquire dbus name");
|
||||
|
||||
let attachment = Attachment {
|
||||
guid: "asdf".into(),
|
||||
path: "/dev/null".into(),
|
||||
downloaded: false,
|
||||
};
|
||||
// Create shared D-Bus registry
|
||||
let dbus_registry = DbusRegistry::new(connection.clone());
|
||||
|
||||
let att_endpoint = DbusEndpoint::new(connection.clone(), attachment);
|
||||
att_endpoint
|
||||
.register_object("/net/buzzert/kordophonecd/attachments/test", |cr| {
|
||||
vec![interface::register_net_buzzert_kordophone_attachment(cr)]
|
||||
})
|
||||
.await;
|
||||
// Create and register server implementation
|
||||
let server = ServerImpl::new(daemon.event_sender.clone(), dbus_registry.clone());
|
||||
|
||||
// Create the server implementation
|
||||
let server = ServerImpl::new(connection.clone(), daemon.event_sender.clone());
|
||||
|
||||
// Register DBus interfaces with endpoint
|
||||
let endpoint = DbusEndpoint::new(connection.clone(), server);
|
||||
endpoint
|
||||
.register_object(interface::OBJECT_PATH, |cr| {
|
||||
vec![
|
||||
interface::register_net_buzzert_kordophone_repository(cr),
|
||||
interface::register_net_buzzert_kordophone_settings(cr),
|
||||
]
|
||||
})
|
||||
.await;
|
||||
dbus_registry.register_object(
|
||||
interface::OBJECT_PATH,
|
||||
server,
|
||||
|cr| vec![
|
||||
interface::register_net_buzzert_kordophone_repository(cr),
|
||||
interface::register_net_buzzert_kordophone_settings(cr),
|
||||
]
|
||||
);
|
||||
|
||||
let mut signal_receiver = daemon.obtain_signal_receiver();
|
||||
tokio::spawn(async move {
|
||||
@@ -89,7 +77,7 @@ async fn main() {
|
||||
match signal {
|
||||
Signal::ConversationsUpdated => {
|
||||
log::debug!("Sending signal: ConversationsUpdated");
|
||||
endpoint
|
||||
dbus_registry
|
||||
.send_signal(interface::OBJECT_PATH, DbusSignals::ConversationsUpdated {})
|
||||
.unwrap_or_else(|_| {
|
||||
log::error!("Failed to send signal");
|
||||
@@ -102,7 +90,7 @@ async fn main() {
|
||||
"Sending signal: MessagesUpdated for conversation {}",
|
||||
conversation_id
|
||||
);
|
||||
endpoint
|
||||
dbus_registry
|
||||
.send_signal(
|
||||
interface::OBJECT_PATH,
|
||||
DbusSignals::MessagesUpdated { conversation_id },
|
||||
|
||||
Reference in New Issue
Block a user