diff options
author | buisson | 2005-04-29 09:35:43 +0000 |
---|---|---|
committer | buisson | 2005-04-29 09:35:43 +0000 |
commit | 22c1e6dbe7cf74936e5ca29eadeff81312ccc506 (patch) | |
tree | 3304815b956eb5c76674fa2763d3da8a2e73394f /examples/ivyprobe.ml | |
parent | 23abb4b87c7e40ed259dd02f653516f60e55ade4 (diff) | |
download | ivy-ocaml-22c1e6dbe7cf74936e5ca29eadeff81312ccc506.zip ivy-ocaml-22c1e6dbe7cf74936e5ca29eadeff81312ccc506.tar.gz ivy-ocaml-22c1e6dbe7cf74936e5ca29eadeff81312ccc506.tar.bz2 ivy-ocaml-22c1e6dbe7cf74936e5ca29eadeff81312ccc506.tar.xz |
Initial revision
Diffstat (limited to 'examples/ivyprobe.ml')
-rw-r--r-- | examples/ivyprobe.ml | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/examples/ivyprobe.ml b/examples/ivyprobe.ml new file mode 100644 index 0000000..47bd2aa --- /dev/null +++ b/examples/ivyprobe.ml @@ -0,0 +1,40 @@ +(* $Id$ *) + +let print_message app message = + Printf.printf "%s sent" (Ivy.name_of_client app); + Array.iter (fun s -> Printf.printf " '%s'" s) message; + print_newline () + +let read = fun channel -> + let l = input_line channel in + Ivy.send l + +let watch_clients c e = + let dis = match e with Ivy.Connected -> "" | Ivy.Disconnected -> "dis" in + Printf.printf "%s %sconnected from %s\n" + (Ivy.name_of_client c) + dis + (Ivy.host_of_client c); + flush stdout + +let init = fun () -> + let regexp = ref "" + and name = ref "MLIVYPROBE" + and port = ref 2010 + and domain = ref "127.255.255.255" in + Arg.parse + [ "-b", Arg.Int (fun x -> port := x), "<Port number>\tDefault is 2010, unused if IVYBUS is set"; + "-domain", Arg.String (fun x -> domain := x), "<Network address>\tDefault is 127.255.255.255, unused if IVYBUS is set"; + "-n", Arg.String (fun s -> name := s), "<Name of the prober>\tDefault is MLIVYPROBE"] + (fun s -> regexp := s) + "Usage: "; + + let bus = + try Sys.getenv "IVYBUS" with + Not_found -> Printf.sprintf "%s:%d" !domain !port in + Ivy.init !name "READY" watch_clients; + Ivy.start bus; + + Printf.printf "\nEnd of file to stop\n\n"; flush stdout; + + ignore (Ivy.bind print_message !regexp) |