Package 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
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.google.code.yanf4j.core.Session
Session.SessionStatus
-
-
Field Summary
Fields Modifier and Type Field Description private java.net.InetSocketAddressremoteAddress-
Fields inherited from class com.google.code.yanf4j.nio.impl.AbstractNioSession
selectableChannel, selectorManager
-
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
-
-
Constructor Summary
Constructors Constructor Description NioTCPSession(NioSessionConfig sessionConfig, int readRecvBufferSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected intblockingRead()Blocking read using temp selectorprotected java.lang.ObjectblockingWrite(java.nio.channels.SelectableChannel channel, WriteMessage message, IoBuffer writeBuffer)Blocking write using temp selectorprotected voidcloseChannel()voiddecode()Decode bufferprivate voiddecodeAndDispatch()java.net.InetSocketAddressgetRemoteSocketAddress()Return the remote end's InetSocketAddressbooleanisExpired()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 voidreadFromBuffer()java.net.Socketsocket()protected WriteMessagewrapMessage(java.lang.Object msg, java.util.concurrent.Future<java.lang.Boolean> writeFuture)protected java.lang.ObjectwriteToChannel(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
-
-
-
-
Constructor Detail
-
NioTCPSession
public NioTCPSession(NioSessionConfig sessionConfig, int readRecvBufferSize)
-
-
Method Detail
-
isExpired
public final boolean isExpired()
Description copied from interface:SessionReturn 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:
isExpiredin interfaceSession- Overrides:
isExpiredin classAbstractSession- Returns:
-
writeToChannel
protected java.lang.Object writeToChannel(WriteMessage message) throws java.io.IOException
- Specified by:
writeToChannelin classAbstractNioSession- Throws:
java.io.IOException
-
getRemoteSocketAddress
public java.net.InetSocketAddress getRemoteSocketAddress()
Description copied from interface:SessionReturn 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.ClosedChannelExceptionBlocking write using temp selector- Parameters:
channel-message-writeBuffer-- Returns:
- Throws:
java.io.IOExceptionjava.nio.channels.ClosedChannelException
-
wrapMessage
protected WriteMessage wrapMessage(java.lang.Object msg, java.util.concurrent.Future<java.lang.Boolean> writeFuture)
- Specified by:
wrapMessagein classAbstractSession
-
readFromBuffer
protected void readFromBuffer()
- Specified by:
readFromBufferin classAbstractNioSession
-
decodeAndDispatch
private void decodeAndDispatch()
-
blockingRead
protected final int blockingRead() throws java.nio.channels.ClosedChannelException, java.io.IOExceptionBlocking read using temp selector- Returns:
- Throws:
java.nio.channels.ClosedChannelExceptionjava.io.IOException
-
decode
public void decode()
Decode buffer- Specified by:
decodein classAbstractSession
-
socket
public java.net.Socket socket()
-
closeChannel
protected final void closeChannel() throws java.io.IOException- Overrides:
closeChannelin classAbstractNioSession- Throws:
java.io.IOException
-
-