annotate jamendo/sparql-archived/SeRQL/server.pl @ 27:d95e683fbd35 tip

Enable CORS on urispace redirects as well
author Chris Cannam
date Tue, 20 Feb 2018 14:52:02 +0000
parents df9685986338
children
rev   line source
Chris@0 1 /* $Id$
Chris@0 2
Chris@0 3 Part of SWI-Prolog
Chris@0 4
Chris@0 5 Author: Jan Wielemaker
Chris@0 6 E-mail: jan@swi.psy.uva.nl
Chris@0 7 WWW: http://www.swi-prolog.org
Chris@0 8 Copyright (C): 1985-2004, University of Amsterdam
Chris@0 9
Chris@0 10 This program is free software; you can redistribute it and/or
Chris@0 11 modify it under the terms of the GNU General Public License
Chris@0 12 as published by the Free Software Foundation; either version 2
Chris@0 13 of the License, or (at your option) any later version.
Chris@0 14
Chris@0 15 This program is distributed in the hope that it will be useful,
Chris@0 16 but WITHOUT ANY WARRANTY; without even the implied warranty of
Chris@0 17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Chris@0 18 GNU General Public License for more details.
Chris@0 19
Chris@0 20 You should have received a copy of the GNU Lesser General Public
Chris@0 21 License along with this library; if not, write to the Free Software
Chris@0 22 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Chris@0 23
Chris@0 24 As a special exception, if you link this library with other files,
Chris@0 25 compiled with a Free Software compiler, to produce an executable, this
Chris@0 26 library does not by itself cause the resulting executable to be covered
Chris@0 27 by the GNU General Public License. This exception does not however
Chris@0 28 invalidate any other reasons why the executable file might be covered by
Chris@0 29 the GNU General Public License.
Chris@0 30 */
Chris@0 31
Chris@0 32 :- module(serql_http,
Chris@0 33 [ serql_server/2, % +Port, +Options
Chris@0 34 serql_server_property/1 % -Property
Chris@0 35 ]).
Chris@0 36 :- use_module(library(settings)).
Chris@0 37 :- use_module(http_data).
Chris@0 38 :- use_module(http_sparql).
Chris@0 39 :- use_module(http_user).
Chris@0 40 :- use_module(http_admin).
Chris@0 41 :- use_module(user_db).
Chris@0 42 :- use_module(library('http/thread_httpd')).
Chris@0 43 :- use_module(library('http/http_dispatch')).
Chris@0 44 :- use_module(library('http/http_prefix')).
Chris@0 45 :- use_module(library(time)).
Chris@0 46
Chris@0 47 :- if(exists_source(library(http/http_log))).
Chris@0 48 :- use_module(library(http/http_log)).
Chris@0 49 :- endif.
Chris@0 50
Chris@0 51 :- dynamic
Chris@0 52 start_time/1.
Chris@0 53
Chris@0 54 %% serql_server(?Port, +Options)
Chris@0 55 %
Chris@0 56 % Start Semantic Web Query server at Port. Options are passed to
Chris@0 57 % http_server/2.
Chris@0 58
Chris@0 59 serql_server(Port, Options) :-
Chris@0 60 http_server(serql_reply,
Chris@0 61 [ port(Port),
Chris@0 62 timeout(60),
Chris@0 63 keep_alive_timeout(1)
Chris@0 64 | Options
Chris@0 65 ]),
Chris@0 66 get_time(Time),
Chris@0 67 assert(start_time(Time)).
Chris@0 68
Chris@0 69 serql_reply(Request) :-
Chris@0 70 http_dispatch(Request).
Chris@0 71
Chris@0 72 %% serql_server_property(?Property)
Chris@0 73 %
Chris@0 74 % Query status and attributes of the server. Defined properties
Chris@0 75 % are:
Chris@0 76 %
Chris@0 77 % * port(-Port)
Chris@0 78 % Port on which the server is running.
Chris@0 79 %
Chris@0 80 % * start_time(-Time)
Chris@0 81 % TimeStamp when the server was started.
Chris@0 82
Chris@0 83 serql_server_property(port(Port)) :-
Chris@0 84 http_current_server(serql_reply, Port).
Chris@0 85 serql_server_property(started(Time)) :-
Chris@0 86 start_time(Time).
Chris@0 87
Chris@0 88
Chris@0 89
Chris@0 90