From 932ed1c80460940bf8066e9d7502d4b774c3d643 Mon Sep 17 00:00:00 2001 From: Reto Buerki Date: Wed, 7 Oct 2020 15:55:28 +0200 Subject: [PATCH] Add Messages.Is_Signal function --- src/d_bus-messages.adb | 25 +++++++++++++++++++++++++ src/d_bus-messages.ads | 8 ++++++++ 2 files changed, 33 insertions(+) diff --git a/src/d_bus-messages.adb b/src/d_bus-messages.adb index 9d2dca7..d1ee021 100644 --- a/src/d_bus-messages.adb +++ b/src/d_bus-messages.adb @@ -191,6 +191,31 @@ package body D_Bus.Messages is ------------------------------------------------------------------------- + function Is_Signal + (Msg : Message_Type; + Iface : String; + Signal_Name : String) + return Boolean + is + use type C.unsigned; + + C_Iface : C.Strings.chars_ptr := C.Strings.New_String + (Str => Iface); + C_Signal : C.Strings.chars_ptr := C.Strings.New_String + (Str => Signal_Name); + Res : C.unsigned; + begin + Res := dbus_message_is_signal + (message => Msg.Thin_Msg, + iface => C_Iface, + signal_name => C_Signal); + C.Strings.Free (Item => C_Iface); + C.Strings.Free (Item => C_Signal); + return Res = 1; + end Is_Signal; + + ------------------------------------------------------------------------- + function New_Error (Reply_To : Message_Type; Error_Name : String; diff --git a/src/d_bus-messages.ads b/src/d_bus-messages.ads index 3aced2a..2fe5483 100644 --- a/src/d_bus-messages.ads +++ b/src/d_bus-messages.ads @@ -99,6 +99,14 @@ package D_Bus.Messages is -- Checks whether the given message is a method call with specified -- interface and member fields. + function Is_Signal + (Msg : Message_Type; + Iface : String; + Signal_Name : String) + return Boolean; + -- Checks whether the given message is a signal with specified interface + -- and name. + function Is_Null (Msg : Message_Type) return Boolean; -- Returns True if given message is nil. -- 2.30.2