Class ExternalSeedReaderImpl
java.lang.Object
com.biglybt.plugin.extseed.impl.ExternalSeedReaderImpl
- All Implemented Interfaces:
PeerManagerListener2, ExternalSeedReader
- Direct Known Subclasses:
ExternalSeedReaderGetRight, ExternalSeedReaderWebSeed
public abstract class ExternalSeedReaderImpl
extends Object
implements ExternalSeedReader, PeerManagerListener2
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate ExternalSeedReaderRequestprivate intprivate PeerManagerprivate ExternalSeedReaderRequestprivate List<PeerReadRequest> private final Stringprivate final Stringstatic final intprivate Stringprivate longprivate Listprivate static intprivate longprivate booleanprivate ExternalSeedPluginprivate int[]private longprivate intprivate AESemaphorestatic final intprivate intprivate Semaphoreprivate Threadprivate List<PeerReadRequest> private Monitorstatic final intstatic final intprivate Stringstatic final intprivate Torrentprivate booleanprivate static booleanprivate Stringprivate booleanprivate intprivate intprivate intprivate long -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedExternalSeedReaderImpl(ExternalSeedPlugin _plugin, Torrent _torrent, String _host, Map _params) -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidaddRequests(List<PeerReadRequest> new_requests) voidcalculatePriorityOffsets(PeerManager peer_manager, int[] base_priorities) voidvoidcancelRequest(PeerReadRequest request) booleancheckActivation(PeerManager peer_manager, Peer peer) voiddeactivate(String reason) voideventOccurred(PeerManagerEvent event) protected booleangetBooleanParam(Map map, String name, boolean def) int[]protected intprotected intgetIntParam(Map map, String name, int def) getIP()protected longintintint[]longprotected abstract intint[]protected abstract booleanintprotected longprotected Stringprotected voidinformCancelled(PeerReadRequest request) protected voidinformComplete(PeerReadRequest request, byte[] buffer) protected voidinformFailed(PeerReadRequest request) booleanisActive()booleanbooleanprotected voidprotected voidprotected voidprocessRequests(List<PeerReadRequest> requests) byte[]read(int piece_number, int piece_offset, int length, int timeout) longreadBytes(long max) Rate handlingprotected abstract voidreadData(int piece_number, int piece_offset, int length, ExternalSeedHTTPDownloaderListener listener) protected voidreadData(ExternalSeedReaderRequest request) protected booleanreadyToActivate(PeerManager peer_manager, Peer peer, long time_since_start) protected booleanreadyToDeactivate(PeerManager peer_manager, Peer peer) voidvoidreportBytesRead(int num) protected intselectRequests(List<PeerReadRequest> requests) protected voidsetActive(PeerManager _peer_manager, boolean _active) protected voidsetActiveSupport(PeerManager _peer_manager, boolean _active) protected voidsetReconnectDelay(int delay, boolean reset_failures)
-
Field Details
-
RECONNECT_DEFAULT
public static final int RECONNECT_DEFAULT- See Also:
-
INITIAL_DELAY
public static final int INITIAL_DELAY- See Also:
-
STALLED_DOWNLOAD_SPEED
public static final int STALLED_DOWNLOAD_SPEED- See Also:
-
STALLED_PEER_SPEED
public static final int STALLED_PEER_SPEED- See Also:
-
TOP_PIECE_PRIORITY
public static final int TOP_PIECE_PRIORITY- See Also:
-
use_avail_to_activate
private static boolean use_avail_to_activate -
min_download_speed_default
private static int min_download_speed_default -
plugin
-
torrent
-
host
-
host_net
-
ip_use_accessor
-
status
-
active
private boolean active -
permanent_fail
private boolean permanent_fail -
last_failed_read
private long last_failed_read -
consec_failures
private int consec_failures -
user_agent
-
peer_manager_change_time
private long peer_manager_change_time -
current_manager
-
requests
-
dangling_requests
-
request_thread
-
request_sem
-
requests_mon
-
active_read_request
-
priority_offsets
private int[] priority_offsets -
ws_fast_activate
private boolean ws_fast_activate -
ws_min_availability
private int ws_min_availability -
ws_min_download_speed
private int ws_min_download_speed -
ws_max_peer_speed
private int ws_max_peer_speed -
ws_valid_until
private long ws_valid_until -
transient_seed
private boolean transient_seed -
reconnect_delay
private int reconnect_delay -
current_request
-
listeners
-
rate_sem
-
rate_bytes_read
private int rate_bytes_read -
rate_bytes_permitted
private long rate_bytes_permitted -
bad_pieces
-
-
Constructor Details
-
ExternalSeedReaderImpl
protected ExternalSeedReaderImpl(ExternalSeedPlugin _plugin, Torrent _torrent, String _host, Map _params)
-
-
Method Details
-
getIP
- Specified by:
getIPin interfaceExternalSeedReader
-
getTorrent
- Specified by:
getTorrentin interfaceExternalSeedReader
-
getStatus
- Specified by:
getStatusin interfaceExternalSeedReader
-
isTransient
public boolean isTransient()- Specified by:
isTransientin interfaceExternalSeedReader
-
log
-
getUserAgent
-
getSystemTime
protected long getSystemTime() -
getFailureCount
protected int getFailureCount() -
getLastFailTime
protected long getLastFailTime() -
setReconnectDelay
protected void setReconnectDelay(int delay, boolean reset_failures) -
eventOccurred
- Specified by:
eventOccurredin interfacePeerManagerListener2
-
readyToActivate
-
readyToDeactivate
-
checkActivation
- Specified by:
checkActivationin interfaceExternalSeedReader
-
deactivate
- Specified by:
deactivatein interfaceExternalSeedReader
-
setActive
-
setActiveSupport
-
isActive
public boolean isActive()- Specified by:
isActivein interfaceExternalSeedReader
-
processRequests
protected void processRequests() -
readBytes
public long readBytes(long max) Rate handling- Specified by:
readBytesin interfaceExternalSeedReader
-
getPermittedBytes
- Throws:
ExternalSeedException
-
reportBytesRead
public void reportBytesRead(int num) -
getCurrentIncomingRequestProgress
public int[] getCurrentIncomingRequestProgress()- Specified by:
getCurrentIncomingRequestProgressin interfaceExternalSeedReader
-
getMaximumNumberOfRequests
public int getMaximumNumberOfRequests()- Specified by:
getMaximumNumberOfRequestsin interfaceExternalSeedReader
-
calculatePriorityOffsets
- Specified by:
calculatePriorityOffsetsin interfaceExternalSeedReader
-
getPieceGroupSize
protected abstract int getPieceGroupSize() -
getRequestCanSpanPieces
protected abstract boolean getRequestCanSpanPieces() -
getPriorityOffsets
public int[] getPriorityOffsets()- Specified by:
getPriorityOffsetsin interfaceExternalSeedReader
-
selectRequests
-
read
public byte[] read(int piece_number, int piece_offset, int length, int timeout) throws ExternalSeedException - Specified by:
readin interfaceExternalSeedReader- Throws:
ExternalSeedException
-
readData
- Throws:
ExternalSeedException
-
readData
protected abstract void readData(int piece_number, int piece_offset, int length, ExternalSeedHTTPDownloaderListener listener) throws ExternalSeedException - Throws:
ExternalSeedException
-
processRequests
-
addRequests
- Specified by:
addRequestsin interfaceExternalSeedReader
-
cancelRequest
- Specified by:
cancelRequestin interfaceExternalSeedReader
-
cancelAllRequests
public void cancelAllRequests()- Specified by:
cancelAllRequestsin interfaceExternalSeedReader
-
getRequestCount
public int getRequestCount()- Specified by:
getRequestCountin interfaceExternalSeedReader
-
getExpiredRequests
- Specified by:
getExpiredRequestsin interfaceExternalSeedReader
-
getRequests
- Specified by:
getRequestsin interfaceExternalSeedReader
-
getOutgoingRequestedPieceNumbers
public int[] getOutgoingRequestedPieceNumbers()- Specified by:
getOutgoingRequestedPieceNumbersin interfaceExternalSeedReader
-
getOutgoingRequestCount
public int getOutgoingRequestCount()- Specified by:
getOutgoingRequestCountin interfaceExternalSeedReader
-
informComplete
-
informCancelled
-
informFailed
-
addListener
- Specified by:
addListenerin interfaceExternalSeedReader
-
removeListener
- Specified by:
removeListenerin interfaceExternalSeedReader
-
getIntParam
-
getBooleanParam
-