|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.mina.core.session.AbstractIoSession
public abstract class AbstractIoSession
Base implementation of IoSession.
| Constructor Summary | |
|---|---|
protected |
AbstractIoSession()
TODO Add method documentation |
| Method Summary | |
|---|---|
CloseFuture |
close()
Closes this session immediately. |
CloseFuture |
close(boolean rightNow)
Closes this session immediately or after all queued write requests are flushed. |
CloseFuture |
closeOnFlush()
Closes this session after all queued write requests are flushed. |
boolean |
containsAttribute(Object key)
Returns true if this session contains the attribute with the specified key. |
void |
decreaseReadBufferSize()
TODO Add method documentation |
void |
decreaseScheduledBytesAndMessages(WriteRequest request)
TODO Add method documentation |
boolean |
equals(Object o)
TODO This is a ridiculous implementation. |
Object |
getAttachment()
Returns an attachment of this session. |
Object |
getAttribute(Object key)
Returns the value of the user-defined attribute of this session. |
Object |
getAttribute(Object key,
Object defaultValue)
Returns the value of user defined attribute associated with the specified key. |
Set<Object> |
getAttributeKeys()
Returns the set of keys of all user-defined attributes. |
IoSessionAttributeMap |
getAttributeMap()
TODO Add method documentation |
int |
getBothIdleCount()
Returns the number of the fired continuous sessionIdle events for IdleStatus.BOTH_IDLE. |
CloseFuture |
getCloseFuture()
Returns the CloseFuture of this session. |
long |
getCreationTime()
|
Object |
getCurrentWriteMessage()
Returns the message which is being written by IoService. |
WriteRequest |
getCurrentWriteRequest()
Returns the WriteRequest which is being processed by
IoService. |
long |
getId()
TODO this method implementation is totally wrong. |
int |
getIdleCount(IdleStatus status)
Returns the number of the fired continuous sessionIdle events for the specified IdleStatus. |
long |
getLastBothIdleTime()
Returns the time in milliseconds when the last sessionIdle event is fired for IdleStatus.BOTH_IDLE. |
long |
getLastIdleTime(IdleStatus status)
Returns the time in milliseconds when the last sessionIdle event is fired for the specified IdleStatus. |
long |
getLastIoTime()
Returns the time in millis when I/O occurred lastly. |
long |
getLastReaderIdleTime()
Returns the time in milliseconds when the last sessionIdle event is fired for IdleStatus.READER_IDLE. |
long |
getLastReadTime()
Returns the time in millis when read operation occurred lastly. |
long |
getLastWriterIdleTime()
Returns the time in milliseconds when the last sessionIdle event is fired for IdleStatus.WRITER_IDLE. |
long |
getLastWriteTime()
Returns the time in millis when write operation occurred lastly. |
abstract IoProcessor |
getProcessor()
TODO Add method documentation |
long |
getReadBytes()
Returns the total number of bytes which were read from this session. |
double |
getReadBytesThroughput()
Returns the number of read bytes per second. |
int |
getReaderIdleCount()
Returns the number of the fired continuous sessionIdle events for IdleStatus.READER_IDLE. |
long |
getReadMessages()
Returns the total number of messages which were read and decoded from this session. |
double |
getReadMessagesThroughput()
Returns the number of read messages per second. |
long |
getScheduledWriteBytes()
Returns the number of bytes which are scheduled to be written to this session. |
int |
getScheduledWriteMessages()
Returns the number of messages which are scheduled to be written to this session. |
SocketAddress |
getServiceAddress()
Returns the socket address of the IoService listens to to manage
this session. |
TrafficMask |
getTrafficMask()
Returns the current TrafficMask of this session. |
WriteRequestQueue |
getWriteRequestQueue()
TODO Add method documentation |
int |
getWriterIdleCount()
Returns the number of the fired continuous sessionIdle events for IdleStatus.WRITER_IDLE. |
long |
getWrittenBytes()
Returns the total number of bytes which were written to this session. |
double |
getWrittenBytesThroughput()
Returns the number of written bytes per second. |
long |
getWrittenMessages()
Returns the total number of messages which were written and encoded by this session. |
double |
getWrittenMessagesThroughput()
Returns the number of written messages per second. |
int |
hashCode()
|
void |
increaseIdleCount(IdleStatus status,
long currentTime)
TODO Add method documentation |
void |
increaseReadBufferSize()
TODO Add method documentation |
void |
increaseReadBytes(long increment,
long currentTime)
TODO Add method documentation |
void |
increaseReadMessages(long currentTime)
TODO Add method documentation |
void |
increaseScheduledWriteBytes(int increment)
TODO Add method documentation |
void |
increaseScheduledWriteMessages()
TODO Add method documentation |
void |
increaseWrittenBytes(int increment,
long currentTime)
TODO Add method documentation |
void |
increaseWrittenMessages(WriteRequest request,
long currentTime)
TODO Add method documentation |
boolean |
isBothIdle()
Returns true if this session is IdleStatus.BOTH_IDLE. |
boolean |
isClosing()
Returns true if and only if this session is being closed
(but not disconnected yet) or is closed. |
boolean |
isConnected()
Returns true if this session is connected with remote peer. |
boolean |
isIdle(IdleStatus status)
Returns true if this session is idle for the specified
IdleStatus. |
boolean |
isReaderIdle()
Returns true if this session is IdleStatus.READER_IDLE. |
boolean |
isScheduledForFlush()
TODO Add method documentation |
boolean |
isWriterIdle()
Returns true if this session is IdleStatus.WRITER_IDLE. |
void |
offerClosedReadFuture()
TODO Add method documentation |
void |
offerFailedReadFuture(Throwable exception)
TODO Add method documentation |
void |
offerReadFuture(Object message)
TODO Add method documentation |
ReadFuture |
read()
TODO This javadoc is wrong. |
Object |
removeAttribute(Object key)
Removes a user-defined attribute with the specified key. |
boolean |
removeAttribute(Object key,
Object value)
Removes a user defined attribute with the specified key if the current attribute value is equal to the specified value. |
boolean |
replaceAttribute(Object key,
Object oldValue,
Object newValue)
Replaces a user defined attribute with the specified key if the value of the attribute is equals to the specified old value. |
void |
resumeRead()
A shortcut method for IoSession.setTrafficMask(TrafficMask) that
resumes read operations for this session. |
void |
resumeWrite()
A shortcut method for IoSession.setTrafficMask(TrafficMask) that
resumes write operations for this session. |
Object |
setAttachment(Object attachment)
Sets an attachment of this session. |
Object |
setAttribute(Object key)
Sets a user defined attribute without a value. |
Object |
setAttribute(Object key,
Object value)
Sets a user-defined attribute. |
Object |
setAttributeIfAbsent(Object key)
Sets a user defined attribute without a value if the attribute with the specified key is not set yet. |
Object |
setAttributeIfAbsent(Object key,
Object value)
Sets a user defined attribute if the attribute with the specified key is not set yet. |
void |
setAttributeMap(IoSessionAttributeMap attributes)
TODO Add method documentation |
void |
setCurrentWriteRequest(WriteRequest currentWriteRequest)
TODO Add method documentation |
boolean |
setScheduledForFlush(boolean flag)
TODO Add method documentation |
protected void |
setScheduledWriteBytes(int byteCount)
TODO Add method documentation |
protected void |
setScheduledWriteMessages(int messages)
TODO Add method documentation |
void |
setTrafficMask(TrafficMask trafficMask)
Sets the TrafficMask of this session which will result
the parent IoService to start to control the traffic
of this session immediately. |
void |
setTrafficMaskNow(TrafficMask trafficMask)
TODO Add method documentation |
void |
setWriteRequestQueue(WriteRequestQueue writeRequestQueue)
TODO Add method documentation |
void |
suspendRead()
A shortcut method for IoSession.setTrafficMask(TrafficMask) that
suspends read operations for this session. |
void |
suspendWrite()
A shortcut method for IoSession.setTrafficMask(TrafficMask) that
suspends write operations for this session. |
String |
toString()
|
void |
updateThroughput(long currentTime,
boolean force)
Update all statistical properties related with throughput assuming the specified time is the current time. |
WriteFuture |
write(Object message)
Writes the specified message to remote peer. |
WriteFuture |
write(Object message,
SocketAddress remoteAddress)
(Optional) Writes the specified message to the specified destination. |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.apache.mina.core.session.IoSession |
|---|
getConfig, getFilterChain, getHandler, getLocalAddress, getRemoteAddress, getService, getTransportMetadata |
| Constructor Detail |
|---|
protected AbstractIoSession()
| Method Detail |
|---|
public final long getId()
getId in interface IoSessionpublic abstract IoProcessor getProcessor()
public final boolean isConnected()
true if this session is connected with remote peer.
isConnected in interface IoSessionpublic final boolean isClosing()
true if and only if this session is being closed
(but not disconnected yet) or is closed.
- Specified by:
isClosing in interface IoSession
public final CloseFuture getCloseFuture()
CloseFuture of this session. This method returns
the same instance whenever user calls it.
getCloseFuture in interface IoSessionpublic final boolean isScheduledForFlush()
public final boolean setScheduledForFlush(boolean flag)
public final CloseFuture close(boolean rightNow)
CloseFuture if you want to wait for the session actually closed.
close in interface IoSessionrightNow - true to close this session immediately
(i.e. IoSession.close()).
false to close this session after all queued
write requests are flushed (i.e. IoSession.closeOnFlush()).public final CloseFuture close()
CloseFuture if you want to wait for
the session actually closed.
close in interface IoSessionpublic final CloseFuture closeOnFlush()
CloseFuture
if you want to wait for the session actually closed.
closeOnFlush in interface IoSessionpublic final ReadFuture read()
read in interface IoSessionReadFuture which is notified when a new message is
received, the connection is closed or an exception is caught. This
operation is especially useful when you implement a client application.
TODO : Describe here how we enable this feature.
However, please note that this operation is disabled by default and
throw IllegalStateException because all received events must be
queued somewhere to support this operation, possibly leading to memory
leak. This means you have to keep calling IoSession.read() once you
enabled this operation. To enable this operation, please call
IoSessionConfig.setUseReadOperation(boolean) with true.public final void offerReadFuture(Object message)
public final void offerFailedReadFuture(Throwable exception)
public final void offerClosedReadFuture()
public final WriteFuture write(Object message)
message to remote peer. This
operation is asynchronous; IoHandler.messageSent(IoSession,Object)
will be invoked when the message is actually sent to remote peer.
You can also wait for the returned WriteFuture if you want
to wait for the message actually written.
write in interface IoSession
public final WriteFuture write(Object message,
SocketAddress remoteAddress)
IoHandler.messageSent(IoSession, Object)
will be invoked when the message is actually sent to remote peer. You can
also wait for the returned WriteFuture if you want to wait for
the message actually written.
When you implement a client that receives a broadcast message from a server
such as DHCP server, the client might need to send a response message for the
broadcast message the server sent. Because the remote address of the session
is not the address of the server in case of broadcasting, there should be a
way to specify the destination when you write the response message.
This interface provides IoSession.write(Object, SocketAddress) method so you
can specify the destination.
write in interface IoSessionremoteAddress - null if you want the message sent to the
default remote addresspublic final Object getAttachment()
getAttachment in interface IoSessionpublic final Object setAttachment(Object attachment)
setAttachment in interface IoSessionpublic final Object getAttribute(Object key)
getAttribute in interface IoSessionkey - the key of the attribute
public final Object getAttribute(Object key,
Object defaultValue)
if (containsAttribute(key)) {
return getAttribute(key);
} else {
setAttribute(key, defaultValue);
return defaultValue;
}
getAttribute in interface IoSession
public final Object setAttribute(Object key,
Object value)
setAttribute in interface IoSessionkey - the key of the attributevalue - the value of the attribute
public final Object setAttribute(Object key)
Boolean.TRUE.
setAttribute in interface IoSessionkey - the key of the attribute
public final Object setAttributeIfAbsent(Object key,
Object value)
if (containsAttribute(key)) {
return getAttribute(key);
} else {
return setAttribute(key, value);
}
setAttributeIfAbsent in interface IoSessionpublic final Object setAttributeIfAbsent(Object key)
Boolean.TRUE.
This method is same with the following code except that the operation
is performed atomically.
if (containsAttribute(key)) {
return getAttribute(key); // might not always be Boolean.TRUE.
} else {
return setAttribute(key);
}
setAttributeIfAbsent in interface IoSessionpublic final Object removeAttribute(Object key)
removeAttribute in interface IoSession
public final boolean removeAttribute(Object key,
Object value)
if (containsAttribute(key) && getAttribute(key).equals(value)) {
removeAttribute(key);
return true;
} else {
return false;
}
removeAttribute in interface IoSession
public final boolean replaceAttribute(Object key,
Object oldValue,
Object newValue)
if (containsAttribute(key) && getAttribute(key).equals(oldValue)) {
setAttribute(key, newValue);
return true;
} else {
return false;
}
replaceAttribute in interface IoSessionpublic final boolean containsAttribute(Object key)
containsAttribute in interface IoSessionpublic final Set<Object> getAttributeKeys()
getAttributeKeys in interface IoSessionpublic final IoSessionAttributeMap getAttributeMap()
public final void setAttributeMap(IoSessionAttributeMap attributes)
public final void setWriteRequestQueue(WriteRequestQueue writeRequestQueue)
public final TrafficMask getTrafficMask()
TrafficMask of this session.
getTrafficMask in interface IoSessionpublic final void setTrafficMask(TrafficMask trafficMask)
TrafficMask of this session which will result
the parent IoService to start to control the traffic
of this session immediately.
setTrafficMask in interface IoSessionpublic final void setTrafficMaskNow(TrafficMask trafficMask)
public final void suspendRead()
IoSession.setTrafficMask(TrafficMask) that
suspends read operations for this session.
suspendRead in interface IoSessionpublic final void suspendWrite()
IoSession.setTrafficMask(TrafficMask) that
suspends write operations for this session.
suspendWrite in interface IoSessionpublic final void resumeRead()
IoSession.setTrafficMask(TrafficMask) that
resumes read operations for this session.
resumeRead in interface IoSessionpublic final void resumeWrite()
IoSession.setTrafficMask(TrafficMask) that
resumes write operations for this session.
resumeWrite in interface IoSessionpublic final long getReadBytes()
getReadBytes in interface IoSessionpublic final long getWrittenBytes()
getWrittenBytes in interface IoSessionpublic final long getReadMessages()
getReadMessages in interface IoSessionpublic final long getWrittenMessages()
getWrittenMessages in interface IoSessionpublic final double getReadBytesThroughput()
getReadBytesThroughput in interface IoSessionpublic final double getWrittenBytesThroughput()
getWrittenBytesThroughput in interface IoSessionpublic final double getReadMessagesThroughput()
getReadMessagesThroughput in interface IoSessionpublic final double getWrittenMessagesThroughput()
getWrittenMessagesThroughput in interface IoSession
public final void updateThroughput(long currentTime,
boolean force)
calculation interval.
If, however, force is specified as true, this method
updates the throughput properties immediately.
currentTime - the current time in millisecondspublic final long getScheduledWriteBytes()
getScheduledWriteBytes in interface IoSessionpublic final int getScheduledWriteMessages()
getScheduledWriteMessages in interface IoSessionprotected void setScheduledWriteBytes(int byteCount)
protected void setScheduledWriteMessages(int messages)
public final void increaseReadBytes(long increment,
long currentTime)
public final void increaseReadMessages(long currentTime)
public final void increaseWrittenBytes(int increment,
long currentTime)
public final void increaseWrittenMessages(WriteRequest request,
long currentTime)
public final void increaseScheduledWriteBytes(int increment)
public final void increaseScheduledWriteMessages()
public final void decreaseScheduledBytesAndMessages(WriteRequest request)
public final WriteRequestQueue getWriteRequestQueue()
public final WriteRequest getCurrentWriteRequest()
WriteRequest which is being processed by
IoService.
getCurrentWriteRequest in interface IoSessionpublic final Object getCurrentWriteMessage()
IoService.
getCurrentWriteMessage in interface IoSessionpublic final void setCurrentWriteRequest(WriteRequest currentWriteRequest)
public final void increaseReadBufferSize()
public final void decreaseReadBufferSize()
public final long getCreationTime()
getCreationTime in interface IoSessionpublic final long getLastIoTime()
getLastIoTime in interface IoSessionpublic final long getLastReadTime()
getLastReadTime in interface IoSessionpublic final long getLastWriteTime()
getLastWriteTime in interface IoSessionpublic final boolean isIdle(IdleStatus status)
true if this session is idle for the specified
IdleStatus.
isIdle in interface IoSessionpublic final boolean isBothIdle()
true if this session is IdleStatus.BOTH_IDLE.
isBothIdle in interface IoSessionIoSession.isIdle(IdleStatus)public final boolean isReaderIdle()
true if this session is IdleStatus.READER_IDLE.
isReaderIdle in interface IoSessionIoSession.isIdle(IdleStatus)public final boolean isWriterIdle()
true if this session is IdleStatus.WRITER_IDLE.
isWriterIdle in interface IoSessionIoSession.isIdle(IdleStatus)public final int getIdleCount(IdleStatus status)
IdleStatus.
If sessionIdle event is fired first after some time after I/O,
idleCount becomes 1. idleCount resets to
0 if any I/O occurs again, otherwise it increases to
2 and so on if sessionIdle event is fired again without
any I/O between two (or more) sessionIdle events.
getIdleCount in interface IoSessionpublic final long getLastIdleTime(IdleStatus status)
IdleStatus.
getLastIdleTime in interface IoSession
public final void increaseIdleCount(IdleStatus status,
long currentTime)
public final int getBothIdleCount()
IdleStatus.BOTH_IDLE.
getBothIdleCount in interface IoSessionIoSession.getIdleCount(IdleStatus)public final long getLastBothIdleTime()
IdleStatus.BOTH_IDLE.
getLastBothIdleTime in interface IoSessionIoSession.getLastIdleTime(IdleStatus)public final long getLastReaderIdleTime()
IdleStatus.READER_IDLE.
getLastReaderIdleTime in interface IoSessionIoSession.getLastIdleTime(IdleStatus)public final long getLastWriterIdleTime()
IdleStatus.WRITER_IDLE.
getLastWriterIdleTime in interface IoSessionIoSession.getLastIdleTime(IdleStatus)public final int getReaderIdleCount()
IdleStatus.READER_IDLE.
getReaderIdleCount in interface IoSessionIoSession.getIdleCount(IdleStatus)public final int getWriterIdleCount()
IdleStatus.WRITER_IDLE.
getWriterIdleCount in interface IoSessionIoSession.getIdleCount(IdleStatus)public SocketAddress getServiceAddress()
IoService listens to to manage
this session. If this session is managed by IoAcceptor, it
returns the SocketAddress which is specified as a parameter of
IoAcceptor.bind(). If this session is managed by
IoConnector, this method returns the same address with
that of IoSession.getRemoteAddress().
getServiceAddress in interface IoSessionpublic final int hashCode()
hashCode in class Objectpublic final boolean equals(Object o)
equals in class Objectpublic String toString()
toString in class Object
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||