public class SpdyChannel extends AbstractFramedChannel<SpdyChannel,SpdyStreamSourceChannel,SpdyStreamSinkChannel> implements Attachable
Modifier and Type | Field and Description |
---|---|
static int |
CLOSE_INTERNAL_ERROR |
static int |
CLOSE_OK |
static int |
CLOSE_PROTOCOL_ERROR |
static int |
RST_STATUS_CANCEL |
static int |
RST_STATUS_FLOW_CONTROL_ERROR |
static int |
RST_STATUS_FRAME_TOO_LARGE |
static int |
RST_STATUS_INTERNAL_ERROR |
static int |
RST_STATUS_INVALID_STREAM |
static int |
RST_STATUS_PROTOCOL_ERROR |
static int |
RST_STATUS_REFUSED_STREAM |
static int |
RST_STATUS_STREAM_ALREADY_CLOSED |
static int |
RST_STATUS_STREAM_IN_USE |
static int |
RST_STATUS_UNSUPPORTED_VERSION |
Constructor and Description |
---|
SpdyChannel(org.xnio.StreamConnection connectedStreamChannel,
org.xnio.Pool<ByteBuffer> bufferPool,
org.xnio.Pooled<ByteBuffer> data,
org.xnio.Pool<ByteBuffer> heapBufferPool,
boolean clientSide) |
Modifier and Type | Method and Description |
---|---|
<T> void |
addToAttachmentList(AttachmentKey<AttachmentList<T>> key,
T value)
Add a value to a list-typed attachment key.
|
protected void |
closeSubChannels()
Method that is called when the channel is being forcibly closed, and all sub stream sink/source
channels should also be forcibly closed.
|
protected SpdyStreamSourceChannel |
createChannel(FrameHeaderData frameHeaderData,
org.xnio.Pooled<ByteBuffer> frameData)
Method that creates the actual stream source channel implementation that is in use.
|
SpdySynStreamStreamSinkChannel |
createStream(HeaderMap requestHeaders) |
<T> T |
getAttachment(AttachmentKey<T> key)
Get an attachment value.
|
<T> List<T> |
getAttachmentList(AttachmentKey<? extends List<T>> key)
Gets a list attachment value.
|
int |
getSpdyVersion() |
SSLSession |
getSslSession() |
protected void |
handleBrokenSinkChannel(Throwable e)
Method that is invoked when then write side of a channel is broken.
|
protected void |
handleBrokenSourceChannel(Throwable e)
Method that is invoked when the read side of the channel is broken.
|
void |
handleWindowUpdate(int streamId,
int deltaWindowSize) |
boolean |
isClient() |
protected boolean |
isLastFrameReceived()
Returns true if the protocol specific final frame has been received.
|
protected boolean |
isLastFrameSent() |
boolean |
isOpen() |
protected void |
lastDataRead()
Method than is invoked when read() returns -1.
|
protected FrameHeaderData |
parseFrame(ByteBuffer data)
Attempts to parse an incoming frame header from the data in the buffer.
|
<T> T |
putAttachment(AttachmentKey<T> key,
T value)
Set an attachment value.
|
<T> T |
removeAttachment(AttachmentKey<T> key)
Remove an attachment, returning its previous value.
|
void |
sendGoAway(int status) |
void |
sendGoAway(int status,
org.xnio.ChannelExceptionHandler<SpdyStreamSinkChannel> exceptionHandler) |
void |
sendPing(int id) |
void |
sendPing(int id,
org.xnio.ChannelExceptionHandler<SpdyStreamSinkChannel> exceptionHandler) |
void |
sendRstStream(int streamId,
int statusCode) |
void |
sendUpdateWindowSize(int streamId,
int delta) |
void |
updateReceiveFlowControlWindow(int read) |
addCloseTask, close, createIdleTimeoutChannel, flushSenders, getBufferPool, getCloseSetter, getDestinationAddress, getFramePriority, getIdleTimeout, getIoThread, getLocalAddress, getLocalAddress, getOption, getPeerAddress, getPeerAddress, getReceiveSetter, getSourceAddress, getUnderlyingConnection, getWorker, isReadsBroken, isReceivesResumed, isWritesBroken, markReadsBroken, markWritesBroken, queueFrame, recalculateHeldFrames, receive, resumeReceives, setIdleTimeout, setOption, supportsOption, suspendReceives, toString, writeExceptionHandler
public static final int CLOSE_OK
public static final int CLOSE_PROTOCOL_ERROR
public static final int CLOSE_INTERNAL_ERROR
public static final int RST_STATUS_PROTOCOL_ERROR
public static final int RST_STATUS_INVALID_STREAM
public static final int RST_STATUS_REFUSED_STREAM
public static final int RST_STATUS_UNSUPPORTED_VERSION
public static final int RST_STATUS_CANCEL
public static final int RST_STATUS_INTERNAL_ERROR
public static final int RST_STATUS_FLOW_CONTROL_ERROR
public static final int RST_STATUS_STREAM_IN_USE
public static final int RST_STATUS_STREAM_ALREADY_CLOSED
public static final int RST_STATUS_FRAME_TOO_LARGE
public SpdyChannel(org.xnio.StreamConnection connectedStreamChannel, org.xnio.Pool<ByteBuffer> bufferPool, org.xnio.Pooled<ByteBuffer> data, org.xnio.Pool<ByteBuffer> heapBufferPool, boolean clientSide)
protected SpdyStreamSourceChannel createChannel(FrameHeaderData frameHeaderData, org.xnio.Pooled<ByteBuffer> frameData) throws IOException
AbstractFramedChannel
createChannel
in class AbstractFramedChannel<SpdyChannel,SpdyStreamSourceChannel,SpdyStreamSinkChannel>
frameHeaderData
- The header data, as returned by AbstractFramedChannel.parseFrame(java.nio.ByteBuffer)
frameData
- Any additional data for the frame that has already been read. This may not be the complete frame contentsIOException
protected FrameHeaderData parseFrame(ByteBuffer data) throws IOException
AbstractFramedChannel
parseFrame
in class AbstractFramedChannel<SpdyChannel,SpdyStreamSourceChannel,SpdyStreamSinkChannel>
data
- The data that has been read from the channelnull
if the data was incompleteIOException
- If the data could not be parsed.protected void lastDataRead()
AbstractFramedChannel
lastDataRead
in class AbstractFramedChannel<SpdyChannel,SpdyStreamSourceChannel,SpdyStreamSinkChannel>
public boolean isOpen()
isOpen
in interface Channel
isOpen
in class AbstractFramedChannel<SpdyChannel,SpdyStreamSourceChannel,SpdyStreamSinkChannel>
protected boolean isLastFrameReceived()
AbstractFramedChannel
isLastFrameReceived
in class AbstractFramedChannel<SpdyChannel,SpdyStreamSourceChannel,SpdyStreamSinkChannel>
true
If the last frame has been receivedprotected boolean isLastFrameSent()
isLastFrameSent
in class AbstractFramedChannel<SpdyChannel,SpdyStreamSourceChannel,SpdyStreamSinkChannel>
true
If the last frame has been sentprotected void handleBrokenSourceChannel(Throwable e)
AbstractFramedChannel
handleBrokenSourceChannel
in class AbstractFramedChannel<SpdyChannel,SpdyStreamSourceChannel,SpdyStreamSinkChannel>
protected void handleBrokenSinkChannel(Throwable e)
AbstractFramedChannel
handleBrokenSinkChannel
in class AbstractFramedChannel<SpdyChannel,SpdyStreamSourceChannel,SpdyStreamSinkChannel>
protected void closeSubChannels()
AbstractFramedChannel
closeSubChannels
in class AbstractFramedChannel<SpdyChannel,SpdyStreamSourceChannel,SpdyStreamSinkChannel>
public int getSpdyVersion()
public void handleWindowUpdate(int streamId, int deltaWindowSize) throws IOException
IOException
public void sendPing(int id)
public void sendPing(int id, org.xnio.ChannelExceptionHandler<SpdyStreamSinkChannel> exceptionHandler)
public void sendGoAway(int status)
public void sendGoAway(int status, org.xnio.ChannelExceptionHandler<SpdyStreamSinkChannel> exceptionHandler)
public void sendUpdateWindowSize(int streamId, int delta)
public SSLSession getSslSession()
public void updateReceiveFlowControlWindow(int read)
public SpdySynStreamStreamSinkChannel createStream(HeaderMap requestHeaders) throws IOException
IOException
public boolean isClient()
public <T> T getAttachment(AttachmentKey<T> key)
Attachable
null
is returned.getAttachment
in interface Attachable
T
- the value typekey
- the attachment keynull
if there is nonepublic <T> List<T> getAttachmentList(AttachmentKey<? extends List<T>> key)
Attachable
getAttachmentList
in interface Attachable
T
- the value typekey
- the attachment keypublic <T> T putAttachment(AttachmentKey<T> key, T value)
Attachable
null
, the attachment key is removed.putAttachment
in interface Attachable
T
- the value typekey
- the attachment keyvalue
- the new valuenull
if there was nonepublic <T> T removeAttachment(AttachmentKey<T> key)
Attachable
removeAttachment
in interface Attachable
T
- the value typekey
- the attachment keynull
if there was nonepublic <T> void addToAttachmentList(AttachmentKey<AttachmentList<T>> key, T value)
Attachable
addToAttachmentList
in interface Attachable
T
- the list value typekey
- the attachment keyvalue
- the value to addpublic void sendRstStream(int streamId, int statusCode)
Copyright © 2016 JBoss by Red Hat. All rights reserved.