Package com.biglybt.plugin.extseed.impl
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 boolean
private ExternalSeedReaderRequest
private int
private PeerManager
private ExternalSeedReaderRequest
private List<PeerReadRequest>
private final String
private final String
static final int
private String
private long
private List
private static int
private long
private boolean
private ExternalSeedPlugin
private int[]
private int
private int
private AESemaphore
static final int
private int
private Semaphore
private Thread
private List<PeerReadRequest>
private Monitor
static final int
static final int
private String
static final int
private Torrent
private boolean
private static boolean
private String
private boolean
private int
private int
private int
private long
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
ExternalSeedReaderImpl
(ExternalSeedPlugin _plugin, Torrent _torrent, String _host, Map _params) -
Method Summary
Modifier and TypeMethodDescriptionvoid
void
addRequests
(List<PeerReadRequest> new_requests) void
calculatePriorityOffsets
(PeerManager peer_manager, int[] base_priorities) void
void
cancelRequest
(PeerReadRequest request) boolean
checkActivation
(PeerManager peer_manager, Peer peer) void
deactivate
(String reason) void
eventOccurred
(PeerManagerEvent event) protected boolean
getBooleanParam
(Map map, String name, boolean def) int[]
protected int
protected int
getIntParam
(Map map, String name, int def) getIP()
protected long
int
int
int[]
int
protected abstract int
int[]
protected abstract boolean
int
protected long
protected String
protected void
informCancelled
(PeerReadRequest request) protected void
informComplete
(PeerReadRequest request, byte[] buffer) protected void
informFailed
(PeerReadRequest request) boolean
isActive()
boolean
boolean
protected void
protected void
protected void
processRequests
(List<PeerReadRequest> requests) byte[]
read
(int piece_number, int piece_offset, int length, int timeout) int
readBytes
(int max) Rate handlingprotected abstract void
readData
(int piece_number, int piece_offset, int length, ExternalSeedHTTPDownloaderListener listener) protected void
readData
(ExternalSeedReaderRequest request) protected boolean
readyToActivate
(PeerManager peer_manager, Peer peer, long time_since_start) protected boolean
readyToDeactivate
(PeerManager peer_manager, Peer peer) void
void
reportBytesRead
(int num) protected int
selectRequests
(List<PeerReadRequest> requests) protected void
setActive
(PeerManager _peer_manager, boolean _active) protected void
setActiveSupport
(PeerManager _peer_manager, boolean _active) protected void
setReconnectDelay
(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 int rate_bytes_permitted -
bad_pieces
-
-
Constructor Details
-
ExternalSeedReaderImpl
protected ExternalSeedReaderImpl(ExternalSeedPlugin _plugin, Torrent _torrent, String _host, Map _params)
-
-
Method Details
-
getIP
- Specified by:
getIP
in interfaceExternalSeedReader
-
getTorrent
- Specified by:
getTorrent
in interfaceExternalSeedReader
-
getStatus
- Specified by:
getStatus
in interfaceExternalSeedReader
-
isTransient
public boolean isTransient()- Specified by:
isTransient
in 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:
eventOccurred
in interfacePeerManagerListener2
-
readyToActivate
-
readyToDeactivate
-
checkActivation
- Specified by:
checkActivation
in interfaceExternalSeedReader
-
deactivate
- Specified by:
deactivate
in interfaceExternalSeedReader
-
setActive
-
setActiveSupport
-
isActive
public boolean isActive()- Specified by:
isActive
in interfaceExternalSeedReader
-
processRequests
protected void processRequests() -
readBytes
public int readBytes(int max) Rate handling- Specified by:
readBytes
in interfaceExternalSeedReader
-
getPermittedBytes
- Throws:
ExternalSeedException
-
reportBytesRead
public void reportBytesRead(int num) -
getCurrentIncomingRequestProgress
public int[] getCurrentIncomingRequestProgress()- Specified by:
getCurrentIncomingRequestProgress
in interfaceExternalSeedReader
-
getMaximumNumberOfRequests
public int getMaximumNumberOfRequests()- Specified by:
getMaximumNumberOfRequests
in interfaceExternalSeedReader
-
calculatePriorityOffsets
- Specified by:
calculatePriorityOffsets
in interfaceExternalSeedReader
-
getPieceGroupSize
protected abstract int getPieceGroupSize() -
getRequestCanSpanPieces
protected abstract boolean getRequestCanSpanPieces() -
getPriorityOffsets
public int[] getPriorityOffsets()- Specified by:
getPriorityOffsets
in interfaceExternalSeedReader
-
selectRequests
-
read
public byte[] read(int piece_number, int piece_offset, int length, int timeout) throws ExternalSeedException - Specified by:
read
in 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:
addRequests
in interfaceExternalSeedReader
-
cancelRequest
- Specified by:
cancelRequest
in interfaceExternalSeedReader
-
cancelAllRequests
public void cancelAllRequests()- Specified by:
cancelAllRequests
in interfaceExternalSeedReader
-
getRequestCount
public int getRequestCount()- Specified by:
getRequestCount
in interfaceExternalSeedReader
-
getExpiredRequests
- Specified by:
getExpiredRequests
in interfaceExternalSeedReader
-
getRequests
- Specified by:
getRequests
in interfaceExternalSeedReader
-
getOutgoingRequestedPieceNumbers
public int[] getOutgoingRequestedPieceNumbers()- Specified by:
getOutgoingRequestedPieceNumbers
in interfaceExternalSeedReader
-
getOutgoingRequestCount
public int getOutgoingRequestCount()- Specified by:
getOutgoingRequestCount
in interfaceExternalSeedReader
-
informComplete
-
informCancelled
-
informFailed
-
addListener
- Specified by:
addListener
in interfaceExternalSeedReader
-
removeListener
- Specified by:
removeListener
in interfaceExternalSeedReader
-
getIntParam
-
getBooleanParam
-