java.lang.Object
net.i2p.data.i2cp.I2CPMessageImpl
net.i2p.data.i2cp.DisconnectMessage
- All Implemented Interfaces:
I2CPMessage
Defines the message a client sends to a router when destroying existing session.
Field Summary
Modifier and TypeFieldDescriptionprivate StringWhy the router closed the connection, as shown to the client.static final intI2CP message type ID written to the wire header.Constructor Summary
ConstructorsConstructorDescriptionBuilds the disconnect with no reason; used by I2CP deserialization.Method Summary
Public MethodsModifier and TypeMethodDescriptionprotected voiddoReadMessage(InputStream in, int size) Read the message body from the input stream.protected byte[]Write the message body to the output stream.Reason the client gave for closing the session.intgetType()I2CP message type sent for this message.voidReason for the disconnect.toString()Returns a string representation of this message.Methods inherited from class I2CPMessageImpl
readBytes, readMessage, readMessage, sessionId, writeBytes, writeMessageModifier and TypeMethodDescriptionvoidreadBytes(InputStream in) Read the message from the stream, wrapping I2CPMessageException inDataFormatException.voidValidate the type and size of the message, and then read the message into the data structures.voidreadMessage(InputStream in, int length, int type) Read the body into the data structures.Return the SessionId for this type of message.voidwriteBytes(OutputStream out) Write the message to the stream, wrapping I2CPMessageException in DataFormatException.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_TYPEI2CP message type ID written to the wire header.- See Also:
_reason
Why the router closed the connection, as shown to the client.
Constructor Details
DisconnectMessage
public DisconnectMessage()Builds the disconnect with no reason; used by I2CP deserialization.
Method Details
getReason
Reason the client gave for closing the session.- Returns:
- the reason text, or null if the message was built without one
setReason
Reason for the disconnect.- Parameters:
reason- the reason the client is closing the session, written into the message body and shown by the router in its session logs; null when no reason is given
doReadMessage
Read the message body from the input stream.- Specified by:
doReadMessagein classI2CPMessageImpl- Parameters:
in- positioned just past the 4 byte size and 1 byte type headersize- how many payload bytes remain to be read- Throws:
I2CPMessageException- if the message format is invalidIOException- if there's an error reading from the stream
doWriteMessage
Write the message body to the output stream.- Specified by:
doWriteMessagein classI2CPMessageImpl- Returns:
- byte array
- Throws:
I2CPMessageException- if the message cannot be writtenIOException- if there's an error writing to the stream
getType
public int getType()I2CP message type sent for this message.- Returns:
- the I2CP message type ID, always
MESSAGE_TYPE
toString