Package org.eclipse.net4j.signal

## Class IndicationWithResponse

- java.lang.Object
- - org.eclipse.net4j.signal.Signal
  - - org.eclipse.net4j.signal.SignalReactor
    - - org.eclipse.net4j.signal.IndicationWithResponse

- All Implemented Interfaces:
    `java.lang.Runnable`
  Direct Known Subclasses:
    `IndicationWithMonitoring`

      public abstract class IndicationWithResponse
      extends SignalReactor

  Represents the receiver side of a two-way `signal`, i.e., one with a response.
  Author:
    Eike Stepper

- - ### Field Summary

    - ### Fields inherited from class org.eclipse.net4j.signal.Signal

      `NO_TIMEOUT`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `IndicationWithResponse​(SignalProtocol<?> protocol, short signalID)` |
    `IndicationWithResponse​(SignalProtocol<?> protocol, short id, java.lang.String name)` |
    `IndicationWithResponse​(SignalProtocol<?> protocol, java.lang.Enum<?> literal)` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected boolean` | `closeChannelAfterException()` |
    `protected void` | `execute​(BufferInputStream in, BufferOutputStream out)` |
    `protected java.lang.String` | `getExceptionMessage​(java.lang.Throwable t)` |
    `protected abstract void` | `indicating​(org.eclipse.net4j.util.io.ExtendedDataInputStream in)` |
    `protected abstract void` | `responding​(org.eclipse.net4j.util.io.ExtendedDataOutputStream out)` | Important Note: The response must not be empty, i.e.

    - ### Methods inherited from class org.eclipse.net4j.signal.SignalReactor

      `createMonitor`

    - ### Methods inherited from class org.eclipse.net4j.signal.Signal

      `closeChannelAfterMe, closeInputStreamAfterMe, closeOutputStreamAfterMe, finishInputStream, finishOutputStream, flush, getAdditionalInfo, getBufferInputStream, getBufferOutputStream, getCorrelationID, getCurrentInputStream, getCurrentOutputStream, getID, getName, getProtocol, run, toString, toString, wrapInputStream, wrapOutputStream`

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### IndicationWithResponse

          public IndicationWithResponse​(SignalProtocol<?> protocol,
                                        short id,
                                        java.lang.String name)

      Since:
        2.0

    - #### IndicationWithResponse

          public IndicationWithResponse​(SignalProtocol<?> protocol,
                                        short signalID)

      Since:
        2.0

    - #### IndicationWithResponse

          public IndicationWithResponse​(SignalProtocol<?> protocol,
                                        java.lang.Enum<?> literal)

      Since:
        2.0

  - ### Method Detail

    - #### closeChannelAfterException

          protected boolean closeChannelAfterException()

      Since:
        4.4

    - #### getExceptionMessage

          protected java.lang.String getExceptionMessage​(java.lang.Throwable t)

      Since:
        2.0

    - #### execute

          protected void execute​(BufferInputStream in,
                                 BufferOutputStream out)
                          throws java.lang.Exception

      Specified by:
        `execute` in class `Signal`
      Throws:
        `java.lang.Exception`

    - #### indicating

          protected abstract void indicating​(org.eclipse.net4j.util.io.ExtendedDataInputStream in)
                                      throws java.lang.Exception

      Throws:
        `java.lang.Exception`

    - #### responding

          protected abstract void responding​(org.eclipse.net4j.util.io.ExtendedDataOutputStream out)
                                      throws java.lang.Exception

      Important Note: The response must not be empty, i.e. the stream must be used at least to write a `boolean`. Otherwise synchronization problems will result!
      Throws:
        `java.lang.Exception`