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
_destination
protected long
_nonce
protected Payload
_payload
protected SessionId
_sessionId
static int
MESSAGE_TYPE
-
Constructor Summary
Constructors Constructor Description SendMessageMessage()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
doReadMessage(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)Destination
getDestination()
long
getNonce()
Payload
getPayload()
SessionId
getSessionId()
int
getType()
Return the unique identifier for this type of message, as specified in the network specification document under #ClientAccessLayerMessagesvoid
readMessage(InputStream in, int length, int type)
Read the body into the data structuresSessionId
sessionId()
Return the SessionId for this message.void
setDestination(Destination destination)
void
setNonce(long nonce)
void
setPayload(Payload payload)
void
setSessionId(SessionId id)
String
toString()
void
writeMessage(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:
sessionId
in interfaceI2CPMessage
- Overrides:
sessionId
in 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:I2CPMessageImpl
Read in the payload part of the message (after the initial 4 byte size and 1 byte type)- Specified by:
doReadMessage
in classI2CPMessageImpl
- Parameters:
in
- InputStreamsize
- payload size- Throws:
I2CPMessageException
IOException
-
readMessage
public void readMessage(InputStream in, int length, int type) throws I2CPMessageException, IOException
Read the body into the data structures- Specified by:
readMessage
in interfaceI2CPMessage
- Overrides:
readMessage
in classI2CPMessageImpl
- Parameters:
in
- stream to read fromlength
- number of bytes in the message payloadtype
- type of message (should equal getType())- Throws:
IOException
I2CPMessageException
- if the stream doesn't contain a valid message that this class can read.
-
doWriteMessage
protected byte[] doWriteMessage() throws I2CPMessageException, IOException
Description copied from class:I2CPMessageImpl
Write out the payload part of the message (not including the 4 byte size and 1 byte type)- Specified by:
doWriteMessage
in classI2CPMessageImpl
- Returns:
- byte array
- Throws:
UnsupportedOperationException
- alwaysI2CPMessageException
IOException
-
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:
writeMessage
in interfaceI2CPMessage
- Overrides:
writeMessage
in classI2CPMessageImpl
- Parameters:
out
- OutputStream- Throws:
IOException
I2CPMessageException
- if the current object doesn't have sufficient data to write a properly formatted message.
-
getType
public int getType()
Description copied from interface:I2CPMessage
Return 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
-
-