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
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.
-
Field Details
-
MESSAGE_TYPE
public static final int MESSAGE_TYPE- See Also:
- Constant Field Values
-
_sessionId
-
_destination
-
_payload
-
_nonce
protected long _nonce
-
-
Constructor Details
-
SendMessageMessage
public SendMessageMessage()
-
-
Method Details
-
getSessionId
-
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
-
getDestination
-
setDestination
-
getPayload
-
setPayload
-
getNonce
public long getNonce()- Returns:
- 0 to 0xffffffff
-
setNonce
public void setNonce(long nonce)- Parameters:
nonce- 0 to 0xffffffff
-
doReadMessage
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, IOExceptionRead 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
Description 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
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
-
toString
-