From cc997a6ac46d5c8be431a622a06ef27487f82024 Mon Sep 17 00:00:00 2001 From: Julien Puydt Date: Fri, 14 Oct 2022 09:02:49 +0200 Subject: Import obus_1.2.4.orig.tar.gz [dgit import orig obus_1.2.4.orig.tar.gz] --- examples/list_services.ml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 examples/list_services.ml (limited to 'examples/list_services.ml') diff --git a/examples/list_services.ml b/examples/list_services.ml new file mode 100644 index 0000000..44b7da1 --- /dev/null +++ b/examples/list_services.ml @@ -0,0 +1,33 @@ +(* + * list_services.ml + * ---------------- + * Copyright : (c) 2008, Jeremie Dimino + * Licence : BSD3 + * + * This file is a part of obus, an ocaml implementation of D-Bus. + *) + +(* List services with their owner *) + +open Lwt +open Lwt_io + +let list name get_bus = + let%lwt () = printlf "service name mapping on %s bus:" name in + let%lwt bus = get_bus () in + + (* Get the list of all names on the session bus *) + let%lwt names = OBus_bus.list_names bus in + + Lwt_list.iter_p + (fun name -> + let%lwt owner = OBus_bus.get_name_owner bus name in + printlf " %s -> %s" owner name) + + (* Select only names which are not connection unique names *) + (List.filter (fun s -> s.[0] <> ':') names) + +let () = Lwt_main.run begin + let%lwt () = list "session" OBus_bus.session in + list "system" OBus_bus.system +end -- cgit v1.2.3