com.parctechnologies.eclipse
Interface EclipseConnection

All Known Subinterfaces:
EclipseEngine, EclipseMultitaskConnection
All Known Implementing Classes:
EclipseConnectionImpl, EmbeddedEclipse, OutOfProcessEclipse, RemoteEclipse

public interface EclipseConnection

Interface of objects which provide a connection to an ECLiPSe engine. Classes implementing EclipseConnection provide the following areas of functionality:

See Also:
EmbeddedEclipse, RemoteEclipse, OutOfProcessEclipse, EclipseEngine

Method Summary
 void compile(java.io.File f)
          Direct ECLiPSe to compile a named object file.
 AsyncEclipseQueue getAsyncEclipseQueue(java.lang.String name)
          Create or access an asynchronous queue to transfer data between Java and ECLiPSe.
 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.
 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.
 

Method Detail

rpc

CompoundTerm rpc(java.lang.String goal)
                 throws EclipseException,
                        java.io.IOException
Make an "RPC" (remote predicate call) to the ECLiPSe engine.

Parameters:
goal - the goal as it would be typed in on the ECLiPSe command line, (the full stop is unnecessary).
Returns:
a CompoundTerm representing the goal, with any variables possibly further instantiated with the results of the computation.
Throws:
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.

rpc

CompoundTerm rpc(CompoundTerm goal)
                 throws EclipseException,
                        java.io.IOException
Make an "RPC" (remote predicate call) to the ECLiPSe engine.

Parameters:
goal - the goal represented as a CompoundTerm.
Returns:
a CompoundTerm representing the goal, with any variables possibly further instantiated with the results of the computation.
Throws:
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.

getFromEclipseQueue

FromEclipseQueue getFromEclipseQueue(java.lang.String name)
                                     throws EclipseException,
                                            java.io.IOException
Create or access a queue to transfer data from ECLiPSe to Java. If a FromEclipseQueue with this name has already been created for this EclipseConnection, it is returned. The supplied name should not be in use by any ECLiPSe stream which is not a FromEclipseQueue between ECLiPSe and this EclipseConnection: if it is, an EclipseException is thrown. Otherwise, a new FromEclipseQueue with the specified name is returned.

Parameters:
name - the name to be used for the stream representing the queue on the ECLiPSe side.
Returns:
a FromEclipseQueue object which can be used by Java to read data on the queue which was written there by ECLiPSe.
Throws:
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.

getToEclipseQueue

ToEclipseQueue getToEclipseQueue(java.lang.String name)
                                 throws EclipseException,
                                        java.io.IOException
Create or access a queue to transfer data from Java to ECLiPSe. If a ToEclipseQueue with this name has already been created for this EclipseConnection, it is returned. The supplied name should not be in use by any ECLiPSe stream which is not a ToEclipseQueue between ECLiPSe and this EclipseConnection: if it is, an EclipseException is thrown. Otherwise, a new ToEclipseQueue with the specified name is returned.

Parameters:
name - the name to be used for the stream representing the queue on the ECLiPSe side.
Returns:
a ToEclipseQueue object which can be used by Java to write data on the queue which can be read by ECLiPSe.
Throws:
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.

getAsyncEclipseQueue

AsyncEclipseQueue getAsyncEclipseQueue(java.lang.String name)
                                       throws EclipseException,
                                              java.io.IOException
Create or access an asynchronous queue to transfer data between Java and ECLiPSe. If an AsyncEclipseQueue with this name has already been created for this EclipseConnection, it is returned. The supplied name should not be in use by any ECLiPSe stream which is not a AsyncEclipseQueue between ECLiPSe and this EclipseConnection: if it is, an EclipseException is thrown. Otherwise, a new AsyncEclipseQueue with the specified name is returned.

Parameters:
name - the name to be used for the stream representing the queue on the ECLiPSe side.
Returns:
a AsyncEclipseQueue object which can be used by Java to obtain an InputStream object (which can be used to read data from the queue which was written there by ECLiPSe) and/or an OutputStream object (which can be used to write data on the queue which can be read by ECLiPSe).
Throws:
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.

compile

void compile(java.io.File f)
             throws EclipseException,
                    java.io.IOException
Direct ECLiPSe to compile a named object file.

Parameters:
f - file the path of the ECLiPSe object file which is to be compiled.
Throws:
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.

getPath

java.lang.String getPath(java.io.File f)
                         throws EclipseException,
                                java.io.IOException
Convert a file path from the Java representation to the ECLiPSe representation.

Parameters:
f - the file path to be converted.
Returns:
a String: the file path in the ECLiPSe representation
Throws:
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.

rpc

CompoundTerm rpc(java.lang.String functor,
                 java.lang.Object arg1)
                 throws EclipseException,
                        java.io.IOException
Convenience rpc method. The user supplies the functor string and 1 argument.

Throws:
EclipseTerminatedException - if this EclipseConnection has been terminated.
EclipseException
java.io.IOException
See Also:
rpc(CompoundTerm)

rpc

CompoundTerm rpc(java.lang.String functor,
                 java.lang.Object arg1,
                 java.lang.Object arg2)
                 throws EclipseException,
                        java.io.IOException
Convenience rpc method. The user supplies the functor string and 2 arguments.

Throws:
EclipseTerminatedException - if this EclipseConnection has been terminated.
EclipseException
java.io.IOException
See Also:
rpc(CompoundTerm)

rpc

CompoundTerm rpc(java.lang.String functor,
                 java.lang.Object arg1,
                 java.lang.Object arg2,
                 java.lang.Object arg3)
                 throws EclipseException,
                        java.io.IOException
Convenience rpc method. The user supplies the functor string and 3 arguments.

Throws:
EclipseTerminatedException - if this EclipseConnection has been terminated.
EclipseException
java.io.IOException
See Also:
rpc(CompoundTerm)

rpc

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
Convenience rpc method. The user supplies the functor string and 4 arguments.

Throws:
EclipseTerminatedException - if this EclipseConnection has been terminated.
EclipseException
java.io.IOException
See Also:
rpc(CompoundTerm)

rpc

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
Convenience rpc method. The user supplies the functor string and 5 arguments.

Throws:
EclipseTerminatedException - if this EclipseConnection has been terminated.
EclipseException
java.io.IOException
See Also:
rpc(CompoundTerm)

rpc

CompoundTerm rpc(java.lang.String functor,
                 java.lang.Object[] args)
                 throws EclipseException,
                        java.io.IOException
Convenience rpc method. The user supplies the functor string and an array of arguments.

Throws:
EclipseTerminatedException - if this EclipseConnection has been terminated.
EclipseException
java.io.IOException
See Also:
rpc(CompoundTerm)

rpc

CompoundTerm rpc(java.lang.Object[] goalTerm)
                 throws EclipseException,
                        java.io.IOException
Convenience rpc method. The user supplies an array. Element 0 is the functor of the goal term and the remaining elements are the arguments.

Throws:
EclipseTerminatedException - if this EclipseConnection has been terminated.
EclipseException
java.io.IOException
See Also:
rpc(CompoundTerm)

getPeerName

Atom getPeerName()
Return the name by which the peer representing the Java side of the connection is indexed in ECLiPSe.

Returns:
an Atom, the peer name.

registerMultitask

EclipseMultitaskConnection registerMultitask(MultitaskListener multitaskListener)
                                             throws EclipseException,
                                                    java.io.IOException
Register this peer as desiring participation in any multitasking phases that ECLiPSe enters.

Parameters:
multitaskListener - A listener whose methods are called when ECLiPSe enters/leaves multitasking phases.
Returns:
An object which can be used to perform RPCs during ECLiPSe multitasking phases.
Throws:
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.