## net.i2p.BOB
Class UDPIOthread

    java.lang.Object
      net.i2p.BOB.UDPIOthread

All Implemented Interfaces:
  Runnable, I2PSessionListener

    public class UDPIOthread

extends Object
implements I2PSessionListener, Runnable

UDP IO on I2P FIX ME: Untested, and incomplete! I have no personal need to UDP yet, however alot of p2p apps pretty much demand it. The skeletal frame is here, just needs to be finished.

Author:
  sponge

Constructor Summary
`UDPIOthread(NamedDB info, Log _log, Socket socket, I2PSession _session)` Constructor

Method Summary
`void` `disconnected(I2PSession session)` required by `I2PSessionListener` to notify of disconnect
`void` `errorOccurred(I2PSession session, String message, Throwable error)` required by `I2PSessionListener` to notify of error
`void` `messageAvailable(I2PSession session, int msgId, long size)` Instruct the client that the given session has received a message with size # of bytes.
`void` `reportAbuse(I2PSession session, int severity)` required by `I2PSessionListener` to notify of abuse
`void` `run()`

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

Constructor Detail

### UDPIOthread

    UDPIOthread(NamedDB info,
                Log _log,
                Socket socket,
                I2PSession _session)

  Constructor

  Parameters:
    `info` -
    `_log` -
    `socket` -
    `_session` -

Method Detail

### run

    public void run()

  Specified by:
    `run` in interface `Runnable`

### messageAvailable

    public void messageAvailable(I2PSession session,
                                 int msgId,
                                 long size)

  Description copied from interface: `I2PSessionListener`
  Instruct the client that the given session has received a message with size # of bytes. After this is called, the client should call receiveMessage(msgId). There is currently no method for the client to reject the message. If the client does not call receiveMessage() within a timeout period (currently 30 seconds), the session will delete the message and log an error.

  Specified by:
    `messageAvailable` in interface `I2PSessionListener`
  Parameters:
    `session` -
    `msgId` -
    `size` -

### disconnected

    public void disconnected(I2PSession session)

  required by `I2PSessionListener` to notify of disconnect

  Specified by:
    `disconnected` in interface `I2PSessionListener`

### errorOccurred

    public void errorOccurred(I2PSession session,
                              String message,
                              Throwable error)

  required by `I2PSessionListener` to notify of error

  Specified by:
    `errorOccurred` in interface `I2PSessionListener`
    `error` - can be null? or not?

### reportAbuse

    public void reportAbuse(I2PSession session,
                            int severity)

  required by `I2PSessionListener` to notify of abuse

  Specified by:
    `reportAbuse` in interface `I2PSessionListener`
  Parameters:
    `session` - session to report abuse to
    `severity` - how bad the abuse is