PrologSession
handles the connection with the Prolog Server.
Currently only synchronous connections with the server are supported.
Field Summary | |
---|---|
public static final string |
SESSION_ATTRIBUTE_NAME
|
Constructor Summary | |
---|---|
PrologSession()
Creates a new PrologSession instance with default Prolog
server settings. |
Method Summary | |
---|---|
public static bool |
debugging()
|
public int |
getTimeout()
Returns the timeout in milliseconds before the connection to the Prolog server is reset (when a query is not answered). |
public void |
setTimeout(int timeout)
Sets the timeout in milliseconds before the connection to the Prolog server is reset (when a query is not answered). |
public static PrologSession |
getPrologSession(string name)
Returns the PrologSession registered in JNDI with
the given name. |
public static PrologSession |
getPrologSession(string name, HttpSession httpSession)
Returns the PrologSession registered in JNDI with
the given name. |
public int |
getPort()
Returns the port of the Prolog server. |
public void |
setPort(int prologServerPort)
Sets the port of the Prolog server (default 8066 ). |
public string |
getHost()
Returns the host of the Prolog server (exactly as registered in setHost ). |
public void |
setHost(string prologServerHost)
Sets the host of the Prolog server (default is localhost ). |
public bool |
isAlwaysClosing()
|
public void |
setAlwaysClose(bool close)
Set whether to close connections after each send. |
public void |
setAutoConnect(bool autoConnect)
Sets the connection mode of this PrologSession . |
public bool |
isAutoConnecting()
Returns the state of the auto connect mode. |
public QueryAnswer |
executeQuery(string query)
Sends a query to the Prolog server and waits for the answer before returning the null . |
public QueryAnswer |
executeQuery(string query, Bindings bindings)
Sends a query to the Prolog server and waits for the answer before returning the null . |
public QueryAnswer |
executeQuery(string query, Bindings bindings, string sessionID)
Sends a query to the Prolog server and waits for the answer before returning the null . |
public void |
connect()
Connects to the Prolog server. |
public bool |
isConnected()
Returns true if a connection with the Prolog server is open
and false otherwise. |
public void |
disconnect()
Closes the connection with the Prolog server. |
protected void |
cancelQuery()
Called by the timeout monitor when a query takes too long. |
Field Detail |
---|
public static final string SESSION_ATTRIBUTE_NAME
Constructor Detail |
---|
PrologSession()
PrologSession
instance with default Prolog
server settings.
Method Detail |
---|
public static bool debugging()
public int getTimeout()
public void setTimeout(int timeout)
0
will disable timeouts for this prolog session. Default is
2000 milliseconds.
When a connection times out it will be closed silently.
timeout
- int
timeout in milliseconds or 0
to
disable timeoutspublic static PrologSession getPrologSession(string name)
PrologSession
registered in JNDI with
the given name. Use this method in application servers where
services are registered using JNDI. Please note: the application server
must be configured to register the PrologSession
with the
given name for this method to work.
name
- the name of the prolog sessionnull
if no such session
could be foundpublic static PrologSession getPrologSession(string name, HttpSession httpSession)
PrologSession
registered in JNDI with
the given name. The PrologSession
will make use of
sessions and the session id will be the same as in the
HTTPSession
. Use this method in web application servers with
support for servlets and HTTPSession
(and when support for
sessions is desired). Note: This will cause the
PrologSession
to include the session id in its queries.
name
- the name of the prolog sessionhttpSession
- the http sessionpublic int getPort()
public void setPort(int prologServerPort)
8066
).
prologServerPort
- the port of the Prolog serverpublic string getHost()
setHost
).
public void setHost(string prologServerHost)
localhost
).
The host can be specified as either IP-address or host name.
prologServerHost
- the host as an IP-address or host namepublic bool isAlwaysClosing()
public void setAlwaysClose(bool close)
close
- whether to close after each sendpublic void setAutoConnect(bool autoConnect)
PrologSession
. If set to
true
it will ensure that it is connected to the Prolog
server as soon as a call to
executeQuery
or
anything else causing a need for communication happens. This is by
default set to false
.
autoConnect
- whether to auto-connectpublic bool isAutoConnecting()
public QueryAnswer executeQuery(string query)
null
.
Anonymous variables (underscore, _
), will be ignored, and
thus not accessible in the null
. executeQuery
throws
null
if communication problems with
the server occurs. Please note: executeQuery
will only
return one answer.
query
- the query to send to the prolog server. The characters in the
query are restricted to ISO-8859-1.public QueryAnswer executeQuery(string query, Bindings bindings)
null
.
bindings
are variable bindings for the given query and will
ensure that the values are stuffed correctly.
An example:
QueryAnswer answer = executeQuery("evaluate(In,Out)", new Bindings().bind("In","4*9."));
query
- the query to send to the prolog server The characters in the
query are restricted to ISO-8859-1.bindings
- the variable bindings to use in the querypublic QueryAnswer executeQuery(string query, Bindings bindings, string sessionID)
null
.
bindings
are variable bindings for the given query and will
ensure that the values are stuffed correctly.
query
- the query to send to the prolog server The characters in the
query are restricted to ISO-8859-1.bindings
- the variable bindings to use in the querysessionID
- the session id to give to the prolog serverpublic void connect()
executeQuery
will automatically connect to the server when called.
public bool isConnected()
true
if a connection with the Prolog server is open
and false
otherwise.
public void disconnect()
connect
.
protected void cancelQuery()