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
Defines the message a client sends to a router to ask it to deliver
a new message
- Author:
- jrandom
-
Field Summary
Modifier and TypeFieldDescriptionprotected Destination
protected long
protected Payload
protected SessionId
static final int
-
Constructor Summary
ConstructorDescriptionFor reading.SendMessageMessage
(SessionId sessID, Destination dest, Payload payload, long nonce) For writing -
Method Summary
Modifier and TypeMethodDescriptionprotected 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[]
Write out the payload part of the message (not including the 4 byte size and 1 byte type)long
getNonce()
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 structuresReturn the SessionId for this message.void
setDestination
(Destination destination) Deprecated.use 4-arg constructorvoid
setNonce
(long nonce) Deprecated.use 4-arg constructorvoid
setPayload
(Payload payload) Deprecated.use 4-arg constructorvoid
Deprecated.use 4-arg constructortoString()
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 Details
-
MESSAGE_TYPE
public static final int MESSAGE_TYPE- See Also:
-
_sessionId
-
_destination
-
_payload
-
_nonce
protected long _nonce
-
-
Constructor Details
-
SendMessageMessage
public SendMessageMessage()For reading. Deprecated for writing, use 4-arg constructor -
SendMessageMessage
For writing- Since:
- 0.9.54
-
-
Method Details
-
getSessionId
-
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
Deprecated.use 4-arg constructor -
getDestination
-
setDestination
Deprecated.use 4-arg constructor -
getPayload
-
setPayload
Deprecated.use 4-arg constructor -
getNonce
public long getNonce()- Returns:
- 0 to 0xffffffff
-
setNonce
Deprecated.use 4-arg constructor- Parameters:
nonce
- 0 to 0xffffffff
-
doReadMessage
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
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
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
-
toString
-