Class ExtensionStack

java.lang.Object
org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.ContainerLifeCycle
org.eclipse.jetty.websocket.common.extensions.ExtensionStack
All Implemented Interfaces:
org.eclipse.jetty.util.component.Container, org.eclipse.jetty.util.component.Destroyable, org.eclipse.jetty.util.component.Dumpable, org.eclipse.jetty.util.component.Dumpable.DumpableContainer, org.eclipse.jetty.util.component.LifeCycle, IncomingFrames, OutgoingFrames

@ManagedObject("Extension Stack") public class ExtensionStack extends org.eclipse.jetty.util.component.ContainerLifeCycle implements IncomingFrames, OutgoingFrames
Represents the stack of Extensions.
  • Field Details

  • Constructor Details

  • Method Details

    • configure

      public void configure(Generator generator)
    • configure

      public void configure(Parser parser)
    • doStart

      protected void doStart() throws Exception
      Overrides:
      doStart in class org.eclipse.jetty.util.component.ContainerLifeCycle
      Throws:
      Exception
    • dumpSelf

      public String dumpSelf()
      Specified by:
      dumpSelf in interface org.eclipse.jetty.util.component.Dumpable
    • getExtensions

      @ManagedAttribute(name="Extension List", readonly=true) public List<Extension> getExtensions()
    • getLastIncoming

      private IncomingFrames getLastIncoming()
    • getLastOutgoing

      private OutgoingFrames getLastOutgoing()
    • getNegotiatedExtensions

      public List<ExtensionConfig> getNegotiatedExtensions()
      Get the list of negotiated extensions, each entry being a full "name; params" extension configuration
      Returns:
      list of negotiated extensions
    • getNextIncoming

      @ManagedAttribute(name="Next Incoming Frames Handler", readonly=true) public IncomingFrames getNextIncoming()
    • getNextOutgoing

      @ManagedAttribute(name="Next Outgoing Frames Handler", readonly=true) public OutgoingFrames getNextOutgoing()
    • hasNegotiatedExtensions

      public boolean hasNegotiatedExtensions()
    • incomingFrame

      public void incomingFrame(Frame frame)
      Description copied from interface: IncomingFrames
      Process the incoming frame.

      Note: if you need to hang onto any information from the frame, be sure to copy it, as the information contained in the Frame will be released and/or reused by the implementation.

      Specified by:
      incomingFrame in interface IncomingFrames
      Parameters:
      frame - the frame to process
    • negotiate

      public void negotiate(List<ExtensionConfig> configs)
      Perform the extension negotiation.

      For the list of negotiated extensions, use getNegotiatedExtensions()

      Parameters:
      configs - the configurations being requested
    • outgoingFrame

      public void outgoingFrame(Frame frame, WriteCallback callback, BatchMode batchMode)
      Description copied from interface: OutgoingFrames
      A frame, and optional callback, intended for the network layer.

      Note: the frame can undergo many transformations in the various layers and extensions present in the implementation.

      If you are implementing a mutation, you are obliged to handle the incoming WriteCallback appropriately.

      Specified by:
      outgoingFrame in interface OutgoingFrames
      Parameters:
      frame - the frame to eventually write to the network layer.
      callback - the callback to notify when the frame is written.
      batchMode - the batch mode requested by the sender.
    • setNextIncoming

      public void setNextIncoming(IncomingFrames nextIncoming)
    • setNextOutgoing

      public void setNextOutgoing(OutgoingFrames nextOutgoing)
    • setPolicy

      public void setPolicy(WebSocketPolicy policy)
    • offerEntry

      private void offerEntry(ExtensionStack.FrameEntry entry)
    • pollEntry

      private ExtensionStack.FrameEntry pollEntry()
    • getQueueSize

      private int getQueueSize()
    • toString

      public String toString()
      Overrides:
      toString in class org.eclipse.jetty.util.component.AbstractLifeCycle