/** * Incoming mux encapsulated frames. */ @Override public void incomingFrame(Frame frame) { parser.parse(frame); }
muxframe.setFin(frame.isRsv3()); muxframe.setContinuation(true); parseDataFramePayload(buffer); channelId = readChannelId(buffer); if (channelId == 0) parseControlBlocks(buffer); parseDataFrame(buffer);
op.setRsv((byte)((b & 0x1C) >> 2)); op.setEncoding((byte)(b & 0x03)); op.setChannelId(readChannelId(buffer)); long handshakeSize = read139EncodedSize(buffer); op.setHandshake(readBlock(buffer,handshakeSize)); events.onMuxAddChannelRequest(op); break; op.setRsv((byte)((byte)(b & 0x0C) >> 2)); op.setEncoding((byte)(b & 0x03)); op.setChannelId(readChannelId(buffer)); long handshakeSize = read139EncodedSize(buffer); op.setHandshake(readBlock(buffer,handshakeSize)); events.onMuxAddChannelResponse(op); break; long channelId = readChannelId(buffer); long reasonSize = read139EncodedSize(buffer); ByteBuffer reasonBuf = readBlock(buffer,reasonSize); MuxDropChannel op = MuxDropChannel.parse(channelId,reasonBuf); op.setRsv(rsv); op.setChannelId(readChannelId(buffer)); op.setSendQuotaSize(read139EncodedSize(buffer)); events.onMuxFlowControl(op); break; op.setRsv((byte)((b & 0x1E) >> 1)); op.setFallback((b & 0x01) != 0);
private void parseDataFrame(ByteBuffer buffer) { byte b = buffer.get(); boolean fin = ((b & 0x80) != 0); boolean rsv1 = ((b & 0x40) != 0); boolean rsv2 = ((b & 0x20) != 0); boolean rsv3 = ((b & 0x10) != 0); byte opcode = (byte)(b & 0x0F); if (opcode == OpCode.CONTINUATION) { muxframe.setContinuation(true); } else { muxframe.reset(); muxframe.setOpCode(opcode); } muxframe.setChannelId(channelId); muxframe.setFin(fin); muxframe.setRsv1(rsv1); muxframe.setRsv2(rsv2); muxframe.setRsv3(rsv3); parseDataFramePayload(buffer); }
muxframe.setFin(frame.isRsv3()); muxframe.setContinuation(true); parseDataFramePayload(buffer); channelId = readChannelId(buffer); if (channelId == 0) parseControlBlocks(buffer); parseDataFrame(buffer);
op.setRsv((byte)((b & 0x1C) >> 2)); op.setEncoding((byte)(b & 0x03)); op.setChannelId(readChannelId(buffer)); long handshakeSize = read139EncodedSize(buffer); op.setHandshake(readBlock(buffer,handshakeSize)); events.onMuxAddChannelRequest(op); break; op.setRsv((byte)((byte)(b & 0x0C) >> 2)); op.setEncoding((byte)(b & 0x03)); op.setChannelId(readChannelId(buffer)); long handshakeSize = read139EncodedSize(buffer); op.setHandshake(readBlock(buffer,handshakeSize)); events.onMuxAddChannelResponse(op); break; long channelId = readChannelId(buffer); long reasonSize = read139EncodedSize(buffer); ByteBuffer reasonBuf = readBlock(buffer,reasonSize); MuxDropChannel op = MuxDropChannel.parse(channelId,reasonBuf); op.setRsv(rsv); op.setChannelId(readChannelId(buffer)); op.setSendQuotaSize(read139EncodedSize(buffer)); events.onMuxFlowControl(op); break; op.setRsv((byte)((b & 0x1E) >> 1)); op.setFallback((b & 0x01) != 0);
private void parseDataFrame(ByteBuffer buffer) { byte b = buffer.get(); boolean fin = ((b & 0x80) != 0); boolean rsv1 = ((b & 0x40) != 0); boolean rsv2 = ((b & 0x20) != 0); boolean rsv3 = ((b & 0x10) != 0); byte opcode = (byte)(b & 0x0F); if (opcode == OpCode.CONTINUATION) { muxframe.setContinuation(true); } else { muxframe.reset(); muxframe.setOpCode(opcode); } muxframe.setChannelId(channelId); muxframe.setFin(fin); muxframe.setRsv1(rsv1); muxframe.setRsv2(rsv2); muxframe.setRsv3(rsv3); parseDataFramePayload(buffer); }
/** * Incoming mux encapsulated frames. */ @Override public void incomingFrame(Frame frame) { parser.parse(frame); }