Some actual progress
This commit is contained in:
parent
2d32e1612e
commit
fb42d4affd
33
src/main.rs
33
src/main.rs
@ -1,5 +1,5 @@
|
||||
use zbus::{Connection, Result};
|
||||
use futures_util::stream::TryStreamExt;
|
||||
use zbus::{Connection, Result};
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<()> {
|
||||
@ -8,25 +8,24 @@ async fn main() -> Result<()> {
|
||||
.request_name("org.freedesktop.Notifications") // Requesting dbus for this service name. Any other services using this name should be stopped/disabled before this
|
||||
.await?;
|
||||
|
||||
let mut stream = zbus::MessageStream::from(&connection); // Convert connection to a MessageStream, yields Message items
|
||||
let mut stream = zbus::MessageStream::from(&connection); // Convert connection to a MessageStream, yields Message items
|
||||
|
||||
while let Some(msg) = stream.try_next().await? {
|
||||
println!("{}", msg);
|
||||
let msg_header = msg.header();
|
||||
dbg!(&msg);
|
||||
|
||||
match msg_header.message_type() {
|
||||
zbus::message::Type::MethodCall => {
|
||||
// real code would check msg_header path(), interface() and member()
|
||||
// handle invalid calls, introspection, errors etc
|
||||
let body = msg.body();
|
||||
let arg: &str = body.deserialize()?;
|
||||
println!("{}", arg);
|
||||
connection.reply(&msg, &(format!("Hello {}!", arg))).await?;
|
||||
|
||||
// break;
|
||||
// Check if the message is a method call to the "Notify" method
|
||||
if let Some(member) = msg.header().member().map(|m| m.as_str()) {
|
||||
if member == "GetServerInformation" {
|
||||
println!("Member is: {}", member);
|
||||
// Respond with server information
|
||||
let response = ("SNot", "candifloss.cc", "0.1.0", "1.0"); // (name, vendor, version, spec_version)
|
||||
connection.reply(&msg, &response).await?;
|
||||
} else if member == "Notify" {
|
||||
println!("Member is: {}", member);
|
||||
// Respond with a notification ID (usually a unique number)
|
||||
let notification_id: u32 = 1; // This could be incremented or generated
|
||||
connection.reply(&msg, ¬ification_id).await?;
|
||||
} else {
|
||||
println!("Unhandled method: {}", member);
|
||||
}
|
||||
_ => continue,
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user