[GanameDemo: added a form page flux@modeemi.fi**20090925071649] { hunk ./ganameDemo.ml 20 +let o (cgi : Netcgi.cgi) fmt = Printf.ksprintf cgi#out_channel#output_string fmt + hunk ./ganameDemo.ml 27 -let operation_page (cgi : Netcgi.cgi) = - let o s = Printf.ksprintf cgi#out_channel#output_string s in - try - let examples = List.map (fun s -> String.split s "=") (String.nsplit (cgi#argument "examples")#value ",") in - let inputs = String.nsplit (cgi#argument "input")#value "," in - o "
";
-	let mapping = Genome.generate_mapping ~output:cgi#out_channel#output_string examples inputs in
-	  o "
"; - ( match mapping with - | None -> o "

Cannot produce mapping

" - | Some mapping -> - o "Mapping:"; - o ""; - List.iter (fun (s1, s2) -> o "" (quote s1) (quote s2)) mapping; - o "
%s%s
"; +let perform_operations (cgi : Netcgi.cgi) examples inputs = + o cgi "
";
+  let mapping = Genome.generate_mapping ~output:cgi#out_channel#output_string examples inputs in
+    o cgi "
"; + ( match mapping with + | None -> o cgi "

Cannot produce mapping

" + | Some mapping -> + o cgi "Mapping:"; + o cgi ""; + List.iter (fun (s1, s2) -> o cgi "" (quote s1) (quote s2)) mapping; + o cgi "
%s%s
"; + + ); + o cgi "" hunk ./ganameDemo.ml 42 - ); - o ""; - cgi#out_channel#commit_work () - with exn -> - o "Error: %s" (Printexc.to_string exn); - cgi#out_channel#commit_work () +let query_page (cgi : Netcgi.cgi) = + o cgi "\ + +

Ganame Demo Page

+
+

Enter examples in form aaa=AAA, one per line:
+ +

Enter inputs, one per line:
+ +
+

+" hunk ./ganameDemo.ml 63 - if incr_operations_if_zero () then - Std.finally decr_operations operation_page cgi + if cgi#argument_exists "input" && cgi#argument_exists "examples" then + if incr_operations_if_zero () then + Std.finally decr_operations + (fun () -> + try + let examples = List.map (fun s -> String.split s "=") (String.nsplit (cgi#argument "examples")#value "\r\n") in + let inputs = String.nsplit (cgi#argument "input")#value "\r\n" in + perform_operations cgi examples inputs; + with exn -> + o cgi "Error: %s" (Printexc.to_string exn); + ) () + else + busy_page cgi hunk ./ganameDemo.ml 77 - busy_page cgi + query_page cgi; + cgi#out_channel#commit_work () + }