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

Constructors
Constructor and Description
`UDPIOthread(NamedDB info, Log _log, Socket socket, I2PSession _session)` Constructor

### Method Summary

Methods
`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