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()For reading.SendMessageMessage(SessionId sessID, Destination dest, Payload payload, long nonce)For writing
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated 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)Deprecated.use 4-arg constructorvoidsetNonce(long nonce)Deprecated.use 4-arg constructorvoidsetPayload(Payload payload)Deprecated.use 4-arg constructorvoidsetSessionId(SessionId id)Deprecated.use 4-arg constructorStringtoString()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
-
-
Constructor Detail
-
SendMessageMessage
public SendMessageMessage()
For reading. Deprecated for writing, use 4-arg constructor
-
SendMessageMessage
public SendMessageMessage(SessionId sessID, Destination dest, Payload payload, long nonce)
For writing- Since:
- 0.9.54
-
-
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
@Deprecated public void setSessionId(SessionId id)
Deprecated.use 4-arg constructor
-
getDestination
public Destination getDestination()
-
setDestination
@Deprecated public void setDestination(Destination destination)
Deprecated.use 4-arg constructor
-
getPayload
public Payload getPayload()
-
setPayload
@Deprecated public void setPayload(Payload payload)
Deprecated.use 4-arg constructor
-
getNonce
public long getNonce()
- Returns:
- 0 to 0xffffffff
-
setNonce
@Deprecated public void setNonce(long nonce)
Deprecated.use 4-arg constructor- 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
-
-