]> xenbits.xen.org Git - xenclient/toolstack.git/commitdiff
Simplify registering signal handlers - use only interface name
authorTomasz Wroblewski <tomasz.wroblewski@citrix.com>
Wed, 28 Oct 2009 17:30:02 +0000 (17:30 +0000)
committerTomasz Wroblewski <tomasz.wroblewski@citrix.com>
Wed, 28 Oct 2009 17:30:02 +0000 (17:30 +0000)
common/dbus_server.ml

index 85bbacc64a628b3e8ec8a817ef4c7c9070f47065..d69ed23f74fad34fe7f8dd5c624cb6fb8b7a304e 100644 (file)
@@ -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