Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## net.i2p.client
Class I2PSessionDemultiplexer

    java.lang.Object
      net.i2p.client.I2PSessionDemultiplexer

All Implemented Interfaces:
  I2PSessionListener, I2PSessionMuxedListener

    public class I2PSessionDemultiplexer

extends Object
implements I2PSessionMuxedListener

Implement multiplexing with a 1-byte 'protocol' and a two-byte 'port'. Listeners register with either addListener() or addMuxedListener(), depending on whether they want to hear about the protocol, from port, and to port for every received message. This only calls one listener, not all that apply.

Author:
  zzz

Constructor Summary
`I2PSessionDemultiplexer(I2PAppContext ctx)`

Method Summary
`void` | `addListener(I2PSessionListener l, int proto, int port)` For those that don't need to hear about the protocol and ports in messageAvailable() (Streaming lib)
`void` | `addMuxedListener(I2PSessionMuxedListener l, int proto, int port)` For those that do care UDP perhaps
`void` | `disconnected(I2PSession session)` Notify the client that the session has been terminated
`void` | `errorOccurred(I2PSession session, String message, Throwable error)` Notify the client that some error occurred
`void` | `messageAvailable(I2PSession session, int msgId, long size)` unused
`void` | `messageAvailable(I2PSession session, int msgId, long size, int proto, int fromport, int toport)` Instruct the client that the given session has received a message Will be called only if you register via addMuxedSessionListener().
`void` | `removeListener(int proto, int port)`
`void` | `reportAbuse(I2PSession session, int severity)` Instruct the client that the session specified seems to be under attack and that the client may wish to move its destination to another router.

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

Constructor Detail

### I2PSessionDemultiplexer

    public I2PSessionDemultiplexer(I2PAppContext ctx)

Method Detail

### messageAvailable

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

  unused

  Specified by:
    `messageAvailable` in interface `I2PSessionListener`
  Specified by:
    `messageAvailable` in interface `I2PSessionMuxedListener`
  Parameters:
    `session` - session to notify
    `msgId` - message number available
    `size` - size of the message - why it's a long and not an int is a mystery

### messageAvailable

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

  Description copied from interface: `I2PSessionMuxedListener`
  Instruct the client that the given session has received a message Will be called only if you register via addMuxedSessionListener(). Will be called only for the proto(s) and toport(s) you register for.

  Specified by:
    `messageAvailable` in interface `I2PSessionMuxedListener`
  Parameters:
    `session` - session to notify
    `msgId` - message number available
    `size` - size of the message - why it's a long and not an int is a mystery
    `proto` - 1-254 or 0 for unspecified
    `fromport` - 1-65535 or 0 for unspecified
    `toport` - 1-65535 or 0 for unspecified

### reportAbuse

    public void reportAbuse(I2PSession session,
                            int severity)

  Description copied from interface: `I2PSessionMuxedListener`
  Instruct the client that the session specified seems to be under attack and that the client may wish to move its destination to another router.

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

### disconnected

    public void disconnected(I2PSession session)

  Description copied from interface: `I2PSessionMuxedListener`
  Notify the client that the session has been terminated

  Specified by:
    `disconnected` in interface `I2PSessionListener`
  Specified by:
    `disconnected` in interface `I2PSessionMuxedListener`

### errorOccurred

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

  Description copied from interface: `I2PSessionMuxedListener`
  Notify the client that some error occurred

  Specified by:
    `errorOccurred` in interface `I2PSessionListener`
  Specified by:
    `errorOccurred` in interface `I2PSessionMuxedListener`

### addListener

    public void addListener(I2PSessionListener l,
                            int proto,
                            int port)

  For those that don't need to hear about the protocol and ports in messageAvailable() (Streaming lib)

### addMuxedListener

    public void addMuxedListener(I2PSessionMuxedListener l,
                                 int proto,
                                 int port)

  For those that do care UDP perhaps

### removeListener

    public void removeListener(int proto,
                               int port)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD