示例#1
0
        /// <summary>
        /// Seek past the value for the previously read key.
        /// </summary>
        public static void SkipKey(Stream stream, Key key)
        {
            switch (key.WireType)
            {
            case Wire.Fixed32:
                stream.Seek(4, SeekOrigin.Current);
                return;

            case Wire.Fixed64:
                stream.Seek(8, SeekOrigin.Current);
                return;

            case Wire.LengthDelimited:
                stream.Seek(ProtocolParser.ReadUInt32(stream), SeekOrigin.Current);
                return;

            case Wire.Varint:
                ProtocolParser.ReadSkipVarInt(stream);
                return;

            case Wire.Start:
                ProtocolParser.ReadSkipGroup(stream, key);
                return;

            default:
                throw new NotImplementedException("Unknown wire type: " + key.WireType);
            }
        }
示例#2
0
        public static void SkipKey(Stream stream, Key key)
        {
            switch (key.WireType)
            {
            case Wire.Varint:
            {
                ProtocolParser.ReadSkipVarInt(stream);
                return;
            }

            case Wire.Fixed64:
            {
                stream.Seek((long)8, SeekOrigin.Current);
                return;
            }

            case Wire.LengthDelimited:
            {
                stream.Seek((long)ProtocolParser.ReadUInt32(stream), SeekOrigin.Current);
                return;
            }

            case Wire.Fixed64 | Wire.LengthDelimited:
            case 4:
            {
                throw new NotImplementedException(string.Concat("Unknown wire type: ", key.WireType));
            }

            case Wire.Fixed32:
            {
                stream.Seek((long)4, SeekOrigin.Current);
                return;
            }

            default:
            {
                throw new NotImplementedException(string.Concat("Unknown wire type: ", key.WireType));
            }
            }
        }
示例#3
0
        public static void SkipKey(Stream stream, Key key)
        {
            switch (key.WireType)
            {
            case Wire.Varint:
                ProtocolParser.ReadSkipVarInt(stream);
                break;

            case Wire.Fixed64:
                stream.Seek(8L, SeekOrigin.Current);
                break;

            case Wire.LengthDelimited:
                stream.Seek((long)ProtocolParser.ReadUInt32(stream), SeekOrigin.Current);
                break;

            case Wire.Fixed32:
                stream.Seek(4L, SeekOrigin.Current);
                break;

            default:
                throw new NotImplementedException("Unknown wire type: " + (object)key.WireType);
            }
        }