public void pop()

in src/main/java/com/microsoft/azure/proton/transport/ws/impl/WebSocketImpl.java [587:629]


        public void pop(int bytes) {
            if (isWebSocketEnabled) {
                switch (webSocketState) {
                    case PN_WS_CONNECTING:
                        if (outputBuffer.position() != 0) {
                            outputBuffer.flip();
                            outputBuffer.position(bytes);
                            outputBuffer.compact();
                            head.position(0);
                            head.limit(outputBuffer.position());
                        } else {
                            underlyingOutput.pop(bytes);
                        }
                        break;
                    case PN_WS_CONNECTED_FLOW:
                    case PN_WS_CONNECTED_PONG:
                    case PN_WS_CONNECTED_CLOSING:
                        if ((bytes >= webSocketHeaderSize) && (outputBuffer.position() != 0)) {
                            outputBuffer.flip();
                            outputBuffer.position(bytes);
                            outputBuffer.compact();
                            head.position(0);
                            head.limit(outputBuffer.position());
                            underlyingOutput.pop(bytes - webSocketHeaderSize);
                            webSocketHeaderSize = 0;
                        } else if ((bytes > 0) && (bytes < webSocketHeaderSize)) {
                            webSocketHeaderSize -= bytes;
                        } else {
                            underlyingOutput.pop(bytes);
                        }
                        break;
                    case PN_WS_NOT_STARTED:
                    case PN_WS_CLOSED:
                    case PN_WS_FAILED:
                        underlyingOutput.pop(bytes);
                        break;
                    default:
                        assert false : String.format("unexpected value for WebSocketFrameReadState: %s", webSocketState);
                }
            } else {
                underlyingOutput.pop(bytes);
            }
        }