All Superinterfaces:
I2PSessionListener
All Known Implementing Classes:
I2PSessionDemultiplexer, I2PSessionDemultiplexer.NoPortsListener, I2PSource.Listener, KRPC, MasterSession, MessageHandler, SAMMessageSession.SAMMessageSessionHandler, TorrentKRPC, UDPTrackerClient

public interface I2PSessionMuxedListener extends I2PSessionListener
Define a means for the router to asynchronously notify the client that a new message is available or the router is under attack.
  • Method Summary

    All Methods
    Modifier and Type
    Method
    Description
    void
    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)
    Will be called only if you register via setSessionListener() or addSessionListener().
    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
    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.
  • Method Details

    • messageAvailable

      void messageAvailable(I2PSession session, int msgId, long size)
      Will be called only if you register via setSessionListener() or addSessionListener(). And if you are doing that, just use I2PSessionListener.

      If you register via addSessionListener(), this will be called only for the proto(s) and toport(s) you register for.

      After this is called, the client should call receiveMessage(msgId), or discardMessage(msgId) to drop it without decompressing it. A message the client never claims is dropped by the session's unclaimed-message sweep (every 60 seconds), which logs a warning naming the message ID.

      Specified by:
      messageAvailable in interface I2PSessionListener
      Parameters:
      session - session to notify
      msgId - message number available
      size - size of the message payload in bytes. The I2CP payload size is an int internally and is widened to long here, so the value is never negative
    • messageAvailable

      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(). Will be called only for the proto(s) and toport(s) you register for.

      After this is called, the client should call receiveMessage(msgId), or discardMessage(msgId) to drop it without decompressing it. A message the client never claims is dropped by the session's unclaimed-message sweep (every 60 seconds), which logs a warning naming the message ID.

      Only one listener is called for a given message, even if more than one have registered. See I2PSessionDemultiplexer for details.

      Parameters:
      session - session to notify
      msgId - message number available
      size - size of the message payload in bytes. The I2CP payload size is an int internally and is widened to long here, so the value is never negative
      proto - 1-254 or 0 for unspecified
      fromport - 1-65535 or 0 for unspecified
      toport - 1-65535 or 0 for unspecified
    • reportAbuse

      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. All registered listeners will be called.

      Unused. Not fully implemented.

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

      void disconnected(I2PSession session)
      Notify the client that the session has been terminated. All registered listeners will be called.
      Specified by:
      disconnected in interface I2PSessionListener
      Parameters:
      session - the session that was terminated
    • errorOccurred

      void errorOccurred(I2PSession session, String message, Throwable error)
      Notify the client that some error occurred. All registered listeners will be called.
      Specified by:
      errorOccurred in interface I2PSessionListener
      Parameters:
      session - the session that reported the error
      message - a human-readable description of the error
      error - the cause, non-null