Class CloseHandler

java.lang.Object
io.servicetalk.transport.netty.internal.CloseHandler

public abstract class CloseHandler extends Object
Contract between protocol codecs and a close handler.
  • Field Details

    • UNSUPPORTED_PROTOCOL_CLOSE_HANDLER

      public static final CloseHandler UNSUPPORTED_PROTOCOL_CLOSE_HANDLER
  • Constructor Details

    • CloseHandler

      public CloseHandler()
  • Method Details

    • forPipelinedRequestResponse

      public static CloseHandler forPipelinedRequestResponse(boolean client, io.netty.channel.ChannelConfig config)
      New CloseHandler instance.
      Parameters:
      client - operation mode, TRUE for client or FALSE for server
      config - The ChannelConfig associated with the channel to create the CloseHandler for. This ChannelConfig maybe modified to ensure the underlying options allow for half-closure.
      Returns:
      a new connection close handler with behavior for a pipelined request/response client or server
    • forNonPipelined

      public static CloseHandler forNonPipelined(boolean isClient, io.netty.channel.ChannelConfig config)
      Create a new CloseHandler instance which doesn't support pipelining, and only ever has a single outstanding request/response. The CloseHandler doesn't require the channel be of any special type (e.g. DuplexChannel) nor support any special channel options (e.g. ChannelOption.ALLOW_HALF_CLOSURE).
      Parameters:
      isClient - operation mode, TRUE for client or FALSE for server.
      config - The ChannelConfig associated with the channel to create the CloseHandler for.
      Returns:
      a new CloseHandler instance which doesn't support pipelining.
    • protocolPayloadBeginInbound

      public abstract void protocolPayloadBeginInbound(io.netty.channel.ChannelHandlerContext ctx)
      Signal begin of inbound payload, to be emitted from the EventLoop for the Channel.
      Parameters:
      ctx - ChannelHandlerContext
    • protocolPayloadEndInbound

      public abstract void protocolPayloadEndInbound(io.netty.channel.ChannelHandlerContext ctx)
      Signal end of inbound payload, to be emitted from the EventLoop for the Channel.
      Parameters:
      ctx - ChannelHandlerContext
    • protocolPayloadBeginOutbound

      public abstract void protocolPayloadBeginOutbound(io.netty.channel.ChannelHandlerContext ctx)
      Signal begin of outbound payload, to be emitted from the EventLoop for the Channel.
      Parameters:
      ctx - ChannelHandlerContext
    • protocolPayloadEndOutbound

      public abstract void protocolPayloadEndOutbound(io.netty.channel.ChannelHandlerContext ctx, @Nullable io.netty.channel.ChannelPromise promise)
      Signal end of outbound payload, including the ChannelPromise associated with the last write. Must be called from the EventLoop for the Channel.
      Parameters:
      promise - The ChannelPromise associated with the last write operation or null if payload ends without a write operation (aborted/cancelled).
      ctx - ChannelHandlerContext
    • protocolClosingInbound

      public abstract void protocolClosingInbound(io.netty.channel.ChannelHandlerContext ctx)
      Signal inbound close command observed, to be emitted from the EventLoop for the Channel.
      Parameters:
      ctx - ChannelHandlerContext
    • protocolClosingOutbound

      public abstract void protocolClosingOutbound(io.netty.channel.ChannelHandlerContext ctx)
      Signal outbound close command observed, to be emitted from the EventLoop for the Channel.
      Parameters:
      ctx - ChannelHandlerContext