X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FsearchEngine%2FsearchEngine.ml;h=0e28725feabcb510f10ae95754fca67919c7f5f5;hb=09151f33b14507e4d20380f3100a6db5f49f3f46;hp=5e742b243a6b9d04c0b1f6b96a5c89d92e49dda4;hpb=28f262128cd08dfaad435f73d3f4eee5976993d6;p=helm.git diff --git a/helm/searchEngine/searchEngine.ml b/helm/searchEngine/searchEngine.ml index 5e742b243..0e28725fe 100644 --- a/helm/searchEngine/searchEngine.ml +++ b/helm/searchEngine/searchEngine.ml @@ -33,14 +33,7 @@ Http_common.debug := true;; (** accepted HTTP servers for ask_uwobo method forwarding *) let valid_servers = [ "mowgli.cs.unibo.it:58080" ; "mowgli.cs.unibo.it" ; "localhost:58080" ] ;; -module MQICallbacks = - struct - let log s = debug_print s - end - -module MQI = MQueryInterpreter.Make(MQICallbacks) - -let mqi_options = "" (* default MathQL interpreter options *) +let mqi_flags = [] (* default MathQL interpreter options *) open Printf;; @@ -183,19 +176,21 @@ in let callback (req: Http_types.request) outchan = try debug_print (sprintf "Received request: %s" req#path); - if req#path <> "/getpage" then - ignore (MQI.init mqi_options); (match req#path with | "/execute" -> + let mqi_handle = MQIConn.init mqi_flags debug_print in let query_string = req#param "query" in let lexbuf = Lexing.from_string query_string in let query = MQueryUtil.query_of_text lexbuf in - let result = MQueryGenerator.execute_query query in + let result = MQueryGenerator.execute_query mqi_handle query in let result_string = pp_result result in + MQIConn.close mqi_handle; Http_daemon.respond ~body:result_string ~headers:[contype] outchan | "/locate" -> + let mqi_handle = MQIConn.init mqi_flags debug_print in let id = req#param "id" in - let result = MQueryGenerator.locate id in + let result = MQueryGenerator.locate mqi_handle id in + MQIConn.close mqi_handle; Http_daemon.respond ~headers:[contype] ~body:(pp_result result) outchan | "/getpage" -> (* TODO implement "is_permitted" *) @@ -252,6 +247,7 @@ let callback (req: Http_types.request) outchan = | "/searchPattern" | "/matchConclusion" | "/locateInductivePrinciple" -> + let mqi_handle = MQIConn.init mqi_flags debug_print in let term_string = req#param "term" in let lexbuf = Lexing.from_string term_string in let (context, metasenv) = ([], []) in @@ -396,13 +392,13 @@ List.iter (fun u -> prerr_endline ("<" ^ Netencoding.Url.decode u ^ ">")) tail; in let module Disambiguate' = Disambiguate.Make (Chat) in let (id_to_uris', metasenv', term') = - Disambiguate'.disambiguate_input + Disambiguate'.disambiguate_input mqi_handle context metasenv dom mk_metasenv_and_expr id_to_uris in (match metasenv' with | [] -> let must',only = get_constraints term' req#path in - let results = MQueryGenerator.searchPattern must' only in + let results = MQueryGenerator.searchPattern mqi_handle must' only in Http_daemon.send_basic_headers ~code:200 outchan ; Http_daemon.send_CRLF outchan ; iter_file @@ -437,12 +433,10 @@ List.iter (fun u -> prerr_endline ("<" ^ Netencoding.Url.decode u ^ ">")) tail; Http_daemon.respond ~headers:[contype] ~body:"some implicit variables are still unistantiated :-(" - outchan) - + outchan); + MQIConn.close mqi_handle | invalid_request -> Http_daemon.respond_error ~status:(`Client_error `Bad_request) outchan); - if req#path <> "/getpage" then - MQI.close mqi_options; debug_print (sprintf "%s done!" req#path) with | Chat_unfinished -> prerr_endline "Chat unfinished, Try again!"