Package net.i2p.data.i2cp
Class SendMessageMessage
- java.lang.Object
-
- net.i2p.data.i2cp.I2CPMessageImpl
-
- net.i2p.data.i2cp.SendMessageMessage
-
- All Implemented Interfaces:
I2CPMessage
- Direct Known Subclasses:
SendMessageExpiresMessage
public class SendMessageMessage extends I2CPMessageImpl
Defines the message a client sends to a router to ask it to deliver a new message- Author:
- jrandom
-
-
Field Summary
Fields Modifier and Type Field Description protected Destination_destinationprotected long_nonceprotected Payload_payloadprotected SessionId_sessionIdstatic intMESSAGE_TYPE
-
Constructor Summary
Constructors Constructor Description SendMessageMessage()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voiddoReadMessage(InputStream in, int size)Read in the payload part of the message (after the initial 4 byte size and 1 byte type)protected byte[]doWriteMessage()Write out the payload part of the message (not including the 4 byte size and 1 byte type)DestinationgetDestination()longgetNonce()PayloadgetPayload()SessionIdgetSessionId()intgetType()Return the unique identifier for this type of message, as specified in the network specification document under #ClientAccessLayerMessagesvoidreadMessage(InputStream in, int length, int type)Read the body into the data structuresSessionIdsessionId()Return the SessionId for this message.voidsetDestination(Destination destination)voidsetNonce(long nonce)voidsetPayload(Payload payload)voidsetSessionId(SessionId id)StringtoString()voidwriteMessage(OutputStream out)Write out the full message to the stream, including the 4 byte size and 1 byte type header.-
Methods inherited from class net.i2p.data.i2cp.I2CPMessageImpl
readBytes, readMessage, writeBytes
-
-
-
-
Field Detail
-
MESSAGE_TYPE
public static final int MESSAGE_TYPE
- See Also:
- Constant Field Values
-
_sessionId
protected SessionId _sessionId
-
_destination
protected Destination _destination
-
_payload
protected Payload _payload
-
_nonce
protected long _nonce
-
-
Method Detail
-
getSessionId
public SessionId getSessionId()
-
sessionId
public SessionId sessionId()
Return the SessionId for this message.- Specified by:
sessionIdin interfaceI2CPMessage- Overrides:
sessionIdin classI2CPMessageImpl- Returns:
- null always. Extending classes with a SessionId must override.
- Since:
- 0.9.21
-
setSessionId
public void setSessionId(SessionId id)
-
getDestination
public Destination getDestination()
-
setDestination
public void setDestination(Destination destination)
-
getPayload
public Payload getPayload()
-
setPayload
public void setPayload(Payload payload)
-
getNonce
public long getNonce()
- Returns:
- 0 to 0xffffffff
-
setNonce
public void setNonce(long nonce)
- Parameters:
nonce- 0 to 0xffffffff
-
doReadMessage
protected void doReadMessage(InputStream in, int size) throws I2CPMessageException, IOException
Description copied from class:I2CPMessageImplRead in the payload part of the message (after the initial 4 byte size and 1 byte type)- Specified by:
doReadMessagein classI2CPMessageImpl- Parameters:
in- InputStreamsize- payload size- Throws:
I2CPMessageExceptionIOException
-
readMessage
public void readMessage(InputStream in, int length, int type) throws I2CPMessageException, IOException
Read the body into the data structures- Specified by:
readMessagein interfaceI2CPMessage- Overrides:
readMessagein classI2CPMessageImpl- Parameters:
in- stream to read fromlength- number of bytes in the message payloadtype- type of message (should equal getType())- Throws:
IOExceptionI2CPMessageException- if the stream doesn't contain a valid message that this class can read.
-
doWriteMessage
protected byte[] doWriteMessage() throws I2CPMessageException, IOExceptionDescription copied from class:I2CPMessageImplWrite out the payload part of the message (not including the 4 byte size and 1 byte type)- Specified by:
doWriteMessagein classI2CPMessageImpl- Returns:
- byte array
- Throws:
UnsupportedOperationException- alwaysI2CPMessageExceptionIOException
-
writeMessage
public void writeMessage(OutputStream out) throws I2CPMessageException, IOException
Write out the full message to the stream, including the 4 byte size and 1 byte type header. Override the parent so we can be more mem efficient- Specified by:
writeMessagein interfaceI2CPMessage- Overrides:
writeMessagein classI2CPMessageImpl- Parameters:
out- OutputStream- Throws:
IOExceptionI2CPMessageException- if the current object doesn't have sufficient data to write a properly formatted message.
-
getType
public int getType()
Description copied from interface:I2CPMessageReturn the unique identifier for this type of message, as specified in the network specification document under #ClientAccessLayerMessages- Returns:
- unique identifier for this type of message
-
-