## Uses of Class
net.i2p.data.i2np.I2NPMessageException

Packages that use I2NPMessageException
Package | Description
--- | ---
net.i2p.data.i2np | The Invisible Internet Network Protocol (I2NP) is only a part of how an application can send messages over the network.

### Uses of I2NPMessageException in net.i2p.data.i2np

Methods in net.i2p.data.i2np that throw I2NPMessageException
Modifier and Type | Method and Description
--- | ---
`static I2NPMessage` | I2NPMessageImpl.`createMessage(I2PAppContext context, int type)` Yes, this is fairly ugly, but its the only place it ever happens.
`static I2NPMessage` | I2NPMessageImpl.`fromRawByteArray(I2PAppContext ctx, byte[] buffer, int offset, int len, I2NPMessageHandler handler)` used by SSU only
`int` | I2NPMessageImpl.`readBytes(byte[] data, int type, int offset)` Read the header, then read the rest into buffer, then call readMessage in the implemented message type
`int` | I2NPMessage.`readBytes(byte[] data, int type, int offset)`
`int` | I2NPMessageImpl.`readBytes(InputStream in, int type, byte[] buffer)` Read the header, then read the rest into buffer, then call readMessage in the implemented message type
`int` | I2NPMessage.`readBytes(InputStream in, int type, byte[] buffer)` Read the body into the data structures, after the initial type byte, using the current class's format as defined by the I2NP specification
`I2NPMessage` | I2NPMessageHandler.`readMessage(byte[] data)` Read an I2NPMessage from the stream and return the fully populated object.
`int` | I2NPMessageHandler.`readMessage(byte[] data, int offset)`
`void` | VariableTunnelBuildMessage.`readMessage(byte[] data, int offset, int dataSize, int type)`
`void` | DataMessage.`readMessage(byte[] data, int offset, int dataSize, int type)`
`void` | DatabaseSearchReplyMessage.`readMessage(byte[] data, int offset, int dataSize, int type)`
`void` | TunnelBuildMessage.`readMessage(byte[] data, int offset, int dataSize, int type)`
`void` | UnknownI2NPMessage.`readMessage(byte[] data, int offset, int dataSize, int type)`
`void` | VariableTunnelBuildReplyMessage.`readMessage(byte[] data, int offset, int dataSize, int type)`
`void` | TunnelBuildReplyMessage.`readMessage(byte[] data, int offset, int dataSize, int type)`
`void` | DatabaseStoreMessage.`readMessage(byte[] data, int offset, int dataSize, int type)`
`void` | TunnelDataMessage.`readMessage(byte[] data, int offset, int dataSize, int type)`
`void` | TunnelGatewayMessage.`readMessage(byte[] data, int offset, int dataSize, int type)`
`void` | I2NPMessage.`readMessage(byte[] data, int offset, int dataSize, int type)` Read the body into the data structures, after the initial type byte and the uniqueId / expiration, using the current class's format as defined by the I2NP specification
`void` | DeliveryStatusMessage.`readMessage(byte[] data, int offset, int dataSize, int type)`
`void` | DatabaseLookupMessage.`readMessage(byte[] data, int offset, int dataSize, int type)`
`void` | GarlicMessage.`readMessage(byte[] data, int offset, int dataSize, int type)`
`void` | I2NPMessageImpl.`readMessage(byte[] data, int offset, int dataSize, int type, I2NPMessageHandler handler)`
`void` | TunnelGatewayMessage.`readMessage(byte[] data, int offset, int dataSize, int type, I2NPMessageHandler handler)`
`void` | I2NPMessage.`readMessage(byte[] data, int offset, int dataSize, int type, I2NPMessageHandler handler)`
`I2NPMessage` | I2NPMessageHandler.`readMessage(InputStream in)` Read an I2NPMessage from the stream and return the fully populated object.
`protected int` | VariableTunnelBuildMessage.`writeMessageBody(byte[] out, int curIndex)`
`protected abstract int` | I2NPMessageImpl.`writeMessageBody(byte[] out, int curIndex)` write the message body to the output array, starting at the given index.
`protected int` | DatabaseSearchReplyMessage.`writeMessageBody(byte[] out, int curIndex)` write the message body to the output array, starting at the given index
`protected int` | TunnelBuildMessage.`writeMessageBody(byte[] out, int curIndex)`
`protected int` | VariableTunnelBuildReplyMessage.`writeMessageBody(byte[] out, int curIndex)`
`protected int` | TunnelBuildReplyMessage.`writeMessageBody(byte[] out, int curIndex)`
`protected int` | DatabaseStoreMessage.`writeMessageBody(byte[] out, int curIndex)` write the message body to the output array, starting at the given index
`protected int` | TunnelDataMessage.`writeMessageBody(byte[] out, int curIndex)` write the message body to the output array, starting at the given index
`protected int` | TunnelGatewayMessage.`writeMessageBody(byte[] out, int curIndex)` write the message body to the output array, starting at the given index
`protected int` | DeliveryStatusMessage.`writeMessageBody(byte[] out, int curIndex)` write the message body to the output array, starting at the given index
`protected int` | DatabaseLookupMessage.`writeMessageBody(byte[] out, int curIndex)`
`protected int` | GarlicMessage.`writeMessageBody(byte[] out, int curIndex)` write the message body to the output array, starting at the given index