Interface PeerListener

All Known Implementing Classes:
PeerCoordinator

interface PeerListener
Listener for Peer events.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Called when the connection to the peer has started and the handshake was successfull.
    void
    Called when the connection to the peer was terminated or the connection handshake failed.
    void
    downloaded(Peer peer, int size)
    Called when a (partial) piece has been downloaded from the peer.
    getPartialPiece(Peer peer, BitField havePieces)
    Called when a peer has connected and there may be a partially downloaded piece that the coordinatorator can give the peer task
    Convenience
    boolean
    gotBitField(Peer peer, BitField bitfield)
    Called when a bitmap message is received.
    void
    gotChoke(Peer peer, boolean choke)
    Called when a choke message is received.
    void
    gotCommentReq(Peer peer, int num)
    Called when comments are requested via ut_comment
    void
    gotComments(Peer peer, List<Comment> comments)
    Called when comments are received via ut_comment
    void
    gotExtension(Peer peer, int id, byte[] bs)
    Called when an extension message is received.
    boolean
    gotHave(Peer peer, int piece)
    Called when a have piece message is received.
    void
    gotInterest(Peer peer, boolean interest)
    Called when an interested message is received.
    void
    gotPeers(Peer peer, List<PeerID> pIDList)
    Called when peers are received via PEX
    boolean
    gotPiece(Peer peer, PartialPiece piece)
    Called when a piece is received from the peer.
    void
    gotPort(Peer peer, int port, int rport)
    Called when a DHT port message is received.
    gotRequest(Peer peer, int piece, int off, int len)
    Called when the peer wants (part of) a piece from us.
    boolean
    needPiece(Peer peer, BitField bitfield)
    Called when we are downloading from the peer and may need to ask for a new piece.
    void
    Called when the peer has disconnected and the peer task may have a partially downloaded piece that the PeerCoordinator can save
    void
    uploaded(Peer peer, int size)
    Called when a (partial) piece has been uploaded to the peer.
    int
    wantPiece(Peer peer, BitField bitfield)
    Called when we are downloading from the peer and need to ask for a new piece.
  • Method Details

    • connected

      void connected(Peer peer)
      Called when the connection to the peer has started and the handshake was successfull.
      Parameters:
      peer - the Peer that just got connected.
    • disconnected

      void disconnected(Peer peer)
      Called when the connection to the peer was terminated or the connection handshake failed.
      Parameters:
      peer - the Peer that just got disconnected.
    • gotChoke

      void gotChoke(Peer peer, boolean choke)
      Called when a choke message is received.
      Parameters:
      peer - the Peer that got the message.
      choke - true when the peer got a choke message, false when the peer got an unchoke message.
    • gotInterest

      void gotInterest(Peer peer, boolean interest)
      Called when an interested message is received.
      Parameters:
      peer - the Peer that got the message.
      interest - true when the peer got a interested message, false when the peer got an uninterested message.
    • gotHave

      boolean gotHave(Peer peer, int piece)
      Called when a have piece message is received. If the method returns true and the peer has not yet received a interested message or we indicated earlier to be not interested then an interested message will be send.
      Parameters:
      peer - the Peer that got the message.
      piece - the piece number that the per just got.
      Returns:
      true when it is a piece that we want, false if the piece is already known.
    • gotBitField

      boolean gotBitField(Peer peer, BitField bitfield)
      Called when a bitmap message is received. If this method returns true a interested message will be send back to the peer.
      Parameters:
      peer - the Peer that got the message.
      bitfield - a BitField containing the pieces that the other side has.
      Returns:
      true when the BitField contains pieces we want, false if the piece is already known.
    • gotPiece

      boolean gotPiece(Peer peer, PartialPiece piece)
      Called when a piece is received from the peer. The piece must be requested by Peer.request() first. If this method returns false that means the Peer provided a corrupted piece and the connection will be closed.
      Parameters:
      peer - the Peer that got the piece.
      piece - the piece received.
      Returns:
      true when the bytes represent the piece, false otherwise.
    • gotRequest

      ByteArray gotRequest(Peer peer, int piece, int off, int len)
      Called when the peer wants (part of) a piece from us. Only called when the peer is not choked by us (peer.choke(false) was called).
      Parameters:
      peer - the Peer that wants the piece.
      piece - the piece number requested.
      off - byte offset into the piece.
      len - length of the chunk requested.
      Returns:
      a byte array containing the piece or null when the piece is not available (which is a protocol error).
    • downloaded

      void downloaded(Peer peer, int size)
      Called when a (partial) piece has been downloaded from the peer.
      Parameters:
      peer - the Peer from which size bytes where downloaded.
      size - the number of bytes that where downloaded.
    • uploaded

      void uploaded(Peer peer, int size)
      Called when a (partial) piece has been uploaded to the peer.
      Parameters:
      peer - the Peer to which size bytes where uploaded.
      size - the number of bytes that where uploaded.
    • wantPiece

      int wantPiece(Peer peer, BitField bitfield)
      Called when we are downloading from the peer and need to ask for a new piece. Might be called multiple times before gotPiece() is called.
      Parameters:
      peer - the Peer that will be asked to provide the piece.
      bitfield - a BitField containing the pieces that the other side has.
      Returns:
      one of the pieces from the bitfield that we want or -1 if we are no longer interested in the peer.
    • needPiece

      boolean needPiece(Peer peer, BitField bitfield)
      Called when we are downloading from the peer and may need to ask for a new piece. Returns true if wantPiece() or getPartialPiece() would return a piece.
      Parameters:
      peer - the Peer that will be asked to provide the piece.
      bitfield - a BitField containing the pieces that the other side has.
      Returns:
      if we want any of what the peer has
      Since:
      0.8.2
    • savePartialPieces

      void savePartialPieces(Peer peer, List<Request> pcs)
      Called when the peer has disconnected and the peer task may have a partially downloaded piece that the PeerCoordinator can save
      Parameters:
      peer - the peer
      Since:
      0.8.2
    • getPartialPiece

      PartialPiece getPartialPiece(Peer peer, BitField havePieces)
      Called when a peer has connected and there may be a partially downloaded piece that the coordinatorator can give the peer task
      Parameters:
      havePieces - the have-pieces bitmask for the peer
      Returns:
      request (contains the partial data and valid length)
      Since:
      0.8.2
    • gotExtension

      void gotExtension(Peer peer, int id, byte[] bs)
      Called when an extension message is received.
      Parameters:
      peer - the Peer that got the message.
      id - the message ID
      bs - the message payload
      Since:
      0.8.4
    • gotPort

      void gotPort(Peer peer, int port, int rport)
      Called when a DHT port message is received.
      Parameters:
      peer - the Peer that got the message.
      port - the query port
      rport - the response port
      Since:
      0.8.4
    • gotPeers

      void gotPeers(Peer peer, List<PeerID> pIDList)
      Called when peers are received via PEX
      Parameters:
      peer - the Peer that got the message.
      pIDList - the peer IDs (dest hashes)
      Since:
      0.8.4
    • getUtil

      I2PSnarkUtil getUtil()
      Convenience
      Since:
      0.9.2
    • gotCommentReq

      void gotCommentReq(Peer peer, int num)
      Called when comments are requested via ut_comment
      Since:
      0.9.31
    • gotComments

      void gotComments(Peer peer, List<Comment> comments)
      Called when comments are received via ut_comment
      Since:
      0.9.31