/** * Warranty & Liability * To the extent permitted by applicable law and unless explicitly * otherwise agreed upon, XLOG Technologies AG makes no warranties * regarding the provided information. XLOG Technologies AG assumes * no liability that any problems might be solved with the information * provided by XLOG Technologies AG. * * Rights & License * All industrial property rights regarding the information - copyright * and patent rights in particular - are the sole property of XLOG * Technologies AG. If the company was not the originator of some * excerpts, XLOG Technologies AG has at least obtained the right to * reproduce, change and translate the information. * * Reproduction is restricted to the whole unaltered document. Reproduction * of the information is only allowed for non-commercial uses. Selling, * giving away or letting of the execution of the library is prohibited. * The library can be distributed as part of your applications and libraries * for execution provided this comment remains unchanged. * * Restrictions * Only to be distributed with programs that add significant and primary * functionality to the library. Not to be distributed with additional * software intended to replace any components of the library. * * Trademarks * Jekejeke is a registered trademark of XLOG Technologies AG. */ /******************************************************************/ /* HTTP Server */ /******************************************************************/ :- use_module(library(http/http_server)). :- http_handler('/hobbit1.txt', reply_hobbit, []). :- http_handler('/hobbit2.txt', reply_hobbit, []). :- http_handler('/hobbit3.txt', reply_hobbit, []). :- http_handler('/hobbit4.txt', reply_hobbit, []). :- http_handler('/hobbit5.txt', reply_hobbit, []). :- http_handler('/hobbit6.txt', reply_hobbit, []). :- http_handler('/hobbit7.txt', reply_hobbit, []). :- http_handler('/hobbit8.txt', reply_hobbit, []). :- http_handler('/hobbit9.txt', reply_hobbit, []). :- http_handler('/hobbit10.txt', reply_hobbit, []). :- http_handler('/', reply_not_found, [prefix]). reply_hobbit(_) :- sleep(1), write('content-type: text/plain;charset=utf-8'), nl, write('transfer-encoding: chunked'), nl, write('access-control-allow-origin: *'), nl, nl, open('C:/Projects/Novacore/Prototyping/other5/zone2/assets/hobbit.txt', read, S), (enum_lines(S, Line), write(Line), nl, fail; true), close(S). reply_not_found(_) :- write('status: 404'), nl, write('content-type: text/plain;charset=utf-8'), nl, nl, write('Error 404: Not found'). /******************************************************************/ /* Line Helper */ /******************************************************************/ % enum_lines(+Stream, -String) enum_lines(S, Line) :- repeat, read_line_to_string(S, Line2), (Line2 = end_of_file -> !, fail; Line = Line2). /******************************************************************/ /* Main */ /******************************************************************/ :- http_server([workers(10),port(8086)]).