/**
 * 
 */
package org.apache.mina.http2.api;

import java.nio.charset.Charset;

/**
 * @author jeffmaury
 *
 */
public final class Http2Constants {
    /**
     * Mask used when decoding on a 4 byte boundary, masking the reserved
     * bit
     */
    public static final int HTTP2_31BITS_MASK = 0x7FFFFFFF;
    
    /**
     * Mask used when decoding on a 4 byte boundary, retrieving
     * the exclusive bit
     */
    public static final int HTTP2_EXCLUSIVE_MASK = 0x80000000;

    /*
     * Frame types
     */
    /**
     * DATA frame
     */
    public static final int FRAME_TYPE_DATA = 0x00;
    
    /**
     * HEADERS frame
     */
    public static final int FRAME_TYPE_HEADERS = 0x01;
    
    /**
     * PRIORITY frame
     */
    public static final int FRAME_TYPE_PRIORITY = 0x02;
    
    /**
     * RST_STREAM frame
     */
    public static final int FRAME_TYPE_RST_STREAM = 0x03;
    
    /**
     * SETTINGS stream
     */
    public static final int FRAME_TYPE_SETTINGS = 0x04;
    
    /**
     * PUSH_PROMISE frame
     */
    public static final int FRAME_TYPE_PUSH_PROMISE = 0x05;
    
    /**
     * PING frame
     */
    public static final int FRAME_TYPE_PING = 0x06;
    
    /**
     * GOAWAY frame
     */
    public static final int FRAME_TYPE_GOAWAY = 0x07;
    
    /**
     * WINDOW_UPDATE frame
     */
    public static final int FRAME_TYPE_WINDOW_UPDATE = 0x08;
    
    /**
     * CONTINUATION frame
     */
    public static final int FRAME_TYPE_CONTINUATION = 0x09;
    
    /*
     * Flags
     */
    public static final byte FLAGS_END_STREAM = 0x01;
    
    public static final byte FLAGS_ACK = 0x01;
    
    public static final byte FLAGS_END_HEADERS = 0x04;
    
    public static final byte FLAGS_PADDING = 0x08;
    
    public static final byte FLAGS_PRIORITY = 0x20;
    
    /*
     * Error codes
     */
    /**
     * The associated condition is not as a result of an error. For example, a GOAWAY might include this code to indicate graceful shutdown of a connection.
     */
    public static final int NO_ERROR = 0x0;
    
    /**
     * The endpoint detected an unspecific protocol error. This error is for use when a more specific error code is not available.
     */
    public static final int PROTOCOL_ERROR = 0x1;

    /**
     * The endpoint encountered an unexpected internal error.
     */
    public static final int INTERNAL_ERROR = 0x2;
    
    /**
     * The endpoint detected that its peer violated the flow control protocol.
     */
    public static final int FLOW_CONTROL_ERROR = 0x3;

    /**
     * The endpoint sent a SETTINGS frame, but did not receive a response in a timely manner. See Settings Synchronization (Section 6.5.3).
     */
    public static final int SETTINGS_TIMEOUT = 0x4;

    /**
     * The endpoint received a frame after a stream was half closed.
     */
    public static final int STREAM_CLOSED = 0x5;

    /**
     * The endpoint received a frame with an invalid size.
     */
    public static final int FRAME_SIZE_ERROR = 0x6;

    /**
     * The endpoint refuses the stream prior to performing any application processing, see Section 8.1.4 for details.
     */
    public static final int REFUSED_STREAM = 0x7;
     
    /**
     * Used by the endpoint to indicate that the stream is no longer needed.
     */
    public static final int CANCEL = 0x8;

    /**
     * The endpoint is unable to maintain the header compression context for the connection.
     */
    public static final int COMPRESSION_ERROR = 0x9;
    
    /**
     * The connection established in response to a CONNECT request (Section 8.3) was reset or abnormally closed.
     */
    public static final int CONNECT_ERROR = 0xa;
    
    /**
     * The endpoint detected that its peer is exhibiting a behavior that might be generating excessive load.
     */
    public static final int ENHANCE_YOUR_CALM = 0xb;

    /**
     * The underlying transport has properties that do not meet minimum security requirements (see Section 9.2).
     */
    public static final int INADEQUATE_SECURITY = 0xc;

    /**
     * The endpoint requires that HTTP/1.1 be used instead of HTTP/2.
     */
    public static final int HTTP_1_1_REQUIRED = 0xd;
        
    /*
     * Settings related stuff
     */
    public static final int SETTINGS_HEADER_TABLE_SIZE = 0x01;
    
    public static final int SETTINGS_HEADER_TABLE_SIZE_DEFAULT = 4096;
    
    public static final int SETTINGS_ENABLE_PUSH = 0x02;
    
    public static final int SETTINGS_ENABLE_PUSH_DEFAULT = 1;
    
    public static final int SETTINGS_MAX_CONCURRENT_STREAMS = 0x03;
    
    public static final int SETTINGS_MAX_CONCURRENT_STREAMS_DEFAULT = Integer.MAX_VALUE;
    
    public static final int SETTINGS_INITIAL_WINDOW_SIZE = 0x04;
    
    public static final int SETTINGS_INITIAL_WINDOW_SIZE_DEFAULT = 65535;
    
    public static final int SETTINGS_MAX_FRAME_SIZE = 0x05;
    
    public static final int SETTINGS_MAX_FRAME_SIZE_DEFAULT = 16384;
    
    public static final int SETTINGS_MAX_HEADER_LIST_SIZE = 0x06;
    
    public static final int SETTINGS_MAX_HEADER_LIST_SIZE_DEFAULT = Integer.MAX_VALUE;
    
    public static final Charset US_ASCII_CHARSET = Charset.forName("US-ASCII");
    
}
