Class TRNonBlockingServerProcessor
- java.lang.Object
-
- com.biglybt.core.util.AERunnable
-
- com.biglybt.core.util.ThreadPoolTask
-
- com.biglybt.core.tracker.server.impl.TRTrackerServerProcessor
-
- com.biglybt.core.tracker.server.impl.tcp.TRTrackerServerProcessorTCP
-
- com.biglybt.core.tracker.server.impl.tcp.nonblocking.TRNonBlockingServerProcessor
-
- All Implemented Interfaces:
java.lang.Runnable
- Direct Known Subclasses:
TRTrackerServerFactoryImpl.NonBlockingProcessor
public abstract class TRNonBlockingServerProcessor extends TRTrackerServerProcessorTCP
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.biglybt.core.tracker.server.impl.TRTrackerServerProcessor
TRTrackerServerProcessor.lightweightPeer
-
Nested classes/interfaces inherited from class com.biglybt.core.util.AERunnable
AERunnable.AERunnableNamed
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
keep_alive
private java.lang.String
lc_request_header
private static int
MAX_POST
private java.nio.ByteBuffer
post_data_buffer
private static AEProxyAddressMapper
proxy_address_mapper
private java.nio.ByteBuffer
read_buffer
private static int
READ_BUFFER_INCREMENT
private static int
READ_BUFFER_INITIAL
private static int
READ_BUFFER_LIMIT
private VirtualChannelSelector.VirtualSelectorListener
read_listener
private java.lang.String
request_header
private java.nio.channels.SocketChannel
socket_channel
private long
start_time
private java.nio.ByteBuffer
write_buffer
private VirtualChannelSelector.VirtualSelectorListener
write_listener
-
Fields inherited from class com.biglybt.core.tracker.server.impl.tcp.TRTrackerServerProcessorTCP
CR, FF, HTTP_RESPONSE_END_GZIP, HTTP_RESPONSE_END_NOGZIP, HTTP_RESPONSE_START, HTTP_RESPONSE_XML_START, NL, SOCKET_TIMEOUT
-
Fields inherited from class com.biglybt.core.util.ThreadPoolTask
worker
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
TRNonBlockingServerProcessor(TRTrackerServerTCP _server, java.nio.channels.SocketChannel _socket)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
asyncProcessComplete(java.io.ByteArrayOutputStream response)
protected void
closed()
protected void
completed()
protected void
failed()
protected boolean
getKeepAlive()
protected byte[]
getPostData()
protected VirtualChannelSelector.VirtualSelectorListener
getReadListener()
protected java.nio.channels.SocketChannel
getSocketChannel()
protected long
getStartTime()
protected VirtualChannelSelector.VirtualSelectorListener
getWriteListener()
void
interruptTask()
boolean
isActive()
protected abstract java.io.ByteArrayOutputStream
process(java.lang.String input_header, java.lang.String lowercase_input_header, java.lang.String url_path, java.net.InetSocketAddress client_address, boolean announce_and_scrape_only, java.io.InputStream is, AsyncController async)
protected int
processRead()
protected int
processWrite()
void
runSupport()
protected void
setKeepAlive(boolean k)
protected void
setReadListener(VirtualChannelSelector.VirtualSelectorListener rl)
protected void
setWriteListener(VirtualChannelSelector.VirtualSelectorListener wl)
protected void
writeComplete()
-
Methods inherited from class com.biglybt.core.tracker.server.impl.tcp.TRTrackerServerProcessorTCP
areTimeoutsDisabled, doAuthentication, getServer, handleExternalRequest, processRequest, setTimeoutsDisabled
-
Methods inherited from class com.biglybt.core.tracker.server.impl.TRTrackerServerProcessor
addScrapeInterval, addScrapeInterval, processTrackerRequest, taskCompleted
-
Methods inherited from class com.biglybt.core.util.ThreadPoolTask
getName, getTaskState, releaseToPool, setTaskState, taskStarted
-
Methods inherited from class com.biglybt.core.util.AERunnable
create, run
-
-
-
-
Field Detail
-
MAX_POST
private static final int MAX_POST
- See Also:
- Constant Field Values
-
READ_BUFFER_INITIAL
private static final int READ_BUFFER_INITIAL
- See Also:
- Constant Field Values
-
READ_BUFFER_INCREMENT
private static final int READ_BUFFER_INCREMENT
- See Also:
- Constant Field Values
-
READ_BUFFER_LIMIT
private static final int READ_BUFFER_LIMIT
- See Also:
- Constant Field Values
-
proxy_address_mapper
private static final AEProxyAddressMapper proxy_address_mapper
-
socket_channel
private final java.nio.channels.SocketChannel socket_channel
-
read_listener
private VirtualChannelSelector.VirtualSelectorListener read_listener
-
write_listener
private VirtualChannelSelector.VirtualSelectorListener write_listener
-
start_time
private long start_time
-
read_buffer
private java.nio.ByteBuffer read_buffer
-
post_data_buffer
private java.nio.ByteBuffer post_data_buffer
-
request_header
private java.lang.String request_header
-
lc_request_header
private java.lang.String lc_request_header
-
write_buffer
private java.nio.ByteBuffer write_buffer
-
keep_alive
private boolean keep_alive
-
-
Constructor Detail
-
TRNonBlockingServerProcessor
protected TRNonBlockingServerProcessor(TRTrackerServerTCP _server, java.nio.channels.SocketChannel _socket)
-
-
Method Detail
-
setReadListener
protected void setReadListener(VirtualChannelSelector.VirtualSelectorListener rl)
-
getReadListener
protected VirtualChannelSelector.VirtualSelectorListener getReadListener()
-
setWriteListener
protected void setWriteListener(VirtualChannelSelector.VirtualSelectorListener wl)
-
getWriteListener
protected VirtualChannelSelector.VirtualSelectorListener getWriteListener()
-
processRead
protected int processRead()
-
processWrite
protected int processWrite()
-
runSupport
public void runSupport()
- Specified by:
runSupport
in classAERunnable
-
process
protected abstract java.io.ByteArrayOutputStream process(java.lang.String input_header, java.lang.String lowercase_input_header, java.lang.String url_path, java.net.InetSocketAddress client_address, boolean announce_and_scrape_only, java.io.InputStream is, AsyncController async) throws java.io.IOException
- Throws:
java.io.IOException
-
asyncProcessComplete
protected void asyncProcessComplete(java.io.ByteArrayOutputStream response)
-
getSocketChannel
protected java.nio.channels.SocketChannel getSocketChannel()
-
getPostData
protected byte[] getPostData()
-
getStartTime
protected long getStartTime()
-
getKeepAlive
protected boolean getKeepAlive()
-
setKeepAlive
protected void setKeepAlive(boolean k)
-
isActive
public boolean isActive()
- Overrides:
isActive
in classTRTrackerServerProcessorTCP
-
interruptTask
public void interruptTask()
- Specified by:
interruptTask
in classThreadPoolTask
-
failed
protected void failed()
-
writeComplete
protected void writeComplete()
-
completed
protected void completed()
-
closed
protected void closed()
-
-