public class OutOfProcessEclipse extends java.lang.Object implements EclipseConnection, EclipseEngine
destroy() method does
not affect the ability to create new OutOfProcessEclipse instances.| Constructor and Description |
|---|
OutOfProcessEclipse(EclipseEngineOptions options)
Create a new OutOfProcessEclipse using the supplied options.
|
| Modifier and Type | Method and Description |
|---|---|
void |
compile(java.io.File f)
Direct ECLiPSe to compile a named object file.
|
void |
destroy()
Terminate the OutOfProcessEclipse process and the connection to it.
|
AsyncEclipseQueue |
getAsyncEclipseQueue(java.lang.String name)
Create or access an asynchronous queue to transfer data between Java
and ECLiPSe.
|
FromEclipseQueue |
getEclipseStderr()
Return a FromEclipseQueue which allows access to the ECLiPSe engine's
stderr stream. |
ToEclipseQueue |
getEclipseStdin()
Return a ToEclipseQueue which allows access to the ECLiPSe engine's
stdin stream. |
FromEclipseQueue |
getEclipseStdout()
Return a FromEclipseQueue which allows access to the ECLiPSe engine's
stdout stream. |
FromEclipseQueue |
getFromEclipseQueue(java.lang.String name)
Create or access a queue to transfer data from ECLiPSe to Java.
|
java.lang.String |
getPath(java.io.File f)
Convert a file path from the Java representation to the ECLiPSe
representation.
|
Atom |
getPeerName()
Return the name by which the peer representing the Java side of the
connection is indexed in ECLiPSe.
|
ToEclipseQueue |
getToEclipseQueue(java.lang.String name)
Create or access a queue to transfer data from Java to ECLiPSe.
|
boolean |
isUsingQueues()
Query the ECLiPSe engine's "use queues" flag.
|
EclipseMultitaskConnection |
registerMultitask(MultitaskListener multitaskListener)
Register this peer as desiring participation in any multitasking
phases that ECLiPSe enters.
|
CompoundTerm |
rpc(CompoundTerm goal)
Make an "RPC" (remote predicate call) to the ECLiPSe engine.
|
CompoundTerm |
rpc(java.lang.Object[] goalTerm)
Convenience
rpc method. |
CompoundTerm |
rpc(java.lang.String goal)
Make an "RPC" (remote predicate call) to the ECLiPSe engine.
|
CompoundTerm |
rpc(java.lang.String functor,
java.lang.Object arg1)
Convenience
rpc method. |
CompoundTerm |
rpc(java.lang.String functor,
java.lang.Object[] args)
Convenience
rpc method. |
CompoundTerm |
rpc(java.lang.String functor,
java.lang.Object arg1,
java.lang.Object arg2)
Convenience
rpc method. |
CompoundTerm |
rpc(java.lang.String functor,
java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3)
Convenience
rpc method. |
CompoundTerm |
rpc(java.lang.String functor,
java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4)
Convenience
rpc method. |
CompoundTerm |
rpc(java.lang.String functor,
java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4,
java.lang.Object arg5)
Convenience
rpc method. |
public OutOfProcessEclipse(EclipseEngineOptions options) throws java.io.IOException, EclipseException
options - settings for the new ECLiPSe engine.java.io.IOException - if the connection to the child process failedEclipseException - if there was a problem setting up the ECLiPSe side
of the connection.public boolean isUsingQueues()
EclipseEngineisUsingQueues in interface EclipseEnginepublic ToEclipseQueue getEclipseStdin() throws EclipseTerminatedException
EclipseEnginestdin stream. Returns null if the ECLiPSe was not set
up to use queue objects for its standard streams (see EclipseEngineOptions).getEclipseStdin in interface EclipseEngineEclipseTerminatedException - if the ECLiPSe engine has been destroyed
or disconnected.public FromEclipseQueue getEclipseStdout() throws EclipseTerminatedException
EclipseEnginestdout stream. Returns null if the ECLiPSe was not set
up to use queue objects for its standard streams (see EclipseEngineOptions).getEclipseStdout in interface EclipseEngineEclipseTerminatedException - if the ECLiPSe engine has been
destroyed.public FromEclipseQueue getEclipseStderr() throws EclipseTerminatedException
EclipseEnginestderr stream. Returns null if the ECLiPSe was not set
up to use queue objects for its standard streams (see EclipseEngineOptions).getEclipseStderr in interface EclipseEngineEclipseTerminatedException - if the ECLiPSe engine has been
destroyed.public void destroy()
throws java.io.IOException
destroy() has been invoked, future invocations of public
methods will throw EclipseTerminatedExceptionsEclipseTerminatedException - if the destroy() method had
already been called.java.io.IOExceptionpublic CompoundTerm rpc(java.lang.String goal) throws EclipseException, java.io.IOException
EclipseConnectionrpc in interface EclipseConnectiongoal - the goal as it would be typed in on the ECLiPSe command line,
(the full stop is unnecessary).EclipseException - if execution of the goal fails or throws an
ECLiPSe exception.java.io.IOException - if there was an I/O problem communicating with the
ECLiPSe engine.EclipseTerminatedException - if this EclipseConnection has
been terminated.public CompoundTerm rpc(CompoundTerm goal) throws EclipseException, java.io.IOException
EclipseConnectionrpc in interface EclipseConnectiongoal - the goal represented as a CompoundTerm.EclipseException - if execution of the goal fails or throws an
ECLiPSe exception.java.io.IOException - if there was an I/O problem communicating with the
ECLiPSe engine.EclipseTerminatedException - if this EclipseConnection has
been terminated.public FromEclipseQueue getFromEclipseQueue(java.lang.String name) throws EclipseException, java.io.IOException
EclipseConnectiongetFromEclipseQueue in interface EclipseConnectionname - the name to be used for the stream representing the queue on
the ECLiPSe side.EclipseException - if the name for the ECLiPSe stream is already in use,
or ECLiPSe could not create its side of the queue for some reason.java.io.IOException - if there was an I/O problem while accessing ECLiPSe.EclipseTerminatedException - if this EclipseConnection has
been terminated.public ToEclipseQueue getToEclipseQueue(java.lang.String name) throws EclipseException, java.io.IOException
EclipseConnectiongetToEclipseQueue in interface EclipseConnectionname - the name to be used for the stream representing the queue on
the ECLiPSe side.EclipseException - if the name for the ECLiPSe stream is already in use,
or ECLiPSe could not create its side of the queue for some reason.java.io.IOException - if there was an I/O problem while accessing ECLiPSe.EclipseTerminatedException - if this EclipseConnection has
been terminated.public AsyncEclipseQueue getAsyncEclipseQueue(java.lang.String name) throws EclipseException, java.io.IOException
EclipseConnectiongetAsyncEclipseQueue in interface EclipseConnectionname - the name to be used for the stream representing the queue on
the ECLiPSe side.EclipseException - if the name for the ECLiPSe stream is already in use,
or ECLiPSe could not create its side of the queue for some reason.java.io.IOException - if there was an I/O problem while accessing ECLiPSe.EclipseTerminatedException - if this EclipseConnection has
been terminated.public void compile(java.io.File f)
throws EclipseException,
java.io.IOException
EclipseConnectioncompile in interface EclipseConnectionf - file the path of the ECLiPSe object file which is to be compiled.EclipseException - if ECLiPSe failed or threw an exception whilst trying
to compile the file.java.io.IOException - if there was an I/O problem while communicating with
ECLiPSe.EclipseTerminatedException - if this EclipseConnection has
been terminated.public java.lang.String getPath(java.io.File f)
throws EclipseException,
java.io.IOException
EclipseConnectiongetPath in interface EclipseConnectionf - the file path to be converted.EclipseException - if ECLiPSe failed or threw an exception whilst trying
to convert the file path.java.io.IOException - if there was an I/O problem while communicating with
ECLiPSe.EclipseTerminatedException - if this EclipseConnection has
been terminated.public CompoundTerm rpc(java.lang.String functor, java.lang.Object arg1) throws EclipseException, java.io.IOException
EclipseConnectionrpc method. The user supplies the functor string and
1 argument.rpc in interface EclipseConnectionEclipseTerminatedException - if this EclipseConnection has
been terminated.EclipseExceptionjava.io.IOExceptionEclipseConnection.rpc(CompoundTerm)public CompoundTerm rpc(java.lang.String functor, java.lang.Object arg1, java.lang.Object arg2) throws EclipseException, java.io.IOException
EclipseConnectionrpc method. The user supplies the functor string and
2 arguments.rpc in interface EclipseConnectionEclipseTerminatedException - if this EclipseConnection has
been terminated.EclipseExceptionjava.io.IOExceptionEclipseConnection.rpc(CompoundTerm)public CompoundTerm rpc(java.lang.String functor, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3) throws EclipseException, java.io.IOException
EclipseConnectionrpc method. The user supplies the functor string and
3 arguments.rpc in interface EclipseConnectionEclipseTerminatedException - if this EclipseConnection has
been terminated.EclipseExceptionjava.io.IOExceptionEclipseConnection.rpc(CompoundTerm)public CompoundTerm rpc(java.lang.String functor, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4) throws EclipseException, java.io.IOException
EclipseConnectionrpc method. The user supplies the functor string and
4 arguments.rpc in interface EclipseConnectionEclipseTerminatedException - if this EclipseConnection has
been terminated.EclipseExceptionjava.io.IOExceptionEclipseConnection.rpc(CompoundTerm)public CompoundTerm rpc(java.lang.String functor, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4, java.lang.Object arg5) throws EclipseException, java.io.IOException
EclipseConnectionrpc method. The user supplies the functor string and
5 arguments.rpc in interface EclipseConnectionEclipseTerminatedException - if this EclipseConnection has
been terminated.EclipseExceptionjava.io.IOExceptionEclipseConnection.rpc(CompoundTerm)public CompoundTerm rpc(java.lang.String functor, java.lang.Object[] args) throws EclipseException, java.io.IOException
EclipseConnectionrpc method. The user supplies the functor string and
an array of arguments.rpc in interface EclipseConnectionEclipseTerminatedException - if this EclipseConnection has
been terminated.EclipseExceptionjava.io.IOExceptionEclipseConnection.rpc(CompoundTerm)public CompoundTerm rpc(java.lang.Object[] goalTerm) throws EclipseException, java.io.IOException
EclipseConnectionrpc method. The user supplies an array. Element 0
is the functor of the goal term and the remaining elements are the arguments.rpc in interface EclipseConnectionEclipseTerminatedException - if this EclipseConnection has
been terminated.EclipseExceptionjava.io.IOExceptionEclipseConnection.rpc(CompoundTerm)public Atom getPeerName()
EclipseConnectiongetPeerName in interface EclipseConnectionpublic EclipseMultitaskConnection registerMultitask(MultitaskListener multitaskListener) throws EclipseException, java.io.IOException
EclipseConnectionregisterMultitask in interface EclipseConnectionmultitaskListener - A listener whose methods are called when
ECLiPSe enters/leaves multitasking phases.EclipseException - if registration fails or throws an
ECLiPSe exception.java.io.IOException - if there was an I/O problem communicating with the
ECLiPSe engine.EclipseTerminatedException - if this EclipseConnection has
been terminated.