Beispiel #1
0
        public static GetUncommittedBlockHandle DeserializeGetUncommittedBlockHandle(ReadOnlySpan <byte> message)
        {
            var editor             = new SpanBinaryReader(message);
            var header             = ParseMessageHeader(ref editor, GetUncommittedBlockHandle.Info);
            var uncommittedBlockId = TempBlockId.Create(ref editor);

            return(new GetUncommittedBlockHandle(header.RequestId, header.ClientId, uncommittedBlockId));
        }
Beispiel #2
0
        public static OpenBlock DeserializeOpenBlock(ReadOnlySpan <byte> message)
        {
            var editor = new SpanBinaryReader(message);

            var header      = ParseMessageHeader(ref editor, OpenBlock.Info);
            var parentAlias = new BlockAlias(editor.ReadUInt32());

            return(new OpenBlock(header.RequestId, header.ClientId, parentAlias));
        }
Beispiel #3
0
        public static GetBlockInformation DeserializeGetBlockInfo(ReadOnlySpan <byte> message)
        {
            var editor = new SpanBinaryReader(message);
            var header = ParseMessageHeader(ref editor, GetBlockInformation.Info);

            var blockHandle = new BlockAlias(editor.ReadUInt32());

            return(new GetBlockInformation(header.RequestId, header.ClientId, blockHandle));
        }
Beispiel #4
0
        public static CommitBlock DeserializeCommitBlock(ReadOnlySpan <byte> message)
        {
            var editor = new SpanBinaryReader(message);

            var header = ParseMessageHeader(ref editor, CommitBlock.Info);

            var blockHandle = new BlockAlias(editor.ReadUInt32());
            var blockId     = BlockId.Create(ref editor);

            return(new CommitBlock(header.RequestId, header.ClientId, blockHandle, blockId));
        }
Beispiel #5
0
        public Hash128(ref SpanBinaryReader buffer)
        {
            if (buffer.Length < SizeInBytes)
            {
                throw new IndexOutOfRangeException(
                          $"The size of the buffer needs to be at least {SizeInBytes} but is {buffer.Length}");
            }

            Left  = BigEndianConverter.ReadUInt64(ref buffer);
            Right = BigEndianConverter.ReadUInt64(ref buffer);
        }
Beispiel #6
0
        public Hash256(ref SpanBinaryReader buffer)
        {
            if (buffer.RemainingLength < SizeInBytes)
            {
                throw new IndexOutOfRangeException(
                          $"The size of the buffer needs to be at least {SizeInBytes} but is {buffer.Length}");
            }

            Var1 = BigEndianConverter.ReadUInt64(ref buffer);
            Var2 = BigEndianConverter.ReadUInt64(ref buffer);
            Var3 = BigEndianConverter.ReadUInt64(ref buffer);
            Var4 = BigEndianConverter.ReadUInt64(ref buffer);
        }
Beispiel #7
0
 public static BlockId Create(ref SpanBinaryReader buffer)
 {
     return(new BlockId(new Hash256(ref buffer)));
 }
Beispiel #8
0
 public static TempBlockId Create(ref SpanBinaryReader buffer)
 {
     return(new TempBlockId(new Hash128(ref buffer)));
 }
Beispiel #9
0
 public static ulong ReadUInt64(ref SpanBinaryReader buffer)
 {
     return(buffer.ReadUInt64BE());
 }