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()
EclipseEngine
isUsingQueues
in interface EclipseEngine
public ToEclipseQueue getEclipseStdin() throws EclipseTerminatedException
EclipseEngine
stdin
stream. Returns null if the ECLiPSe was not set
up to use queue objects for its standard streams (see EclipseEngineOptions
).getEclipseStdin
in interface EclipseEngine
EclipseTerminatedException
- if the ECLiPSe engine has been destroyed
or disconnected.public FromEclipseQueue getEclipseStdout() throws EclipseTerminatedException
EclipseEngine
stdout
stream. Returns null if the ECLiPSe was not set
up to use queue objects for its standard streams (see EclipseEngineOptions
).getEclipseStdout
in interface EclipseEngine
EclipseTerminatedException
- if the ECLiPSe engine has been
destroyed.public FromEclipseQueue getEclipseStderr() throws EclipseTerminatedException
EclipseEngine
stderr
stream. Returns null if the ECLiPSe was not set
up to use queue objects for its standard streams (see EclipseEngineOptions
).getEclipseStderr
in interface EclipseEngine
EclipseTerminatedException
- 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.IOException
public CompoundTerm rpc(java.lang.String goal) throws EclipseException, java.io.IOException
EclipseConnection
rpc
in interface EclipseConnection
goal
- 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
EclipseConnection
rpc
in interface EclipseConnection
goal
- 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
EclipseConnection
getFromEclipseQueue
in interface EclipseConnection
name
- 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
EclipseConnection
getToEclipseQueue
in interface EclipseConnection
name
- 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
EclipseConnection
getAsyncEclipseQueue
in interface EclipseConnection
name
- 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
EclipseConnection
compile
in interface EclipseConnection
f
- 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
EclipseConnection
getPath
in interface EclipseConnection
f
- 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
EclipseConnection
rpc
method. The user supplies the functor string and
1 argument.rpc
in interface EclipseConnection
EclipseTerminatedException
- if this EclipseConnection has
been terminated.EclipseException
java.io.IOException
EclipseConnection.rpc(CompoundTerm)
public CompoundTerm rpc(java.lang.String functor, java.lang.Object arg1, java.lang.Object arg2) throws EclipseException, java.io.IOException
EclipseConnection
rpc
method. The user supplies the functor string and
2 arguments.rpc
in interface EclipseConnection
EclipseTerminatedException
- if this EclipseConnection has
been terminated.EclipseException
java.io.IOException
EclipseConnection.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
EclipseConnection
rpc
method. The user supplies the functor string and
3 arguments.rpc
in interface EclipseConnection
EclipseTerminatedException
- if this EclipseConnection has
been terminated.EclipseException
java.io.IOException
EclipseConnection.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
EclipseConnection
rpc
method. The user supplies the functor string and
4 arguments.rpc
in interface EclipseConnection
EclipseTerminatedException
- if this EclipseConnection has
been terminated.EclipseException
java.io.IOException
EclipseConnection.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
EclipseConnection
rpc
method. The user supplies the functor string and
5 arguments.rpc
in interface EclipseConnection
EclipseTerminatedException
- if this EclipseConnection has
been terminated.EclipseException
java.io.IOException
EclipseConnection.rpc(CompoundTerm)
public CompoundTerm rpc(java.lang.String functor, java.lang.Object[] args) throws EclipseException, java.io.IOException
EclipseConnection
rpc
method. The user supplies the functor string and
an array of arguments.rpc
in interface EclipseConnection
EclipseTerminatedException
- if this EclipseConnection has
been terminated.EclipseException
java.io.IOException
EclipseConnection.rpc(CompoundTerm)
public CompoundTerm rpc(java.lang.Object[] goalTerm) throws EclipseException, java.io.IOException
EclipseConnection
rpc
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 EclipseConnection
EclipseTerminatedException
- if this EclipseConnection has
been terminated.EclipseException
java.io.IOException
EclipseConnection.rpc(CompoundTerm)
public Atom getPeerName()
EclipseConnection
getPeerName
in interface EclipseConnection
public EclipseMultitaskConnection registerMultitask(MultitaskListener multitaskListener) throws EclipseException, java.io.IOException
EclipseConnection
registerMultitask
in interface EclipseConnection
multitaskListener
- 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.