package com.webpieces.http2parser.api.dto; import org.webpieces.data.api.DataWrapper; import com.webpieces.http2parser.api.dto.lib.AbstractHttp2Frame; import com.webpieces.http2parser.api.dto.lib.Http2ErrorCode; import com.webpieces.http2parser.api.dto.lib.Http2FrameType; import com.webpieces.http2parser.api.dto.lib.Http2Msg; import com.webpieces.http2parser.api.dto.lib.Http2MsgType; public class GoAwayFrame extends AbstractHttp2Frame implements Http2Msg { /* flags */ /* payload */ // 1 bit reserved private long lastStreamId; // 31bits private long errorCode; //32bits private DataWrapper debugData; public void setLastStreamId(long lastStreamId) { this.lastStreamId = lastStreamId; } public long getLastStreamId() { return lastStreamId; } public long getErrorCode() { return errorCode; } public void setErrorCode(long code) { this.errorCode = code; } public void setKnownErrorCode(Http2ErrorCode errorCode) { this.errorCode = errorCode.getCode(); } public Http2ErrorCode getKnownErrorCode() { return Http2ErrorCode.translate(errorCode); } public DataWrapper getDebugData() { return debugData; } public void setDebugData(DataWrapper debugData) { this.debugData = debugData; } @Override public Http2FrameType getFrameType() { return Http2FrameType.GOAWAY; } @Override public Http2MsgType getMessageType() { return Http2MsgType.GOAWAY; } @Override public String toString() { String debug = null; if(debugData != null) debug = "" + debugData.getReadableSize(); return "GoAwayFrame{" + super.toString() + ", lastStreamId=" + lastStreamId + ", errorCode=" + errorCode + ", debugData.len=" + debug + "}"; } }