public final class AprIoProcessor extends AbstractPollingIoProcessor<AprSession>
AprSocketConnectorwakeupCalled| 构造器和说明 |
|---|
AprIoProcessor(java.util.concurrent.Executor executor)
Create a new instance of
AprIoProcessor with a given Exector for
handling I/Os events. |
| 限定符和类型 | 方法和说明 |
|---|---|
protected java.util.Iterator<AprSession> |
allSessions()
|
protected void |
destroy(AprSession session)
Destroy the underlying client socket handle
|
protected void |
doDispose()
Dispose the resources used by this
IoProcessor for polling the
client connections. |
protected SessionState |
getState(AprSession session)
Get the state of a session (One of OPENING, OPEN, CLOSING)
|
protected void |
init(AprSession session)
Initialize the polling of a session.
|
protected boolean |
isBrokenConnection()
Check that the select() has not exited immediately just because of a
broken connection.
|
protected boolean |
isInterestedInRead(AprSession session)
Tells if this session is registered for reading
|
protected boolean |
isInterestedInWrite(AprSession session)
Tells if this session is registered for writing
|
protected boolean |
isReadable(AprSession session)
Tells if the session ready for reading
|
protected boolean |
isSelectorEmpty()
Say if the list of
IoSession polled by this IoProcessor
is empty |
protected boolean |
isWritable(AprSession session)
Tells if the session ready for writing
|
protected int |
read(AprSession session,
IoBuffer buffer)
|
protected void |
registerNewSelector()
In the case we are using the java select() method, this method is used to
trash the buggy selector and create a new one, registring all the sockets
on it.
|
protected int |
select()
poll those sessions forever
|
protected int |
select(long timeout)
poll those sessions for the given timeout
|
protected java.util.Iterator<AprSession> |
selectedSessions()
Get an
Iterator for the list of IoSession found selected
by the last call of AbstractPollingIoProcessor.select(long) |
protected void |
setInterestedInRead(AprSession session,
boolean isInterested)
Set the session to be informed when a read event should be processed
|
protected void |
setInterestedInWrite(AprSession session,
boolean isInterested)
Set the session to be informed when a write event should be processed
|
protected int |
transferFile(AprSession session,
FileRegion region,
int length)
Write a part of a file to a
IoSession, if the underlying API
isn't supporting system calls like sendfile(), you can throw a
UnsupportedOperationException so the file will be send using
usual AbstractPollingIoProcessor.write(AbstractIoSession, IoBuffer, int) call. |
protected void |
wakeup()
Interrupt the
AbstractPollingIoProcessor.select(long) call. |
protected int |
write(AprSession session,
IoBuffer buf,
int length)
Write a sequence of bytes to a
IoSession, means to be called when
a session was found ready for writing. |
add, dispose, flush, isDisposed, isDisposing, remove, updateTrafficControl, updateTrafficMask, writepublic AprIoProcessor(java.util.concurrent.Executor executor)
AprIoProcessor with a given Exector for
handling I/Os events.executor - the Executor for handling I/O eventsprotected void doDispose()
IoProcessor for polling the
client connections. The implementing class doDispose method will be
called.doDispose 在类中 AbstractPollingIoProcessor<AprSession>protected int select()
throws java.lang.Exception
select 在类中 AbstractPollingIoProcessor<AprSession>java.lang.Exception - if some low level IO error occursprotected int select(long timeout)
throws java.lang.Exception
select 在类中 AbstractPollingIoProcessor<AprSession>timeout - milliseconds before the call timeout if no event appearjava.lang.Exception - if some low level IO error occursprotected boolean isSelectorEmpty()
IoSession polled by this IoProcessor
is emptyisSelectorEmpty 在类中 AbstractPollingIoProcessor<AprSession>IoProcessorprotected void wakeup()
AbstractPollingIoProcessor.select(long) call.wakeup 在类中 AbstractPollingIoProcessor<AprSession>protected java.util.Iterator<AprSession> allSessions()
allSessions 在类中 AbstractPollingIoProcessor<AprSession>Iterator of IoSessionprotected java.util.Iterator<AprSession> selectedSessions()
Iterator for the list of IoSession found selected
by the last call of AbstractPollingIoProcessor.select(long)selectedSessions 在类中 AbstractPollingIoProcessor<AprSession>Iterator of IoSession read for I/Os operationprotected void init(AprSession session) throws java.lang.Exception
AbstractPollingIoProcessorinit 在类中 AbstractPollingIoProcessor<AprSession>session - the IoSession to add to the pollingjava.lang.Exception - any exception thrown by the underlying system callsprotected void destroy(AprSession session) throws java.lang.Exception
destroy 在类中 AbstractPollingIoProcessor<AprSession>session - the IoSessionjava.lang.Exception - any exception thrown by the underlying system callsprotected SessionState getState(AprSession session)
getState 在类中 AbstractPollingIoProcessor<AprSession>session - the IoSession to inspectprotected boolean isReadable(AprSession session)
isReadable 在类中 AbstractPollingIoProcessor<AprSession>session - the queried sessionprotected boolean isWritable(AprSession session)
isWritable 在类中 AbstractPollingIoProcessor<AprSession>session - the queried sessionprotected boolean isInterestedInRead(AprSession session)
isInterestedInRead 在类中 AbstractPollingIoProcessor<AprSession>session - the queried sessionprotected boolean isInterestedInWrite(AprSession session)
isInterestedInWrite 在类中 AbstractPollingIoProcessor<AprSession>session - the queried sessionprotected void setInterestedInRead(AprSession session, boolean isInterested) throws java.lang.Exception
setInterestedInRead 在类中 AbstractPollingIoProcessor<AprSession>session - the session for which we want to be interested in read eventsisInterested - true for registering, false for removingjava.lang.Exception - If there was a problem while registering the sessionprotected void setInterestedInWrite(AprSession session, boolean isInterested) throws java.lang.Exception
setInterestedInWrite 在类中 AbstractPollingIoProcessor<AprSession>session - the session for which we want to be interested in write eventsisInterested - true for registering, false for removingjava.lang.Exception - If there was a problem while registering the sessionprotected int read(AprSession session, IoBuffer buffer) throws java.lang.Exception
IoSession into the given
IoBuffer. Is called when the session was found ready for reading.read 在类中 AbstractPollingIoProcessor<AprSession>session - the session to readbuffer - the buffer to filljava.lang.Exception - any exception thrown by the underlying system callsprotected int write(AprSession session, IoBuffer buf, int length) throws java.lang.Exception
IoSession, means to be called when
a session was found ready for writing.write 在类中 AbstractPollingIoProcessor<AprSession>session - the session to writebuf - the buffer to writelength - the number of bytes to write can be superior to the number of
bytes remaining in the bufferjava.lang.Exception - any exception thrown by the underlying system callsprotected int transferFile(AprSession session, FileRegion region, int length) throws java.lang.Exception
IoSession, if the underlying API
isn't supporting system calls like sendfile(), you can throw a
UnsupportedOperationException so the file will be send using
usual AbstractPollingIoProcessor.write(AbstractIoSession, IoBuffer, int) call.transferFile 在类中 AbstractPollingIoProcessor<AprSession>session - the session to writeregion - the file region to writelength - the length of the portion to sendjava.lang.Exception - any exception thrown by the underlying system callsprotected void registerNewSelector()
protected boolean isBrokenConnection()
throws java.io.IOException
isBrokenConnection 在类中 AbstractPollingIoProcessor<AprSession>java.io.IOException - If we got an exception