Package io.grpc.netty
Class AbstractNettyHandler
java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelInboundHandlerAdapter
io.netty.handler.codec.ByteToMessageDecoder
io.netty.handler.codec.http2.Http2ConnectionHandler
io.grpc.netty.GrpcHttp2ConnectionHandler
io.grpc.netty.AbstractNettyHandler
- All Implemented Interfaces:
io.netty.channel.ChannelHandler
,io.netty.channel.ChannelInboundHandler
,io.netty.channel.ChannelOutboundHandler
,io.netty.handler.codec.http2.Http2LifecycleManager
- Direct Known Subclasses:
NettyClientHandler
,NettyServerHandler
Base class for all Netty gRPC handlers. This class standardizes exception handling (always
shutdown the connection) as well as sending the initial connection window at startup.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final class
(package private) final class
Class for handling flow control pinging and flow control window updates as necessary.static interface
Controls whether PINGs like those for BDP are permitted to be sent at the current time.Nested classes/interfaces inherited from class io.netty.handler.codec.ByteToMessageDecoder
io.netty.handler.codec.ByteToMessageDecoder.Cumulator
Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
io.netty.channel.ChannelHandler.Sharable
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
private static final long
private io.netty.channel.ChannelHandlerContext
private final AbstractNettyHandler.FlowControlPinger
private static final long
private final int
private boolean
private final com.google.common.base.Ticker
Fields inherited from class io.grpc.netty.GrpcHttp2ConnectionHandler
ADAPTIVE_CUMULATOR, ADAPTIVE_CUMULATOR_COMPOSE_MIN_SIZE_DEFAULT, channelUnused
Fields inherited from class io.netty.handler.codec.ByteToMessageDecoder
COMPOSITE_CUMULATOR, MERGE_CUMULATOR
-
Constructor Summary
ConstructorsConstructorDescriptionAbstractNettyHandler
(io.netty.channel.ChannelPromise channelUnused, io.netty.handler.codec.http2.Http2ConnectionDecoder decoder, io.netty.handler.codec.http2.Http2ConnectionEncoder encoder, io.netty.handler.codec.http2.Http2Settings initialSettings, ChannelLogger negotiationLogger, boolean autoFlowControl, AbstractNettyHandler.PingLimiter pingLimiter, com.google.common.base.Ticker ticker) -
Method Summary
Modifier and TypeMethodDescriptionvoid
channelActive
(io.netty.channel.ChannelHandlerContext ctx) protected final io.netty.channel.ChannelHandlerContext
ctx()
final void
exceptionCaught
(io.netty.channel.ChannelHandlerContext ctx, Throwable cause) (package private) AbstractNettyHandler.FlowControlPinger
void
handlerAdded
(io.netty.channel.ChannelHandlerContext ctx) private void
Sends initial connection window to the remote endpoint if necessary.(package private) void
setAutoTuneFlowControl
(boolean isOn) Methods inherited from class io.grpc.netty.GrpcHttp2ConnectionHandler
getAuthority, getEagAttributes, getNegotiationLogger, handleProtocolNegotiationCompleted, handleProtocolNegotiationCompleted, notifyUnused, usingPre4_1_111_Netty
Methods inherited from class io.netty.handler.codec.http2.Http2ConnectionHandler
bind, channelInactive, channelReadComplete, channelWritabilityChanged, close, closeStream, closeStreamLocal, closeStreamRemote, connect, connection, decode, decoder, deregister, disconnect, encoder, flush, frameWriter, goAway, gracefulShutdownTimeoutMillis, gracefulShutdownTimeoutMillis, handlerRemoved0, handleServerHeaderDecodeSizeError, isGracefulShutdownComplete, onConnectionError, onError, onHttpClientUpgrade, onHttpServerUpgrade, onStreamError, read, resetStream, write
Methods inherited from class io.netty.handler.codec.ByteToMessageDecoder
actualReadableBytes, callDecode, channelRead, decodeLast, discardSomeReadBytes, handlerRemoved, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecode, userEventTriggered
Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelRegistered, channelUnregistered
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, isSharable
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.netty.channel.ChannelHandler
handlerRemoved
-
Field Details
-
GRACEFUL_SHUTDOWN_NO_TIMEOUT
private static final long GRACEFUL_SHUTDOWN_NO_TIMEOUT- See Also:
-
initialConnectionWindow
private final int initialConnectionWindow -
flowControlPing
-
autoTuneFlowControlOn
private boolean autoTuneFlowControlOn -
ctx
private io.netty.channel.ChannelHandlerContext ctx -
initialWindowSent
private boolean initialWindowSent -
ticker
private final com.google.common.base.Ticker ticker -
BDP_MEASUREMENT_PING
private static final long BDP_MEASUREMENT_PING- See Also:
-
-
Constructor Details
-
AbstractNettyHandler
AbstractNettyHandler(io.netty.channel.ChannelPromise channelUnused, io.netty.handler.codec.http2.Http2ConnectionDecoder decoder, io.netty.handler.codec.http2.Http2ConnectionEncoder encoder, io.netty.handler.codec.http2.Http2Settings initialSettings, ChannelLogger negotiationLogger, boolean autoFlowControl, AbstractNettyHandler.PingLimiter pingLimiter, com.google.common.base.Ticker ticker)
-
-
Method Details
-
handlerAdded
- Specified by:
handlerAdded
in interfaceio.netty.channel.ChannelHandler
- Overrides:
handlerAdded
in classio.netty.handler.codec.http2.Http2ConnectionHandler
- Throws:
Exception
-
channelActive
- Specified by:
channelActive
in interfaceio.netty.channel.ChannelInboundHandler
- Overrides:
channelActive
in classio.netty.handler.codec.http2.Http2ConnectionHandler
- Throws:
Exception
-
exceptionCaught
public final void exceptionCaught(io.netty.channel.ChannelHandlerContext ctx, Throwable cause) throws Exception - Specified by:
exceptionCaught
in interfaceio.netty.channel.ChannelHandler
- Specified by:
exceptionCaught
in interfaceio.netty.channel.ChannelInboundHandler
- Overrides:
exceptionCaught
in classio.netty.handler.codec.http2.Http2ConnectionHandler
- Throws:
Exception
-
ctx
protected final io.netty.channel.ChannelHandlerContext ctx() -
sendInitialConnectionWindow
private void sendInitialConnectionWindow() throws io.netty.handler.codec.http2.Http2ExceptionSends initial connection window to the remote endpoint if necessary.- Throws:
io.netty.handler.codec.http2.Http2Exception
-
flowControlPing
AbstractNettyHandler.FlowControlPinger flowControlPing() -
setAutoTuneFlowControl
void setAutoTuneFlowControl(boolean isOn)
-