## net.i2p.data.i2np
Class I2NPMessageHandler

    java.lang.Object
      net.i2p.data.i2np.I2NPMessageHandler

public class I2NPMessageHandler
extends java.lang.Object

Handle messages from router to router. This class is NOT threadsafe

Constructor Summary
`I2NPMessageHandler(I2PAppContext context)`

Method Summary
`long` `getLastReadTime()`
`int` `getLastSize()`
`I2NPMessage` `lastRead()` clear the last message read from a byte array with an offset
`static void` `main(java.lang.String[] args)`
`I2NPMessage` `readMessage(byte[] data)` Read an I2NPMessage from the stream and return the fully populated object.
`int` `readMessage(byte[] data, int offset)`
`I2NPMessage` `readMessage(java.io.InputStream in)` Read an I2NPMessage from the stream and return the fully populated object.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### I2NPMessageHandler

    public I2NPMessageHandler(I2PAppContext context)

Method Detail

### readMessage

    public I2NPMessage readMessage(java.io.InputStream in)
                            throws java.io.IOException,
                                   I2NPMessageException

  Read an I2NPMessage from the stream and return the fully populated object.

  Throws:
    `java.io.IOException` - if there is an IO problem reading from the stream
    `I2NPMessageException` - if there is a problem handling the particular message - if it is an unknown type or has improper formatting, etc.

### lastRead

    public I2NPMessage lastRead()

  clear the last message read from a byte array with an offset

### readMessage

    public I2NPMessage readMessage(byte[] data)
                            throws java.io.IOException,
                                   I2NPMessageException

  Read an I2NPMessage from the stream and return the fully populated object.

  Throws:
    `java.io.IOException` - if there is an IO problem reading from the stream
    `I2NPMessageException` - if there is a problem handling the particular message - if it is an unknown type or has improper formatting, etc.

### readMessage

    public int readMessage(byte[] data,
                           int offset)
                    throws java.io.IOException,
                           I2NPMessageException

  Throws:
    `java.io.IOException`
    `I2NPMessageException`

### getLastReadTime

    public long getLastReadTime()

### getLastSize

    public int getLastSize()

### main

    public static void main(java.lang.String[] args)