Package io.undertow.server
Class AbstractServerConnection
java.lang.Object
io.undertow.util.AbstractAttachable
io.undertow.server.ServerConnection
io.undertow.server.AbstractServerConnection
- All Implemented Interfaces:
Attachable,Closeable,AutoCloseable,Channel,InterruptibleChannel,org.xnio.channels.BoundChannel,org.xnio.channels.CloseableChannel,org.xnio.channels.Configurable,org.xnio.channels.ConnectedChannel
- Direct Known Subclasses:
AjpServerConnection,HttpServerConnection
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class io.undertow.server.ServerConnection
ServerConnection.CloseListener -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final ByteBufferPoolprotected final org.xnio.StreamConnectionprotected final List<ServerConnection.CloseListener>protected final io.undertow.server.AbstractServerConnection.CloseSetterprotected HttpServerExchangeprotected PooledByteBufferAny extra bytes that were read from the channel.protected final org.xnio.conduits.StreamSinkConduitprotected final org.xnio.conduits.StreamSourceConduitprotected final HttpHandlerprotected final org.xnio.OptionMapFields inherited from interface org.xnio.channels.Configurable
EMPTY -
Constructor Summary
ConstructorsConstructorDescriptionAbstractServerConnection(org.xnio.StreamConnection channel, ByteBufferPool bufferPool, HttpHandler rootHandler, org.xnio.OptionMap undertowOptions, int bufferSize) -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds a close listener, than will be invoked with the connection is closedvoidResets the channel to its original state, effectively disabling all current conduit wrappers.voidclose()org.xnio.Pool<ByteBuffer>intGet the buffer pool for this connection.org.xnio.StreamConnectionGet the underlying channel.org.xnio.ChannelListener.Setter<ServerConnection>org.xnio.XnioIoThread<A extends SocketAddress>
AgetLocalAddress(Class<A> type) <T> TgetOption(org.xnio.Option<T> option) org.xnio.conduits.StreamSinkConduitorg.xnio.conduits.StreamSourceConduitReturns the actual address of the remote connection.<A extends SocketAddress>
AgetPeerAddress(Class<A> type) Returns the actual address of the remote connection.Get the root HTTP handler for this connection.protected org.xnio.conduits.ConduitStreamSinkChannelprotected org.xnio.conduits.ConduitStreamSourceChannelorg.xnio.OptionMaporg.xnio.XnioWorkerbooleanisOpen()protected voidmaxEntitySizeUpdated(HttpServerExchange exchange) Callback that is invoked if the max entity size is updated.Resets the channel to its original state, effectively disabling all current conduit wrappers.voidRestores the channel conduits to a previous state.voidsetExtraBytes(PooledByteBuffer extraBytes) <T> TsetOption(org.xnio.Option<T> option, T value) protected voidsetUpgradeListener(HttpUpgradeListener upgradeListener) protected static org.xnio.conduits.StreamSinkConduitprotected static org.xnio.conduits.StreamSourceConduitbooleansupportsOption(org.xnio.Option<?> option) Methods inherited from class io.undertow.server.ServerConnection
exchangeComplete, getSinkConduit, getSslSession, getSslSessionInfo, getTransportProtocol, isConnectSupported, isContinueResponseSupported, isPushSupported, isRequestTrailerFieldsSupported, isUpgradeSupported, pushResource, pushResource, sendOutOfBandResponse, setConnectListener, setSslSessionInfo, terminateRequestChannel, upgradeChannelMethods inherited from class io.undertow.util.AbstractAttachable
addToAttachmentList, createAttachmentMap, getAttachment, getAttachmentList, putAttachment, removeAttachment
-
Field Details
-
channel
protected final org.xnio.StreamConnection channel -
closeSetter
protected final io.undertow.server.AbstractServerConnection.CloseSetter closeSetter -
bufferPool
-
rootHandler
-
undertowOptions
protected final org.xnio.OptionMap undertowOptions -
originalSourceConduit
protected final org.xnio.conduits.StreamSourceConduit originalSourceConduit -
originalSinkConduit
protected final org.xnio.conduits.StreamSinkConduit originalSinkConduit -
closeListeners
-
current
-
extraBytes
Any extra bytes that were read from the channel. This could be data for this requests, or the next response.
-
-
Constructor Details
-
AbstractServerConnection
public AbstractServerConnection(org.xnio.StreamConnection channel, ByteBufferPool bufferPool, HttpHandler rootHandler, org.xnio.OptionMap undertowOptions, int bufferSize)
-
-
Method Details
-
getBufferPool
- Specified by:
getBufferPoolin classServerConnection- Returns:
- The connections buffer pool
-
getRootHandler
Get the root HTTP handler for this connection.- Returns:
- the root HTTP handler for this connection
-
getByteBufferPool
Get the buffer pool for this connection.- Specified by:
getByteBufferPoolin classServerConnection- Returns:
- the buffer pool for this connection
-
getChannel
public org.xnio.StreamConnection getChannel()Get the underlying channel.- Returns:
- the underlying channel
-
getCloseSetter
-
getWorker
public org.xnio.XnioWorker getWorker()- Specified by:
getWorkerin interfaceorg.xnio.channels.CloseableChannel- Specified by:
getWorkerin classServerConnection- Returns:
- The connections worker
-
getIoThread
public org.xnio.XnioIoThread getIoThread()- Specified by:
getIoThreadin interfaceorg.xnio.channels.CloseableChannel- Specified by:
getIoThreadin classServerConnection- Returns:
- The IO thread associated with the connection
-
isOpen
public boolean isOpen()- Specified by:
isOpenin interfaceChannel- Specified by:
isOpenin classServerConnection- Returns:
- true if the connection is open
-
supportsOption
public boolean supportsOption(org.xnio.Option<?> option) - Specified by:
supportsOptionin interfaceorg.xnio.channels.Configurable- Specified by:
supportsOptionin classServerConnection
-
getOption
- Specified by:
getOptionin interfaceorg.xnio.channels.Configurable- Specified by:
getOptionin classServerConnection- Throws:
IOException
-
setOption
public <T> T setOption(org.xnio.Option<T> option, T value) throws IllegalArgumentException, IOException - Specified by:
setOptionin interfaceorg.xnio.channels.Configurable- Specified by:
setOptionin classServerConnection- Throws:
IllegalArgumentExceptionIOException
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceChannel- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceorg.xnio.channels.CloseableChannel- Specified by:
closein interfaceInterruptibleChannel- Specified by:
closein classServerConnection- Throws:
IOException
-
getPeerAddress
Description copied from class:ServerConnectionReturns the actual address of the remote connection. This will not take things like X-Forwarded-for into account.- Specified by:
getPeerAddressin interfaceorg.xnio.channels.ConnectedChannel- Specified by:
getPeerAddressin classServerConnection- Returns:
- The address of the remote peer
-
getPeerAddress
Description copied from class:ServerConnectionReturns the actual address of the remote connection. This will not take things like X-Forwarded-for into account.- Specified by:
getPeerAddressin interfaceorg.xnio.channels.ConnectedChannel- Specified by:
getPeerAddressin classServerConnection- Type Parameters:
A- The address type- Parameters:
type- The type of address to return- Returns:
- The remote endpoint address
-
getLocalAddress
- Specified by:
getLocalAddressin interfaceorg.xnio.channels.BoundChannel- Specified by:
getLocalAddressin classServerConnection
-
getLocalAddress
- Specified by:
getLocalAddressin interfaceorg.xnio.channels.BoundChannel- Specified by:
getLocalAddressin classServerConnection
-
getUndertowOptions
public org.xnio.OptionMap getUndertowOptions()- Specified by:
getUndertowOptionsin classServerConnection
-
getBufferSize
public int getBufferSize()- Specified by:
getBufferSizein classServerConnection- Returns:
- The size of the buffers allocated by the buffer pool
-
getExtraBytes
-
setExtraBytes
-
getOriginalSourceConduit
public org.xnio.conduits.StreamSourceConduit getOriginalSourceConduit()- Returns:
- The original source conduit
-
getOriginalSinkConduit
public org.xnio.conduits.StreamSinkConduit getOriginalSinkConduit()- Returns:
- The original underlying sink conduit
-
resetChannel
Resets the channel to its original state, effectively disabling all current conduit wrappers. The current state is encapsulated inside aAbstractServerConnection.ConduitStateobject that can be used the restore the channel.- Returns:
- An opaque representation of the previous channel state
-
clearChannel
public void clearChannel()Resets the channel to its original state, effectively disabling all current conduit wrappers. The current state is lost. -
restoreChannel
Restores the channel conduits to a previous state.- Parameters:
state- The original state- See Also:
-
sink
protected static org.xnio.conduits.StreamSinkConduit sink(AbstractServerConnection.ConduitState state) -
source
protected static org.xnio.conduits.StreamSourceConduit source(AbstractServerConnection.ConduitState state) -
addCloseListener
Description copied from class:ServerConnectionAdds a close listener, than will be invoked with the connection is closed- Specified by:
addCloseListenerin classServerConnection- Parameters:
listener- The close listener
-
getSinkChannel
protected org.xnio.conduits.ConduitStreamSinkChannel getSinkChannel()- Specified by:
getSinkChannelin classServerConnection
-
getSourceChannel
protected org.xnio.conduits.ConduitStreamSourceChannel getSourceChannel()- Specified by:
getSourceChannelin classServerConnection
-
setUpgradeListener
- Specified by:
setUpgradeListenerin classServerConnection
-
maxEntitySizeUpdated
Description copied from class:ServerConnectionCallback that is invoked if the max entity size is updated.- Specified by:
maxEntitySizeUpdatedin classServerConnection- Parameters:
exchange- The current exchange
-