com.google.code.yanf4j.nio.impl
Class NioTCPSession
java.lang.Object
com.google.code.yanf4j.core.impl.AbstractSession
com.google.code.yanf4j.nio.impl.AbstractNioSession
com.google.code.yanf4j.nio.impl.NioTCPSession
- All Implemented Interfaces:
- Session, NioSession
- Direct Known Subclasses:
- MemcachedTCPSession
public class NioTCPSession
- extends AbstractNioSession
Nio tcp connection
- Author:
- dennis
| Fields inherited from class com.google.code.yanf4j.core.impl.AbstractSession |
attributes, closed, currentMessage, decoder, dispatchMessageDispatcher, encoder, handler, handleReadWriteConcurrently, lastOperationTimeStamp, log, loopback, readBuffer, scheduleWritenBytes, sessionIdleTimeout, sessionTimeout, statistics, useBlockingRead, useBlockingWrite, writeLock, writeQueue |
|
Method Summary |
protected int |
blockingRead()
Blocking read using temp selector |
protected java.lang.Object |
blockingWrite(java.nio.channels.SelectableChannel channel,
WriteMessage message,
IoBuffer writeBuffer)
Blocking write using temp selector |
protected void |
closeChannel()
|
void |
decode()
Decode buffer |
java.net.InetSocketAddress |
getRemoteSocketAddress()
Return the remote end's InetSocketAddress |
boolean |
isExpired()
Return true if session is expired,session is expired beacause you set the
sessionTimeout,if since session's last operation form now is over this
vlaue,isExpired return true,and Handler.onExpired() will be invoked. |
protected void |
readFromBuffer()
|
java.net.Socket |
socket()
|
protected WriteMessage |
wrapMessage(java.lang.Object msg,
java.util.concurrent.Future<java.lang.Boolean> writeFuture)
|
protected java.lang.Object |
writeToChannel(WriteMessage message)
|
| Methods inherited from class com.google.code.yanf4j.nio.impl.AbstractNioSession |
channel, doRealWrite, enableRead, enableWrite, flush, flush0, getLocalAddress, onEvent, onRead, onWrite, registerSession, schduleWriteMessage, start0, unregisterChannel, unregisterSession, writeFromUserCode |
| Methods inherited from class com.google.code.yanf4j.core.impl.AbstractSession |
clearAttributes, clearWriteQueue, close, dispatchReceivedMessage, getAttribute, getDecoder, getDispatchMessageDispatcher, getEncoder, getHandler, getLastOperationTimeStamp, getReadBuffer, getReadBufferByteOrder, getScheduleWritenBytes, getSessionIdleTimeout, getSessionTimeout, getStatistics, getWriteLock, getWriteQueue, isClosed, isHandleReadWriteConcurrently, isIdle, isLoopbackConnection, isUseBlockingRead, isUseBlockingWrite, onClosed, onConnected, onCreated, onException, onExpired, onIdle, onStarted, preprocessWriteMessage, removeAttribute, setAttribute, setAttributeIfAbsent, setClosed, setDecoder, setEncoder, setHandleReadWriteConcurrently, setReadBuffer, setReadBufferByteOrder, setSessionIdleTimeout, setSessionTimeout, setUseBlockingRead, setUseBlockingWrite, start, transferFrom, transferTo, updateTimeStamp, write |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface com.google.code.yanf4j.core.Session |
clearAttributes, close, getAttribute, getDecoder, getEncoder, getHandler, getLastOperationTimeStamp, getReadBufferByteOrder, getScheduleWritenBytes, getSessionIdleTimeout, getSessionTimeout, isClosed, isHandleReadWriteConcurrently, isIdle, isLoopbackConnection, isUseBlockingRead, isUseBlockingWrite, removeAttribute, setAttribute, setAttributeIfAbsent, setDecoder, setEncoder, setHandleReadWriteConcurrently, setReadBufferByteOrder, setSessionIdleTimeout, setSessionTimeout, setUseBlockingRead, setUseBlockingWrite, start, write |
NioTCPSession
public NioTCPSession(NioSessionConfig sessionConfig,
int readRecvBufferSize)
isExpired
public final boolean isExpired()
- Description copied from interface:
Session
- Return true if session is expired,session is expired beacause you set the
sessionTimeout,if since session's last operation form now is over this
vlaue,isExpired return true,and Handler.onExpired() will be invoked.
- Specified by:
isExpired in interface Session- Overrides:
isExpired in class AbstractSession
- Returns:
writeToChannel
protected java.lang.Object writeToChannel(WriteMessage message)
throws java.io.IOException
- Specified by:
writeToChannel in class AbstractNioSession
- Throws:
java.io.IOException
getRemoteSocketAddress
public java.net.InetSocketAddress getRemoteSocketAddress()
- Description copied from interface:
Session
- Return the remote end's InetSocketAddress
- Returns:
blockingWrite
protected final java.lang.Object blockingWrite(java.nio.channels.SelectableChannel channel,
WriteMessage message,
IoBuffer writeBuffer)
throws java.io.IOException,
java.nio.channels.ClosedChannelException
- Blocking write using temp selector
- Parameters:
channel - message - writeBuffer -
- Returns:
-
- Throws:
java.io.IOException
java.nio.channels.ClosedChannelException
wrapMessage
protected WriteMessage wrapMessage(java.lang.Object msg,
java.util.concurrent.Future<java.lang.Boolean> writeFuture)
- Specified by:
wrapMessage in class AbstractSession
readFromBuffer
protected void readFromBuffer()
- Specified by:
readFromBuffer in class AbstractNioSession
blockingRead
protected final int blockingRead()
throws java.nio.channels.ClosedChannelException,
java.io.IOException
- Blocking read using temp selector
- Returns:
-
- Throws:
java.nio.channels.ClosedChannelException
java.io.IOException
decode
public void decode()
- Decode buffer
- Specified by:
decode in class AbstractSession
socket
public java.net.Socket socket()
closeChannel
protected final void closeChannel()
throws java.io.IOException
- Overrides:
closeChannel in class AbstractNioSession
- Throws:
java.io.IOException
Copyright © 2011. All Rights Reserved.