net.i2p.client
Class I2PSessionDemultiplexer

java.lang.Object
  extended by net.i2p.client.I2PSessionDemultiplexer
All Implemented Interfaces:
I2PSessionListener, I2PSessionMuxedListener

public class I2PSessionDemultiplexer
extends java.lang.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, java.lang.String message, java.lang.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,
                          java.lang.String message,
                          java.lang.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)