コード例 #1
0
        /// <summary>
        /// Deserializes the Http2 Close Extension Data.
        /// </summary>
        /// <param name="data">The data.</param>
        /// <returns>Deserialized Extension Data.</returns>
        public CloseFrameExt DeserializeCloseFrameExt(byte[] data)
        {
            var extData = new CloseFrameExt();

            extData.StatusCode        = BinaryHelper.Int16FromBytes(data[0], data[1], 0);
            extData.LastGoodSessionId = BinaryHelper.Int32FromBytes(new ArraySegment <byte>(data, 2, 4));

            return(extData);
        }
コード例 #2
0
        /// <summary>
        /// Parses HTTP header of Http2 control frame.
        /// </summary>
        /// <param name="frame">The frame.</param>
        /// <param name="data">The data.</param>
        private static void ParseControlFrameHeader(ref ControlFrame frame, byte[] data)
        {
            frame.Version = BinaryHelper.Int16FromBytes(data[0], data[1], 1);
            frame.Type    = (FrameType)BinaryHelper.Int16FromBytes(data[2], data[3]);

            frame.Flags = data[4]; //  it would be always 4 th byte for flags in spec.

            frame.Length  = BinaryHelper.Int32FromBytes(new ArraySegment <byte>(data, 5, 3));
            frame.IsFinal = (frame.Flags & 0x01) != 0;
        }
コード例 #3
0
 private FrameType GetFrameType(byte[] data)
 {
     return((FrameType)BinaryHelper.Int16FromBytes(data[2], data[3]));
 }