package org.limewire.bittorrent;
/**
* Represents a peer connected to a torrent.
*/
public interface TorrentPeer {
/**
* Returns a hex string representation for this torrents peer id.
*/
public String getPeerId();
/**
* Returns this peers ip address.
*/
public String getIPAddress();
/**
* Returns the current total upload speed to this peer in bytes/sec.
*/
public float getUploadSpeed();
/**
* Returns the current total download speed from this peer in bytes/sec.
*/
public float getDownloadSpeed();
/**
* Returns the current payload upload speed to this peer in bytes/sec.
*/
public float getPayloadUploadSpeed();
/**
* Returns the current payload download speed from this peer in bytes/sec.
*/
public float getPayloadDownloadSpeed();
/**
* Returns the peers progress downloading the torrent in a number from 0 to
* 1
*/
public float getProgress();
/**
* Returns a 2 character code representing the peers country.
*/
public String getCountry();
/**
* The name of the peer's client.
*/
public String getClientName();
/**
* Returns true if this peer is in the list of sources from the tracker.
* The peer can be in multiple lists.
*/
boolean isFromTracker();
/**
* Returns true if this peer is in the list of sources from the DHT. The
* peer can be in multiple lists.
*/
boolean isFromDHT();
/**
* Returns true if this peer is in the list of sources from peer exchange.
* The peer can be in multiple lists.
*/
boolean isFromPEX();
/**
* Returns true if this peer is in the list of sources from local service
* discovery. The peer can be in multiple lists.
*/
boolean isFromLSD();
/**
* Whether the peer connection is encrypted or not.
*/
boolean isEncrypted();
}