From 80f0b4cd535d792f47f10a2925594549cad6425a Mon Sep 17 00:00:00 2001 From: Tomasz Wroblewski Date: Wed, 28 Oct 2009 17:30:02 +0000 Subject: [PATCH] Simplify registering signal handlers - use only interface name --- common/dbus_server.ml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/common/dbus_server.ml b/common/dbus_server.ml index 85bbacc..d69ed23 100644 --- a/common/dbus_server.ml +++ b/common/dbus_server.ml @@ -83,15 +83,15 @@ let send_response req args = (* Signal interface *) type signal_handler = DBus.message -> (* member *) string -> (* path *) string -> unit -type signal_interface = ((* signal name *) string * signal_handler) list +type signal_handler_map = ((* interface name *) string * signal_handler) list -let signal_interfaces = ref ([] : ((* interface name *) string * signal_interface) list) +let signal_handlers = ref ( [] : signal_handler_map ) -let register_signal_interface name interface = - signal_interfaces := (name, interface) :: !signal_interfaces +let register_signal_interface interface_name handler = + signal_handlers := (interface_name, handler) :: !signal_handlers -let remove_signal_interface name = - signal_interfaces := List.filter (fun (n, _) -> n <> name) !signal_interfaces +let remove_signal_interface interface_name = + signal_handlers := List.filter (fun (n, _) -> n <> interface_name) !signal_handlers let dispatch_signal msg = let opt_intf = DBus.Message.get_interface msg in @@ -99,9 +99,7 @@ let dispatch_signal msg = let opt_path = DBus.Message.get_path msg in match opt_intf, opt_member, opt_path with | Some i, Some m, Some p -> - let handler = (try let sig_intf = List.assoc i !signal_interfaces in - Some (List.assoc m sig_intf) - with Not_found -> None) in + let handler = (try Some (List.assoc i !signal_handlers) with Not_found -> None) in (match handler with | None -> () | Some h -> h msg m p -- 2.39.5