Package com.biglybt.pifimpl.local.disk
Class DiskManagerChannelImpl
- java.lang.Object
-
- com.biglybt.pifimpl.local.disk.DiskManagerChannelImpl
-
- All Implemented Interfaces:
DiskManagerFileInfoListener
,DownloadManagerPeerListener
,PieceRTAProvider
,DiskManagerChannel
public class DiskManagerChannelImpl extends java.lang.Object implements DiskManagerChannel, DiskManagerFileInfoListener, DownloadManagerPeerListener, PieceRTAProvider
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
DiskManagerChannelImpl.channelCreateListener
protected static class
DiskManagerChannelImpl.dataEntry
protected class
DiskManagerChannelImpl.request
-
Field Summary
-
Constructor Summary
Constructors Modifier Constructor Description protected
DiskManagerChannelImpl(DownloadImpl _download, DiskManagerFileInfoImpl _plugin_file)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static void
addListener(DiskManagerChannelImpl.channelCreateListener l)
DiskManagerRequest
createRequest()
void
dataChecked(long offset, long length)
void
dataWritten(long offset, long length, java.lang.Object originator)
void
destroy()
long
getBlockingPosition()
long
getCurrentPosition()
DiskManagerFileInfo
getFile()
long
getPosition()
long
getStartPosition()
long
getStartTime()
java.lang.String
getUserAgent()
Returns the user-agent associated with this RTA activity, if knownboolean
isDestroyed()
void
peerAdded(PEPeer peer)
void
peerManagerAdded(PEPeerManager manager)
void
peerManagerRemoved(PEPeerManager manager)
void
peerManagerWillBeAdded(PEPeerManager manager)
Called when a peer manager is created but not yet startedvoid
peerRemoved(PEPeer peer)
static void
removeListener(DiskManagerChannelImpl.channelCreateListener l)
protected static void
reportCreated(DiskManagerChannel channel)
void
setBufferMillis(long millis, long delay_millis)
Sets an external view of how much buffer is being maintained by an external source.long[]
updateRTAs(PiecePicker picker)
-
-
-
Field Detail
-
DEFAULT_BUFFER_MILLIS
private static int DEFAULT_BUFFER_MILLIS
-
DEFAULT_MIN_PIECES_TO_BUFFER
private static int DEFAULT_MIN_PIECES_TO_BUFFER
-
TRACE
private static final boolean TRACE
- See Also:
- Constant Field Values
-
COMPACT_DELAY
private static final int COMPACT_DELAY
- See Also:
- Constant Field Values
-
MAX_READ_CHUNK_DEFAULT
private static final int MAX_READ_CHUNK_DEFAULT
- See Also:
- Constant Field Values
-
comparator
private static final java.util.Comparator<DiskManagerChannelImpl.dataEntry> comparator
-
channel_key
private static final java.lang.String channel_key
- See Also:
- Constant Field Values
-
channel_id_next
private static int channel_id_next
-
listeners
private static CopyOnWriteList<DiskManagerChannelImpl.channelCreateListener> listeners
-
download
private DownloadImpl download
-
plugin_file
private DiskManagerFileInfoImpl plugin_file
-
core_file
private DiskManagerFileInfo core_file
-
data_written
private java.util.Set<DiskManagerChannelImpl.dataEntry> data_written
-
compact_delay
private int compact_delay
-
waiters
private java.util.List<AESemaphore> waiters
-
file_offset_in_torrent
private long file_offset_in_torrent
-
piece_size
private long piece_size
-
byte_rate
private Average byte_rate
-
start_position
private long start_position
-
start_time
private long start_time
-
current_position
private volatile long current_position
-
current_request
private DiskManagerChannelImpl.request current_request
-
buffer_millis_override
private long buffer_millis_override
-
buffer_delay_millis
private long buffer_delay_millis
-
peer_manager
private PEPeerManager peer_manager
-
rtas
private long[] rtas
-
channel_id
private int channel_id
-
destroyed
private volatile boolean destroyed
-
-
Constructor Detail
-
DiskManagerChannelImpl
protected DiskManagerChannelImpl(DownloadImpl _download, DiskManagerFileInfoImpl _plugin_file) throws DownloadException
- Throws:
DownloadException
-
-
Method Detail
-
addListener
public static void addListener(DiskManagerChannelImpl.channelCreateListener l)
-
removeListener
public static void removeListener(DiskManagerChannelImpl.channelCreateListener l)
-
reportCreated
protected static void reportCreated(DiskManagerChannel channel)
-
getFile
public DiskManagerFileInfo getFile()
- Specified by:
getFile
in interfaceDiskManagerChannel
-
createRequest
public DiskManagerRequest createRequest()
- Specified by:
createRequest
in interfaceDiskManagerChannel
-
getPosition
public long getPosition()
- Specified by:
getPosition
in interfaceDiskManagerChannel
-
isDestroyed
public boolean isDestroyed()
- Specified by:
isDestroyed
in interfaceDiskManagerChannel
-
dataWritten
public void dataWritten(long offset, long length, java.lang.Object originator)
- Specified by:
dataWritten
in interfaceDiskManagerFileInfoListener
-
dataChecked
public void dataChecked(long offset, long length)
- Specified by:
dataChecked
in interfaceDiskManagerFileInfoListener
-
peerManagerWillBeAdded
public void peerManagerWillBeAdded(PEPeerManager manager)
Description copied from interface:DownloadManagerPeerListener
Called when a peer manager is created but not yet started- Specified by:
peerManagerWillBeAdded
in interfaceDownloadManagerPeerListener
-
peerManagerAdded
public void peerManagerAdded(PEPeerManager manager)
- Specified by:
peerManagerAdded
in interfaceDownloadManagerPeerListener
-
peerManagerRemoved
public void peerManagerRemoved(PEPeerManager manager)
- Specified by:
peerManagerRemoved
in interfaceDownloadManagerPeerListener
-
peerAdded
public void peerAdded(PEPeer peer)
- Specified by:
peerAdded
in interfaceDownloadManagerPeerListener
-
peerRemoved
public void peerRemoved(PEPeer peer)
- Specified by:
peerRemoved
in interfaceDownloadManagerPeerListener
-
updateRTAs
public long[] updateRTAs(PiecePicker picker)
- Specified by:
updateRTAs
in interfacePieceRTAProvider
-
getStartTime
public long getStartTime()
- Specified by:
getStartTime
in interfacePieceRTAProvider
-
getStartPosition
public long getStartPosition()
- Specified by:
getStartPosition
in interfacePieceRTAProvider
-
getCurrentPosition
public long getCurrentPosition()
- Specified by:
getCurrentPosition
in interfacePieceRTAProvider
-
getBlockingPosition
public long getBlockingPosition()
- Specified by:
getBlockingPosition
in interfacePieceRTAProvider
-
setBufferMillis
public void setBufferMillis(long millis, long delay_millis)
Description copied from interface:PieceRTAProvider
Sets an external view of how much buffer is being maintained by an external source. This reduces piece urgency and therefore reduces discard.- Specified by:
setBufferMillis
in interfacePieceRTAProvider
-
getUserAgent
public java.lang.String getUserAgent()
Description copied from interface:PieceRTAProvider
Returns the user-agent associated with this RTA activity, if known- Specified by:
getUserAgent
in interfacePieceRTAProvider
- Returns:
-
destroy
public void destroy()
- Specified by:
destroy
in interfaceDiskManagerChannel
-
-