public abstract class AbstractChannel extends CloseableUtils.AbstractInnerCloseable implements Channel
Modifier and Type | Class and Description |
---|---|
class |
AbstractChannel.GracefulChannelCloseable |
protected static class |
AbstractChannel.GracefulState |
CloseableUtils.AbstractCloseable.State
Modifier and Type | Field and Description |
---|---|
static long |
DEFAULT_CHANNEL_CLOSE_TIMEOUT |
static int |
DEFAULT_PACKET_SIZE |
static int |
DEFAULT_WINDOW_SIZE |
protected boolean |
eof |
protected DefaultCloseFuture |
gracefulFuture |
protected AtomicReference<AbstractChannel.GracefulState> |
gracefulState |
protected List<RequestHandler<Channel>> |
handlers |
protected int |
id |
protected Window |
localWindow |
protected int |
recipient |
protected Window |
remoteWindow |
protected ConnectionService |
service |
protected Session |
session |
closeFuture, lock, log, state
Constructor and Description |
---|
AbstractChannel() |
Modifier and Type | Method and Description |
---|---|
void |
addRequestHandler(RequestHandler<Channel> handler) |
protected void |
configureWindow() |
protected void |
doCloseImmediately()
doCloseImmediately is called once and only once
with state == Immediate
Overriding methods should always call the base implementation.
|
protected abstract void |
doWriteData(byte[] data,
int off,
int len) |
protected abstract void |
doWriteExtendedData(byte[] data,
int off,
int len) |
int |
getId() |
protected Closeable |
getInnerCloseable() |
Window |
getLocalWindow() |
int |
getRecipient() |
Window |
getRemoteWindow() |
Session |
getSession() |
void |
handleClose() |
void |
handleData(Buffer buffer) |
void |
handleEof() |
void |
handleExtendedData(Buffer buffer) |
void |
handleFailure() |
void |
handleRequest(Buffer buffer) |
void |
handleWindowAdjust(Buffer buffer) |
void |
init(ConnectionService service,
Session session,
int id) |
protected void |
notifyStateChanged() |
protected void |
sendEof() |
protected void |
sendWindowAdjust(int len) |
String |
toString() |
protected void |
writePacket(Buffer buffer) |
doCloseGracefully
builder, close, isClosed, isClosing, preClose
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
close, handleOpenFailure, handleOpenSuccess, open
public static final int DEFAULT_WINDOW_SIZE
public static final int DEFAULT_PACKET_SIZE
public static final long DEFAULT_CHANNEL_CLOSE_TIMEOUT
protected final Window localWindow
protected final Window remoteWindow
protected ConnectionService service
protected Session session
protected int id
protected int recipient
protected volatile boolean eof
protected AtomicReference<AbstractChannel.GracefulState> gracefulState
protected final DefaultCloseFuture gracefulFuture
protected final List<RequestHandler<Channel>> handlers
public void addRequestHandler(RequestHandler<Channel> handler)
public int getRecipient()
getRecipient
in interface Channel
public Window getLocalWindow()
getLocalWindow
in interface Channel
public Window getRemoteWindow()
getRemoteWindow
in interface Channel
public Session getSession()
getSession
in interface Channel
public void handleRequest(Buffer buffer) throws IOException
handleRequest
in interface Channel
IOException
public void init(ConnectionService service, Session session, int id)
protected void notifyStateChanged()
public void handleClose() throws IOException
handleClose
in interface Channel
IOException
protected Closeable getInnerCloseable()
getInnerCloseable
in class CloseableUtils.AbstractInnerCloseable
protected void doCloseImmediately()
CloseableUtils.AbstractCloseable
doCloseImmediately
in class CloseableUtils.AbstractInnerCloseable
protected void writePacket(Buffer buffer) throws IOException
IOException
public void handleData(Buffer buffer) throws IOException
handleData
in interface Channel
IOException
public void handleExtendedData(Buffer buffer) throws IOException
handleExtendedData
in interface Channel
IOException
public void handleEof() throws IOException
handleEof
in interface Channel
IOException
public void handleWindowAdjust(Buffer buffer) throws IOException
handleWindowAdjust
in interface Channel
IOException
public void handleFailure() throws IOException
handleFailure
in interface Channel
IOException
protected abstract void doWriteData(byte[] data, int off, int len) throws IOException
IOException
protected abstract void doWriteExtendedData(byte[] data, int off, int len) throws IOException
IOException
protected void sendEof() throws IOException
IOException
protected void configureWindow()
protected void sendWindowAdjust(int len) throws IOException
IOException
Copyright © 2008–2016 The Apache Software Foundation. All rights reserved.