package org.torrent.internal.transfer; import java.util.Collection; import java.util.List; import org.torrent.internal.peer.connection.BTConnection; import org.torrent.internal.protocol.message.BittorrentMessage; import org.torrent.internal.protocol.message.Piece; import org.torrent.internal.transfer.event.BitfieldListener; public interface BTSession extends BitfieldListener { void addConnection(BTConnection connection); void removeConnection(BTConnection connection); Collection<BTConnection> getConnections(); void sent(BTConnection from, BittorrentMessage msg); void received(BTConnection from, BittorrentMessage msg); void connectionEstablished(BTConnection connection); List<BTSessionListener> getListenerChain(); void close(); void unrequestedPiece(BTConnection connection, Piece piece); void addBTSessionListener(BTSessionListener listener); }