net.i2p.sam

## Class SAMMessageSession

- java.lang.Object
- - net.i2p.sam.SAMMessageSession

Direct Known Subclasses:
  SAMDatagramSession, SAMRawSession

    public abstract class SAMMessageSession
    extends Object

Base abstract class for SAM message-based sessions.

Author:
  human

### Nested Class Summary

Nested Classes
`class` `SAMMessageSession.SAMMessageSessionHandler` SAM message-based session handler, running in its own thread

### Constructor Summary

Constructors
`protected` `SAMMessageSession(InputStream destStream, Properties props)` Initialize a new SAM message-based session.
`protected` `SAMMessageSession(String dest, Properties props)` Initialize a new SAM message-based session.

### Method Summary

Methods
`void` `close()` Close a SAM message-based session.
`Destination` `getDestination()` Get the SAM message-based session Destination.
`protected I2PSession` `getI2PSession()` Get the I2PSession object used by the SAM message-based session.
`protected abstract void` `messageReceived(byte[] msg)` Handle a new received message
`abstract boolean` `sendBytes(String dest, byte[] data)` Send bytes through a SAM message-based session.
`protected boolean` `sendBytesThroughMessageSession(String dest, byte[] data)` Actually send bytes through the SAM message-based session I2PSession (er...).
`protected abstract void` `shutDown()` Do whatever is needed to shutdown the SAM session

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

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

### Constructor Detail

#### SAMMessageSession

    protected SAMMessageSession(String dest,
                     Properties props)
                         throws IOException,
                                DataFormatException,
                                I2PSessionException

Initialize a new SAM message-based session.

Parameters:
  `dest` - Base64-encoded destination (private key)
  `props` - Properties to setup the I2P session
Throws:
  `IOException`
  `DataFormatException`
  `I2PSessionException`

#### SAMMessageSession

    protected SAMMessageSession(InputStream destStream,
                     Properties props)
                         throws IOException,
                                DataFormatException,
                                I2PSessionException

Initialize a new SAM message-based session.

Parameters:
  `destStream` - Input stream containing the destination keys
  `props` - Properties to setup the I2P session
Throws:
  `IOException`
  `DataFormatException`
  `I2PSessionException`

### Method Detail

#### getDestination

    public Destination getDestination()

Get the SAM message-based session Destination.

Returns:
  The SAM message-based session Destination.

#### sendBytes

    public abstract boolean sendBytes(String dest,
                    byte[] data)
                               throws DataFormatException

Send bytes through a SAM message-based session.

Parameters:
  `dest` - Destination
  `data` - Bytes to be sent
Returns:
  True if the data was sent, false otherwise
Throws:
  `DataFormatException`

#### sendBytesThroughMessageSession

    protected boolean sendBytesThroughMessageSession(String dest,
                                         byte[] data)
                                              throws DataFormatException

Actually send bytes through the SAM message-based session I2PSession (er...).

Parameters:
  `dest` - Destination
  `data` - Bytes to be sent
Returns:
  True if the data was sent, false otherwise
Throws:
  `DataFormatException`

#### close

    public void close()

Close a SAM message-based session.

#### messageReceived

    protected abstract void messageReceived(byte[] msg)

Handle a new received message

Parameters:
  `msg` - Message payload

#### shutDown

    protected abstract void shutDown()

Do whatever is needed to shutdown the SAM session

#### getI2PSession

    protected I2PSession getI2PSession()

Get the I2PSession object used by the SAM message-based session.

Returns:
  The I2PSession of the SAM message-based session