|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.gudy.azureus2.core3.peer.impl.PEPieceImpl
public class PEPieceImpl
Field Summary | |
---|---|
protected static AEMonitor |
class_mon
|
Constructor Summary | |
---|---|
PEPieceImpl(PEPeerManager _manager,
DiskManagerPiece _dm_piece,
int _pieceSpeed)
piece for tracking partially downloaded pieces |
Method Summary | |
---|---|
void |
addWrite(int blockNumber,
String sender,
byte[] hash,
boolean correct)
record details of a piece's blocks that have been completed for bad peer detection purposes |
protected void |
addWrite(PEPieceWriteImpl write)
|
void |
checkRequests()
This will scan each block looking for requested blocks. |
void |
clearDownloaded(int offset)
This flags the block at the given offset as NOT having been downloaded and the whole piece as not having been fully downloaded |
void |
clearRequested(int blockNumber)
This method clears the requested information for the given block unless the block has already been downloaded, in which case the writer's IP is recorded as a request for the block. |
void |
getAndMarkBlock(PEPeer peer,
int index)
|
int[] |
getAndMarkBlocks(PEPeer peer,
int nbWanted,
int[] request_hint,
boolean reverse_order)
This method scans a piece for the first unrequested block. |
int |
getAvailability()
|
int |
getBlockNumber(int offset)
|
int |
getBlockSize(int blockNumber)
|
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()
This support method returns how many blocks have already been written from the dmPiece |
int |
getPieceNumber()
|
List |
getPieceWrites()
|
List |
getPieceWrites(int blockNumber)
|
List |
getPieceWrites(PEPeer peer)
|
List |
getPieceWrites(String ip)
|
Object |
getRealTimeData()
|
String |
getReservedBy()
|
int |
getResumePriority()
|
int |
getSpeed()
|
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. |
String[] |
getWriters()
|
boolean[] |
getWritten()
This support method returns the dmPiece's written array |
boolean |
hasUndownloadedBlock()
|
boolean |
hasUnrequestedBlock()
|
boolean |
isDownloaded()
|
boolean |
isDownloaded(int blockNumber)
Tells if a block has been downloaded |
boolean |
isRequestable()
|
boolean |
isRequested()
|
boolean |
isRequested(int blockNumber)
Tells if a block has been requested |
boolean |
isWritten()
|
boolean |
isWritten(int block)
|
void |
reDownloadBlock(int blockNumber)
for a block that's already downloadedt, mark up the piece so that the block will get downloaded again. |
void |
reDownloadBlocks(String address)
finds all blocks downloaded by the given address and marks them up for re-downloading |
void |
reset()
|
void |
setDownloaded(int offset)
This flags the block at the given offset as having been downloaded If all blocks are now downloaed, sets the dmPiece as downloaded |
void |
setLastRequestedPeerSpeed(int peerSpeed)
|
void |
setRealTimeData(Object o)
|
void |
setRequestable()
|
void |
setRequested()
|
boolean |
setRequested(PEPeer peer,
int blockNumber)
Assumption - single threaded with getAndMarkBlock |
void |
setReservedBy(String peer)
|
void |
setResumePriority(int p)
|
void |
setSpeed(int newSpeed)
|
void |
setWritten(String peer,
int blockNumber)
This marks a given block as having been written by the given peer |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected static final AEMonitor class_mon
Constructor Detail |
---|
public PEPieceImpl(PEPeerManager _manager, DiskManagerPiece _dm_piece, int _pieceSpeed)
_manager
- the PEPeerManager_dm_piece
- the backing dmPiece_pieceSpeed
- the speed threshold for potential new requestersMethod Detail |
---|
public DiskManagerPiece getDMPiece()
getDMPiece
in interface PEPiece
public long getCreationTime()
PEPiece
getCreationTime
in interface PEPiece
public long getTimeSinceLastActivity()
PEPiece
getTimeSinceLastActivity
in interface PEPiece
public long getLastDownloadTime(long now)
getLastDownloadTime
in interface PEPiece
public boolean isRequested(int blockNumber)
isRequested
in interface PEPiece
blockNumber
- the block in question
public boolean isDownloaded(int blockNumber)
isDownloaded
in interface PEPiece
blockNumber
- the block in question
public void setDownloaded(int offset)
setDownloaded
in interface PEPiece
blockNumber
- public void clearDownloaded(int offset)
clearDownloaded
in interface PEPiece
blockNumber
- public boolean isDownloaded()
isDownloaded
in interface PEPiece
public boolean[] getDownloaded()
getDownloaded
in interface PEPiece
public boolean hasUndownloadedBlock()
hasUndownloadedBlock
in interface PEPiece
public void setWritten(String peer, int blockNumber)
setWritten
in interface PEPiece
peer
- the peer that sent the datablockNumber
- the block we're operating onpublic void clearRequested(int blockNumber)
clearRequested
in interface PEPiece
public boolean isRequested()
isRequested
in interface PEPiece
public void setRequested()
setRequested
in interface PEPiece
public void checkRequests()
public boolean hasUnrequestedBlock()
hasUnrequestedBlock
in interface PEPiece
public int[] getAndMarkBlocks(PEPeer peer, int nbWanted, int[] request_hint, boolean reverse_order)
getAndMarkBlocks
in interface PEPiece
public void getAndMarkBlock(PEPeer peer, int index)
getAndMarkBlock
in interface PEPiece
public int getNbRequests()
getNbRequests
in interface PEPiece
public int getNbUnrequested()
getNbUnrequested
in interface PEPiece
public boolean setRequested(PEPeer peer, int blockNumber)
setRequested
in interface PEPiece
public boolean isRequestable()
isRequestable
in interface PEPiece
public int getBlockSize(int blockNumber)
getBlockSize
in interface PEPiece
public int getBlockNumber(int offset)
getBlockNumber
in interface PEPiece
offset
- int bytes into piece
public int getNbBlocks()
getNbBlocks
in interface PEPiece
public List getPieceWrites()
public List getPieceWrites(int blockNumber)
public List getPieceWrites(PEPeer peer)
public List getPieceWrites(String ip)
public void reset()
reset
in interface PEPiece
public Object getRealTimeData()
getRealTimeData
in interface PEPiece
public void setRealTimeData(Object o)
setRealTimeData
in interface PEPiece
protected void addWrite(PEPieceWriteImpl write)
public void addWrite(int blockNumber, String sender, byte[] hash, boolean correct)
PEPiece
addWrite
in interface PEPiece
public String[] getWriters()
getWriters
in interface PEPiece
public int getSpeed()
getSpeed
in interface PEPiece
public void setSpeed(int newSpeed)
setSpeed
in interface PEPiece
public void setLastRequestedPeerSpeed(int peerSpeed)
setLastRequestedPeerSpeed
in interface PEPiece
public PEPeerManager getManager()
getManager
in interface PEPiece
public void setReservedBy(String peer)
setReservedBy
in interface PEPiece
public String getReservedBy()
getReservedBy
in interface PEPiece
public void reDownloadBlock(int blockNumber)
public void reDownloadBlocks(String address)
address
- Stringpublic void setResumePriority(int p)
setResumePriority
in interface PEPiece
p
- the Resume Priority to set, for display purposespublic int getResumePriority()
getResumePriority
in interface PEPiece
public int getAvailability()
getAvailability
in interface PEPiece
org.gudy.azureus2.core3.peer.PEPeerManager.getAvailability(int pieceNumber)
public int getNbWritten()
getNbWritten
in interface PEPiece
org.gudy.azureus2.core3.disk.DiskManagerPiece.getNbWritten()
public boolean[] getWritten()
org.gudy.azureus2.core3.disk.DiskManagerPiece.getWritten()
public boolean isWritten()
isWritten
in interface PEPiece
public boolean isWritten(int block)
isWritten
in interface PEPiece
public int getPieceNumber()
getPieceNumber
in interface PEPiece
public int getLength()
getLength
in interface PEPiece
public void setRequestable()
public String getString()
getString
in interface PEPiece
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |