net.i2p.sam

## Interface SAMStreamReceiver

- All Known Implementing Classes:
    SAMv1Handler, SAMv2Handler, SAMv3Handler

      interface SAMStreamReceiver

  Interface for sending streaming data to a SAM client

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `notifyStreamDisconnection(int id, String result, String msg)` Notify that a connection has been closed FIXME: this interface should be cleaner
    `void` | `notifyStreamIncomingConnection(int id, Destination dest)` Notify about a new incoming connection
    `void` | `notifyStreamOutgoingConnection(int id, String result, String msg)` Notify about a new outgoing connection
    `void` | `notifyStreamSendBufferFree(int id)` Notifies that the outwards buffer is free for writing
    `void` | `receiveStreamBytes(int id, ByteBuffer data)` Transmit a byte array from I2P to a SAM client.
    `void` | `stopStreamReceiving()` Stop receiving data.
    `void` | `streamSendAnswer(int id, String result, String bufferState)` Sends the result of a stream send operation

- - ### Method Detail

    - #### notifyStreamDisconnection

          void notifyStreamDisconnection(int id,
                                         String result,
                                         String msg)
                                  throws IOException

      Notify that a connection has been closed FIXME: this interface should be cleaner
      Parameters:
        `id` - Connection id
        `result` - Disconnection reason ("OK" or something else)
        `msg` - Error message, if any
      Throws:
        `IOException`

    - #### notifyStreamIncomingConnection

          void notifyStreamIncomingConnection(int id,
                                              Destination dest)
                                       throws IOException

      Notify about a new incoming connection
      Parameters:
        `id` - New connection id
        `dest` - Destination
      Throws:
        `IOException`

    - #### notifyStreamOutgoingConnection

          void notifyStreamOutgoingConnection(int id,
                                              String result,
                                              String msg)
                                       throws IOException

      Notify about a new outgoing connection
      Parameters:
        `id` - New connection id
        `result` - message result
        `msg` - Message
      Throws:
        `IOException`

    - #### notifyStreamSendBufferFree

          void notifyStreamSendBufferFree(int id)
                                   throws IOException

      Notifies that the outwards buffer is free for writing
      Parameters:
        `id` - stream ID
      Throws:
        `IOException`

    - #### receiveStreamBytes

          void receiveStreamBytes(int id,
                                  ByteBuffer data)
                           throws IOException

      Transmit a byte array from I2P to a SAM client.
      Parameters:
        `id` - Connection id
        `data` - Byte array to be received
      Throws:
        `IOException`

    - #### stopStreamReceiving

          void stopStreamReceiving()

      Stop receiving data.

    - #### streamSendAnswer

          void streamSendAnswer(int id,
                                String result,
                                String bufferState)
                         throws IOException

      Sends the result of a stream send operation
      Parameters:
        `id` - Stream ID
        `result` - information
        `bufferState` - state of the buffer
      Throws:
        `IOException`