|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.mina.core.polling.AbstractPollingIoProcessor<T>
public abstract class AbstractPollingIoProcessor<T extends AbstractIoSession>
An abstract implementation of IoProcessor which helps
transport developers to write an IoProcessor easily.
This class is in charge of active polling a set of IoSession
and trigger events when some I/O operation is possible.
| Nested Class Summary | |
|---|---|
protected static class |
AbstractPollingIoProcessor.SessionState
|
| Constructor Summary | |
|---|---|
protected |
AbstractPollingIoProcessor(Executor executor)
Create an AbstractPollingIoProcessor with the given Executor
for handling I/Os events. |
| Method Summary | |
|---|---|
void |
add(T session)
Adds the specified session to the I/O processor so that
the I/O processor starts to perform any I/O operations related
with the session. |
protected abstract Iterator<T> |
allSessions()
Get an Iterator for the list of IoSession polled by this
IoProcessor |
protected abstract void |
destroy(T session)
Destroy the underlying client socket handle |
void |
dispose()
Releases any resources allocated by this processor. |
protected abstract void |
dispose0()
Dispose the resources used by this IoProcessor for polling
the client connections |
void |
flush(T session)
Flushes the internal write request queue of the specified session. |
protected abstract void |
init(T session)
Initialize the polling of a session. |
boolean |
isDisposed()
Returns true if and if only all resources of this processor have been disposed. |
boolean |
isDisposing()
Returns true if and if only IoProcessor.dispose() method has
been called. |
protected abstract boolean |
isInterestedInRead(T session)
is this session registered for reading |
protected abstract boolean |
isInterestedInWrite(T session)
is this session registered for writing |
protected abstract boolean |
isReadable(T session)
Is the session ready for reading |
protected abstract boolean |
isSelectorEmpty()
Say if the list of IoSession polled by this IoProcessor
is empty |
protected abstract boolean |
isWritable(T session)
Is the session ready for writing |
protected abstract int |
read(T session,
IoBuffer buf)
Reads a sequence of bytes from a IoSession into the given IoBuffer. |
void |
remove(T session)
Removes and closes the specified session from the I/O
processor so that the I/O processor closes the connection
associated with the session and releases any other related
resources. |
protected abstract boolean |
select(int timeout)
poll those sessions for the given timeout |
protected abstract Iterator<T> |
selectedSessions()
Get an Iterator for the list of IoSession found selected
by the last call of {@link AbstractPollingIoProcessor#select(int) |
protected abstract void |
setInterestedInRead(T session,
boolean interested)
register a session for reading |
protected abstract void |
setInterestedInWrite(T session,
boolean interested)
register a session for writing |
protected abstract AbstractPollingIoProcessor.SessionState |
state(T session)
Get the sate of a session (preparing, open, closed) |
protected abstract int |
transferFile(T 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 write(AbstractIoSession, IoBuffer, int) call. |
void |
updateTrafficMask(T session)
Controls the traffic of the specified session as specified
in IoSession.getTrafficMask(). |
protected abstract void |
wakeup()
Interrupt the {@link AbstractPollingIoProcessor#select(int) call. |
protected abstract int |
write(T 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. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
protected AbstractPollingIoProcessor(Executor executor)
AbstractPollingIoProcessor with the given Executor
for handling I/Os events.
executor - the Executor for handling I/O events| Method Detail |
|---|
public final boolean isDisposing()
IoProcessor.dispose() method has
been called. Please note that this method will return true
even after all the related resources are released.
isDisposing in interface IoProcessor<T extends AbstractIoSession>public final boolean isDisposed()
isDisposed in interface IoProcessor<T extends AbstractIoSession>public final void dispose()
dispose in interface IoProcessor<T extends AbstractIoSession>
protected abstract void dispose0()
throws Exception
IoProcessor for polling
the client connections
Exception - if some low level IO error occurs
protected abstract boolean select(int timeout)
throws Exception
timeout - milliseconds before the call timeout if no event appear
Exception - if some low level IO error occursprotected abstract boolean isSelectorEmpty()
IoSession polled by this IoProcessor
is empty
IoProcessorprotected abstract void wakeup()
protected abstract Iterator<T> allSessions()
Iterator for the list of IoSession polled by this
IoProcessor
Iterator of IoSessionprotected abstract Iterator<T> selectedSessions()
Iterator for the list of IoSession found selected
by the last call of {@link AbstractPollingIoProcessor#select(int)
Iterator of IoSession read for I/Os operationprotected abstract AbstractPollingIoProcessor.SessionState state(T session)
session - the IoSession to inspect
protected abstract boolean isWritable(T session)
session - the session queried
protected abstract boolean isReadable(T session)
session - the session queried
protected abstract void setInterestedInWrite(T session,
boolean interested)
throws Exception
session - the session registeredinterested - true for registering, false for removing
Exception
protected abstract void setInterestedInRead(T session,
boolean interested)
throws Exception
session - the session registeredinterested - true for registering, false for removing
Exceptionprotected abstract boolean isInterestedInRead(T session)
session - the session queried
protected abstract boolean isInterestedInWrite(T session)
session - the session queried
protected abstract void init(T session)
throws Exception
session - the IoSession to add to the polling
Exception - any exception thrown by the underlying system calls
protected abstract void destroy(T session)
throws Exception
session - the IoSession
Exception - any exception thrown by the underlying system calls
protected abstract int read(T session,
IoBuffer buf)
throws Exception
IoSession into the given IoBuffer.
Is called when the session was found ready for reading.
session - the session to readbuf - the buffer to fill
Exception - any exception thrown by the underlying system calls
protected abstract int write(T session,
IoBuffer buf,
int length)
throws Exception
IoSession, means to be called when a session
was found ready for writing.
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 buffer
Exception - any exception thrown by the underlying system calls
protected abstract int transferFile(T session,
FileRegion region,
int length)
throws 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 write(AbstractIoSession, IoBuffer, int) call.
session - the session to writeregion - the file region to writelength - the length of the portion to send
Exception - any exception thrown by the underlying system callspublic final void add(T session)
session to the I/O processor so that
the I/O processor starts to perform any I/O operations related
with the session.
add in interface IoProcessor<T extends AbstractIoSession>public final void remove(T session)
session from the I/O
processor so that the I/O processor closes the connection
associated with the session and releases any other related
resources.
remove in interface IoProcessor<T extends AbstractIoSession>public final void flush(T session)
session.
flush in interface IoProcessor<T extends AbstractIoSession>public final void updateTrafficMask(T session)
session as specified
in IoSession.getTrafficMask().
updateTrafficMask in interface IoProcessor<T extends AbstractIoSession>
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||