diff --git a/kordophoned/include/net.buzzert.kordophonecd.Server.xml b/kordophoned/include/net.buzzert.kordophonecd.Server.xml
index 4e2b4b9..954009f 100644
--- a/kordophoned/include/net.buzzert.kordophonecd.Server.xml
+++ b/kordophoned/include/net.buzzert.kordophonecd.Server.xml
@@ -4,5 +4,16 @@
+
+
+
+
+
+
diff --git a/kordophoned/src/daemon/mod.rs b/kordophoned/src/daemon/mod.rs
index 5f75ab0..0cdb6aa 100644
--- a/kordophoned/src/daemon/mod.rs
+++ b/kordophoned/src/daemon/mod.rs
@@ -1,5 +1,3 @@
-use std::sync::Arc;
-
pub struct Daemon {
pub version: String,
}
diff --git a/kordophoned/src/dbus/endpoint.rs b/kordophoned/src/dbus/endpoint.rs
index 66f6350..33cb906 100644
--- a/kordophoned/src/dbus/endpoint.rs
+++ b/kordophoned/src/dbus/endpoint.rs
@@ -1,26 +1,16 @@
-use crate::{dbus::interface::OBJECT_PATH, daemon::Daemon};
+use log::info;
+use std::sync::Arc;
+use crate::{daemon::Daemon, dbus::interface};
-use crossroads::Crossroads;
+use dbus_crossroads::Crossroads;
+use dbus_tokio::connection;
use dbus::{
- channel::{MatchingReceiver, Sender},
message::MatchRule,
nonblock::SyncConnection,
+ channel::{Sender, MatchingReceiver},
Path,
};
-use dbus_crossroads as crossroads;
-use dbus_tokio::connection;
-use dbus_tree::{DataType, MethodErr};
-use log::info;
-use std::{future::Future, sync::Arc, thread};
-
-mod dbus_interface {
- #![allow(unused)]
- include!(concat!(env!("OUT_DIR"), "/kordophone-server.rs"));
-}
-
-use dbus_interface::NetBuzzertKordophoneServer;
-
pub struct Endpoint {
connection: Arc,
daemon: Arc,
@@ -62,8 +52,8 @@ impl Endpoint {
)));
// Register the daemon as a D-Bus object.
- let token = dbus_interface::register_net_buzzert_kordophone_server(&mut cr);
- cr.insert(OBJECT_PATH, &[token], self.daemon.clone());
+ let token = interface::register_net_buzzert_kordophone_server(&mut cr);
+ cr.insert(interface::OBJECT_PATH, &[token], self.daemon.clone());
// Start receiving messages.
self.connection.start_receive(
@@ -80,14 +70,7 @@ impl Endpoint {
where
S: dbus::message::SignalArgs + dbus::arg::AppendAll,
{
- let message = signal.to_emit_message(&Path::new(OBJECT_PATH).unwrap());
+ let message = signal.to_emit_message(&Path::new(interface::OBJECT_PATH).unwrap());
self.connection.send(message)
}
-
-}
-
-impl NetBuzzertKordophoneServer for Arc {
- fn get_version(&mut self) -> Result {
- Ok(self.version.clone())
- }
}
diff --git a/kordophoned/src/dbus/mod.rs b/kordophoned/src/dbus/mod.rs
index e178de5..ff97742 100644
--- a/kordophoned/src/dbus/mod.rs
+++ b/kordophoned/src/dbus/mod.rs
@@ -1,6 +1,11 @@
pub mod endpoint;
+mod server_impl;
-pub mod interface {
- pub static NAME: &str = "net.buzzert.kordophonecd";
- pub static OBJECT_PATH: &str = "/net/buzzert/kordophone/Server";
-}
+mod interface {
+ #![allow(unused)]
+
+ pub const NAME: &str = "net.buzzert.kordophonecd";
+ pub const OBJECT_PATH: &str = "/net/buzzert/kordophonecd";
+
+ include!(concat!(env!("OUT_DIR"), "/kordophone-server.rs"));
+}
\ No newline at end of file
diff --git a/kordophoned/src/dbus/server_impl.rs b/kordophoned/src/dbus/server_impl.rs
new file mode 100644
index 0000000..b356a81
--- /dev/null
+++ b/kordophoned/src/dbus/server_impl.rs
@@ -0,0 +1,16 @@
+use dbus::arg;
+use dbus_tree::MethodErr;
+use std::sync::Arc;
+
+use crate::daemon::Daemon;
+use crate::dbus::interface::NetBuzzertKordophoneServer as DbusServer;
+
+impl DbusServer for Arc {
+ fn get_version(&mut self) -> Result {
+ Ok(self.version.clone())
+ }
+
+ fn get_conversations(&mut self) -> Result, dbus::MethodErr> {
+ todo!()
+ }
+}
\ No newline at end of file