org.eclipse.net4j.signal

## Class Signal

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

- All Implemented Interfaces:
    java.lang.Runnable
  Direct Known Subclasses:
    SignalActor, SignalReactor

      public abstract class Signal
      extends java.lang.Object
      implements java.lang.Runnable

  Represents a single communications use-case in the scope of a `signal protocol`.
  Author:
    Eike Stepper

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static long` | `NO_TIMEOUT`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Signal(SignalProtocol<?> protocol, java.lang.Enum<?> literal)`
    `Signal(SignalProtocol<?> protocol, short id)`
    `Signal(SignalProtocol<?> protocol, short id, java.lang.String name)` Both implementation classes of a logical signal must have the same signalID.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected boolean` | `closeChannelAfterMe()`
    `protected boolean` | `closeInputStreamAfterMe()`
    `protected boolean` | `closeOutputStreamAfterMe()`
    `protected abstract void` | `execute(BufferInputStream in, BufferOutputStream out)`
    `protected void` | `finishInputStream(java.io.InputStream in)`
    `protected void` | `finishOutputStream(java.io.OutputStream out)`
    `protected void` | `flush()`
    `protected java.lang.String` | `getAdditionalInfo()`
    `protected BufferInputStream` | `getBufferInputStream()`
    `protected BufferOutputStream` | `getBufferOutputStream()`
    `int` | `getCorrelationID()`
    `protected java.io.InputStream` | `getCurrentInputStream()`
    `protected java.io.OutputStream` | `getCurrentOutputStream()`
    `short` | `getID()` Returns the short integer ID of this signal that is unique among all signals of the associated `protocol`.
    `java.lang.String` | `getName()`
    `SignalProtocol<?>` | `getProtocol()`
    `void` | `run()`
    `java.lang.String` | `toString()`
    `protected java.io.InputStream` | `wrapInputStream(java.io.InputStream in)`
    `protected java.io.OutputStream` | `wrapOutputStream(java.io.OutputStream out)`

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

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

- - ### Field Detail

    - #### NO_TIMEOUT

          public static final long NO_TIMEOUT

      Since:
        2.0
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### Signal

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

      Both implementation classes of a logical signal must have the same signalID. The signalID of a user signals must be equal to or greater than zero.
      Since:
        2.0

    - #### Signal

          public Signal(SignalProtocol<?> protocol,
                        short id)

      Since:
        2.0
      See Also:
        `Signal(SignalProtocol, short, String)`

    - #### Signal

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

      Since:
        2.0
      See Also:
        `Signal(SignalProtocol, short, String)`

  - ### Method Detail

    - #### getProtocol

          public SignalProtocol<?> getProtocol()

    - #### getID

          public final short getID()

      Returns the short integer ID of this signal that is unique among all signals of the associated `protocol`.
      Since:
        2.0

    - #### getName

          public java.lang.String getName()

      Since:
        2.0

    - #### getCorrelationID

          public final int getCorrelationID()

      Since:
        2.0

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`
      Since:
        2.0

    - #### getAdditionalInfo

          protected java.lang.String getAdditionalInfo()

      Since:
        4.5

    - #### run

          public final void run()

      Specified by:
        `run` in interface `java.lang.Runnable`

    - #### getBufferInputStream

          protected final BufferInputStream getBufferInputStream()

    - #### getBufferOutputStream

          protected final BufferOutputStream getBufferOutputStream()

    - #### flush

          protected final void flush()
                              throws java.io.IOException

      Throws:
        `java.io.IOException`
      Since:
        2.0

    - #### closeChannelAfterMe

          protected boolean closeChannelAfterMe()

      Since:
        4.4

    - #### closeInputStreamAfterMe

          protected boolean closeInputStreamAfterMe()

      Since:
        4.5

    - #### closeOutputStreamAfterMe

          protected boolean closeOutputStreamAfterMe()

      Since:
        4.5

    - #### getCurrentInputStream

          protected java.io.InputStream getCurrentInputStream()

      Since:
        2.0

    - #### getCurrentOutputStream

          protected java.io.OutputStream getCurrentOutputStream()

      Since:
        2.0

    - #### wrapInputStream

          protected java.io.InputStream wrapInputStream(java.io.InputStream in)
                                                 throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### wrapOutputStream

          protected java.io.OutputStream wrapOutputStream(java.io.OutputStream out)
                                                   throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### finishInputStream

          protected void finishInputStream(java.io.InputStream in)
                                    throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### finishOutputStream

          protected void finishOutputStream(java.io.OutputStream out)
                                     throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### execute

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

      Throws:
        `java.lang.Exception`

Copyright (c) 2014 Eike Stepper (Berlin, Germany) and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html