org.gudy.azureus2.core3.peer
Interface PEPiece

All Known Implementing Classes:
PEPieceImpl

public interface PEPiece

Represents a Peer Piece and the status of its different blocks (un-requested, requested, downloaded, written).

Author:
Olivier, MjrTom 2005/Oct/08: various changes to support new piece-picking 2006/Jan/2: refactoring, mostly to base Piece interface

Method Summary
 void addWrite(int blockNumber, java.lang.String sender, byte[] hash, boolean correct)
          record details of a piece's blocks that have been completed for bad peer detection purposes
 void clearDownloaded(int offset)
           
 void clearRequested(int blocNumber)
           
 void getAndMarkBlock(PEPeer peer, int index)
           
 int[] getAndMarkBlocks(PEPeer peer, int nbWanted, int[] request_hint, boolean reverse_order)
           
 int getAvailability()
           
 int getBlockNumber(int offset)
           
 int getBlockSize(int block_index)
           
 long getCreationTime()
          The time the pePiece was [re]created
 DiskManagerPiece getDMPiece()
           
 boolean[] getDownloaded()
           
 long getLastDownloadTime(long now)
           
 int getLength()
           
 PEPeerManager getManager()
           
 int getNbBlocks()
           
 int getNbRequests()
           
 int getNbUnrequested()
           
 int getNbWritten()
           
 int getPieceNumber()
           
 java.lang.Object getRealTimeData()
           
 java.lang.String getReservedBy()
           
 int getResumePriority()
           
 int getSpeed()
           
 java.lang.String getString()
           
 long getTimeSinceLastActivity()
          How many ms since a write to the piece, or since the piece was created if no last write time is known.
 java.lang.String[] getWriters()
           
 boolean hasUndownloadedBlock()
           
 boolean hasUnrequestedBlock()
           
 boolean isDownloaded()
           
 boolean isDownloaded(int blockNumber)
           
 boolean isRequestable()
           
 boolean isRequested()
           
 boolean isRequested(int blockNumber)
           
 boolean isWritten()
           
 boolean isWritten(int blockNumber)
           
 void reset()
           
 void setDownloaded(int offset)
           
 void setLastRequestedPeerSpeed(int speed)
           
 void setRealTimeData(java.lang.Object o)
           
 void setRequested()
           
 boolean setRequested(PEPeer peer, int blockNumber)
           
 void setReservedBy(java.lang.String peer)
           
 void setResumePriority(int p)
           
 void setSpeed(int speed)
           
 void setWritten(java.lang.String peer, int blockNumber)
           
 

Method Detail

getManager

PEPeerManager getManager()

getDMPiece

DiskManagerPiece getDMPiece()

getPieceNumber

int getPieceNumber()

getLength

int getLength()

getNbBlocks

int getNbBlocks()

getBlockNumber

int getBlockNumber(int offset)
Parameters:
offset - int bytes into piece
Returns:
block int number corresponding to given offset

getBlockSize

int getBlockSize(int block_index)

getCreationTime

long getCreationTime()
The time the pePiece was [re]created


getTimeSinceLastActivity

long getTimeSinceLastActivity()
How many ms since a write to the piece, or since the piece was created if no last write time is known. The return value will be 0 when there's no writes and the piece is new.

Returns:
long

getLastDownloadTime

long getLastDownloadTime(long now)

addWrite

void addWrite(int blockNumber,
              java.lang.String sender,
              byte[] hash,
              boolean correct)
record details of a piece's blocks that have been completed for bad peer detection purposes

Parameters:
blockNumber -
sender -
hash -
correct -

getNbWritten

int getNbWritten()

getAvailability

int getAvailability()

hasUnrequestedBlock

boolean hasUnrequestedBlock()

getAndMarkBlocks

int[] getAndMarkBlocks(PEPeer peer,
                       int nbWanted,
                       int[] request_hint,
                       boolean reverse_order)

getAndMarkBlock

void getAndMarkBlock(PEPeer peer,
                     int index)

getRealTimeData

java.lang.Object getRealTimeData()

setRealTimeData

void setRealTimeData(java.lang.Object o)

setRequested

boolean setRequested(PEPeer peer,
                     int blockNumber)

clearRequested

void clearRequested(int blocNumber)

isRequested

boolean isRequested(int blockNumber)

isRequested

boolean isRequested()

setRequested

void setRequested()

isRequestable

boolean isRequestable()

getNbRequests

int getNbRequests()

getNbUnrequested

int getNbUnrequested()

isDownloaded

boolean isDownloaded(int blockNumber)

setDownloaded

void setDownloaded(int offset)

clearDownloaded

void clearDownloaded(int offset)

isDownloaded

boolean isDownloaded()

getDownloaded

boolean[] getDownloaded()

hasUndownloadedBlock

boolean hasUndownloadedBlock()

getReservedBy

java.lang.String getReservedBy()

setReservedBy

void setReservedBy(java.lang.String peer)

getResumePriority

int getResumePriority()
Returns:
int ResumePriority (startPriority + resuming adjustments)

setResumePriority

void setResumePriority(int p)
Parameters:
p - the Resume Priority to set, for display purposes

getWriters

java.lang.String[] getWriters()

setWritten

void setWritten(java.lang.String peer,
                int blockNumber)

isWritten

boolean isWritten()

isWritten

boolean isWritten(int blockNumber)

getSpeed

int getSpeed()

setSpeed

void setSpeed(int speed)

setLastRequestedPeerSpeed

void setLastRequestedPeerSpeed(int speed)

reset

void reset()

getString

java.lang.String getString()