Example #1
0
        public async Task<Frame> GetFrameFromBytes (byte[] frameBytes)
        {
            var frameHeaderBytes = new byte[FrameHeaders.FixedLengthInBytes];
            Array.Copy (frameBytes, 0, frameHeaderBytes, 0, frameHeaderBytes.Length);
            var header = FrameHeaderFactory.GetFrameHeaderFromBytes (frameHeaderBytes);

            var extendedHeaderBytes = new byte[header.DataOffset - FrameHeaders.FixedLengthInBytes];
            Array.Copy (frameBytes, FrameHeaders.FixedLengthInBytes, extendedHeaderBytes, 0, extendedHeaderBytes.Length);
            var extendedHeader = new FrameExtendedHeader (extendedHeaderBytes);

            var frameBodyBytes = new byte[header.Size - header.DataOffset];
            Array.Copy (frameBytes, header.DataOffset, frameBodyBytes, 0, frameBodyBytes.Length);
            var body = await FrameBodyFactory.GetFrameBodyFromBytes (frameBodyBytes);

            return new Frame (header, extendedHeader, body);
        }
Example #2
0
File: Frame.cs Project: jagrem/msg
 public Frame (FrameHeader header, FrameExtendedHeader extendedHeader, FrameBody body)
 {
     Header = header;
     ExtendedHeader = extendedHeader;
     Body = body;
 }