Package net.i2p.sam
Class SAMMessageSession
java.lang.Object
net.i2p.sam.SAMMessageSession
- All Implemented Interfaces:
Closeable,AutoCloseable,SAMMessageSess
- Direct Known Subclasses:
SAMDatagramSession,SAMRawSession
Base abstract class for SAM message-based sessions.
- Author:
- human
-
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedSAMMessageSession(InputStream destStream, Properties props) Initialize a new SAM message-based session.protectedSAMMessageSession(String dest, Properties props) Initialize a new SAM message-based session.protectedSAMMessageSession(I2PSession sess, int listenProtocol, int listenPort) Initialize a new SAM message-based session using an existing I2PSession. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Close a SAM message-based session.Get the SAM message-based session Destination.protected I2PSessionGet the I2PSession object used by the SAM message-based session.intintprotected abstract voidmessageReceived(byte[] msg, int proto, int fromPort, int toPort) Handle a new received messageabstract booleanSend bytes through a SAM message-based session.protected booleansendBytesThroughMessageSession(String dest, byte[] data, int proto, int fromPort, int toPort) Actually send bytes through the SAM message-based session I2PSession (er...).protected booleansendBytesThroughMessageSession(String dest, byte[] data, int proto, int fromPort, int toPort, boolean sendLeaseSet, int sendTags, int tagThreshold, int expiration) Actually send bytes through the SAM message-based session I2PSession, using per-message extended options.protected abstract voidshutDown()Do whatever is needed to shutdown the SAM sessionvoidstart()Start a SAM message-based session.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.i2p.sam.SAMMessageSess
sendBytes
-
Field Details
-
_log
-
_isOwnSession
protected final boolean _isOwnSession
-
-
Constructor Details
-
SAMMessageSession
protected SAMMessageSession(String dest, Properties props) throws IOException, DataFormatException, I2PSessionException Initialize a new SAM message-based session.- Parameters:
dest- Base64-encoded destination and private keys, and optional offline signature section (same format as PrivateKeyFile)props- Properties to setup the I2P session- Throws:
IOExceptionDataFormatExceptionI2PSessionException
-
SAMMessageSession
protected SAMMessageSession(InputStream destStream, Properties props) throws IOException, DataFormatException, I2PSessionException Initialize a new SAM message-based session.- Parameters:
destStream- Input stream containing the binary destination and private keys, and optional offline signature section (same format as PrivateKeyFile)props- Properties to setup the I2P session- Throws:
IOExceptionDataFormatExceptionI2PSessionException
-
SAMMessageSession
protected SAMMessageSession(I2PSession sess, int listenProtocol, int listenPort) throws IOException, DataFormatException, I2PSessionException Initialize a new SAM message-based session using an existing I2PSession.- Throws:
IOExceptionDataFormatExceptionI2PSessionException- Since:
- 0.9.25
-
-
Method Details
-
start
public void start()Description copied from interface:SAMMessageSessStart a SAM message-based session. MUST be called after constructor.- Specified by:
startin interfaceSAMMessageSess
-
getDestination
Get the SAM message-based session Destination.- Specified by:
getDestinationin interfaceSAMMessageSess- Returns:
- The SAM message-based session Destination.
-
getListenProtocol
public int getListenProtocol()- Specified by:
getListenProtocolin interfaceSAMMessageSess- Since:
- 0.9.25
-
getListenPort
public int getListenPort()- Specified by:
getListenPortin interfaceSAMMessageSess- Since:
- 0.9.25
-
sendBytes
public abstract boolean sendBytes(String dest, byte[] data, int proto, int fromPort, int toPort) throws DataFormatException, I2PSessionException Send bytes through a SAM message-based session.- Specified by:
sendBytesin interfaceSAMMessageSess- Parameters:
dest- Destinationdata- Bytes to be sent- Returns:
- True if the data was sent, false otherwise
- Throws:
DataFormatException- on unknown / bad destI2PSessionException- on serious error, probably session closed
-
sendBytesThroughMessageSession
protected boolean sendBytesThroughMessageSession(String dest, byte[] data, int proto, int fromPort, int toPort) throws DataFormatException, I2PSessionException Actually send bytes through the SAM message-based session I2PSession (er...).- Parameters:
dest- Destinationdata- Bytes to be sentproto- I2CP protocolfromPort- I2CP from porttoPort- I2CP to port- Returns:
- True if the data was sent, false otherwise
- Throws:
DataFormatException- on unknown / bad destI2PSessionException- on serious error, probably session closed
-
sendBytesThroughMessageSession
protected boolean sendBytesThroughMessageSession(String dest, byte[] data, int proto, int fromPort, int toPort, boolean sendLeaseSet, int sendTags, int tagThreshold, int expiration) throws DataFormatException, I2PSessionException Actually send bytes through the SAM message-based session I2PSession, using per-message extended options. For efficiency, use the method without all the extra options if they are all defaults.- Parameters:
dest- Destinationdata- Bytes to be sentproto- I2CP protocolfromPort- I2CP from porttoPort- I2CP to portsendLeaseSet- true is the usual setting and the I2CP defaultsendTags- 0 to leave as defaulttagThreshold- 0 to leave as defaultexpiration- SECONDS from now, NOT absolute time, 0 to leave as default- Returns:
- True if the data was sent, false otherwise
- Throws:
DataFormatException- on unknown / bad destI2PSessionException- on serious error, probably session closed- Since:
- 0.9.24
-
close
public void close()Close a SAM message-based session.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceSAMMessageSess
-
messageReceived
protected abstract void messageReceived(byte[] msg, int proto, int fromPort, int toPort) Handle a new received message- Parameters:
msg- Message payload
-
shutDown
protected abstract void shutDown()Do whatever is needed to shutdown the SAM session -
getI2PSession
Get the I2PSession object used by the SAM message-based session.- Returns:
- The I2PSession of the SAM message-based session
-