## net.i2p.sam
Interface SAMStreamReceiver

All Known Implementing Classes:
  SAMv1Handler, SAMv2Handler, SAMv3Handler

    public interface SAMStreamReceiver

Interface for sending streaming data to a SAM client

Method Summary
`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

### 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`

### notifyStreamSendBufferFree

    void notifyStreamSendBufferFree(int id)
                                    throws IOException

  Notifies that the outwards buffer is free for writing

  Parameters:
    `id` - stream ID
  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`

### 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`

### 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`

### stopStreamReceiving

    void stopStreamReceiving()

  Stop receiving data.