All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.webpieces.http2parser.api.dto.HeadersFrame Maven / Gradle / Ivy

package com.webpieces.http2parser.api.dto;

import org.webpieces.data.api.DataWrapper;
import org.webpieces.data.api.DataWrapperGeneratorFactory;

import com.webpieces.http2parser.api.dto.lib.AbstractHttp2Frame;
import com.webpieces.http2parser.api.dto.lib.HasHeaderFragment;
import com.webpieces.http2parser.api.dto.lib.Http2FrameType;
import com.webpieces.http2parser.api.dto.lib.PriorityDetails;

public class HeadersFrame extends AbstractHttp2Frame implements HasHeaderFragment {
    @Override
    public Http2FrameType getFrameType() {
        return Http2FrameType.HEADERS;
    }

    /* flags */
    private boolean endOfStream = false; /* 0x1 */
    private boolean endHeaders = false; /* 0x4 */
    //private boolean padded = false; /* 0x8 */
    //if PriorityDetails is null, this is false
    //private boolean priority = false; /* 0x20 */
    /* payload */
    private PriorityDetails priorityDetails; /* optional */
    private DataWrapper headerFragment;
    private DataWrapper padding = DataWrapperGeneratorFactory.EMPTY;
    
    public boolean isEndOfStream() {
        return endOfStream;
    }

    public void setEndOfStream(boolean endStream) {
        this.endOfStream = endStream;
    }

    @Override
    public boolean isEndHeaders() {
        return endHeaders;
    }

    @Override
    public void setEndHeaders(boolean endHeaders) {
        this.endHeaders = endHeaders;
    }

    public boolean isPriority() {
        return priorityDetails != null;
    }

    @Override
    public DataWrapper getHeaderFragment() {
        return headerFragment;
    }

    @Override
    public void setHeaderFragment(DataWrapper serializedHeaders) {
        this.headerFragment = serializedHeaders;
    }

    public PriorityDetails getPriorityDetails() {
        return priorityDetails;
    }

    public void setPriorityDetails(PriorityDetails priorityDetails) {
        this.priorityDetails = priorityDetails;
    }

    public DataWrapper getPadding() {
		return padding;
	}

	public void setPadding(DataWrapper padding) {
		this.padding = padding;
	}

	@Override
    public String toString() {
		int fragSize = 0;
		if(headerFragment != null)
			fragSize = headerFragment.getReadableSize();
        return "HeadersFrame{" +
        		super.toString() +
                ", endStream=" + endOfStream +
                ", endHeaders=" + endHeaders +
                ", priorityDetails=" + priorityDetails +
                ", headerFragment=" + fragSize +
                ", padding=" + padding +
                "} ";
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy