ToEclipseQueue
Date: 2022-09-03

com.parctechnologies.eclipse

## Class ToEclipseQueue

- java.lang.Object
- - java.io.OutputStream
  - - com.parctechnologies.eclipse.ToEclipseQueue

- All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable

      public class ToEclipseQueue
      extends java.io.OutputStream

  A queue for sending data from Java to ECLiPSe. This class performs no processing of the data and cannot for example, convert to EXDR format (see `EXDROutputStream` for a class which can do this).

  In addition to the standard methods inherited from its superclass, this class also provides the ability to attach a `QueueListener` object to the ToEclipseQueue, as a handler for data requests from ECLiPSe.

  There is no public constructor; to access an ToEclipseQueue use the `createToEclipseQueue()` of an object implementing the `EclipseConnection` interface or the `getEclipseStdin()` method of an object implementing the `EclipseEngine` interface.

- - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Closes the queue (both eclipse and Java sides), removing any listener.
    `void` | `flush()` Calls the superclass' `flush` method
    `void` | `removeListener()` Detach any QueueListener from this ToEclipseQueue.
    `void` | `setListener(QueueListener l)` Attach a QueueListener to this ToEclipseQueue for handling requests for data.
    `void` | `write(byte[] b, int off, int len)`
    `void` | `write(int b)`

    - ### Methods inherited from class java.io.OutputStream

      `write`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### write

          public void write(int b)
                     throws java.io.IOException

      Specified by:
        `write` in class `java.io.OutputStream`
      Throws:
        `java.io.IOException`

    - #### write

          public void write(byte[] b,
                            int off,
                            int len)
                     throws java.io.IOException

      Overrides:
        `write` in class `java.io.OutputStream`
      Throws:
        `java.io.IOException`

    - #### setListener

          public void setListener(QueueListener l)
                           throws java.io.IOException

      Attach a QueueListener to this ToEclipseQueue for handling requests for data. When ECLiPSe tries to read from an empty queue with a QueueListener attached, the `dataAvailable()` method of the QueueListener is invoked.
      Throws:
        `java.io.IOException`

    - #### removeListener

          public void removeListener()
                              throws java.io.IOException

      Detach any QueueListener from this ToEclipseQueue.
      Throws:
        `java.io.IOException`

    - #### flush

          public void flush()
                     throws java.io.IOException

      Calls the superclass' `flush` method
      Specified by:
        `flush` in interface `java.io.Flushable`
      Overrides:
        `flush` in class `java.io.OutputStream`
      Throws:
        `java.io.IOException`

    - #### close

          public void close()
                     throws java.io.IOException

      Closes the queue (both eclipse and Java sides), removing any listener.
      Specified by:
        `close` in interface `java.io.Closeable`
      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      Overrides:
        `close` in class `java.io.OutputStream`
      Throws:
        `java.io.IOException`