Ejemplo n.º 1
0
    /// <summary>
    /// Seek past the value for the previously read key.
    /// </summary>
    public static void SkipKey(CitoStream stream, Key key)
    {
        switch (key.GetWireType())
        {
        case Wire.Fixed32:
            stream.Seek(4, CitoSeekOrigin.Current);
            return;

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

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

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

        default:
#if !CITO
            throw new NotImplementedException("Unknown wire type: " + key.GetWireType());
#else
            return;
#endif
        }
    }
Ejemplo n.º 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));
        }
        }
    }
    public static void SkipKey(Stream stream, Key key)
    {
        switch (key.WireType)
        {
        case Wire.Varint:
            ProtocolParser.ReadSkipVarInt(stream);
            return;

        case Wire.Fixed64:
            stream.Seek(8L, 1);
            return;

        case Wire.LengthDelimited:
            stream.Seek((long)((ulong)ProtocolParser.ReadUInt32(stream)), 1);
            return;

        case Wire.Fixed32:
            stream.Seek(4L, 1);
            return;
        }
        throw new NotImplementedException("Unknown wire type: " + key.WireType);
    }