public static ServerState DeserializeLengthDelimited(Stream stream) { ServerState serverState = new ServerState(); ServerState.DeserializeLengthDelimited(stream, serverState); return(serverState); }
public static ServerInfo Deserialize(Stream stream, ServerInfo instance, long limit) { BinaryReader binaryReader = new BinaryReader(stream); instance.Replace = false; if (instance.Attribute == null) { instance.Attribute = new List <bnet.protocol.attribute.Attribute>(); } while (limit < 0L || stream.Position < limit) { int num = stream.ReadByte(); if (num == -1) { if (limit >= 0L) { throw new EndOfStreamException(); } return(instance); } else if (num != 10) { if (num != 16) { if (num != 26) { if (num != 34) { if (num != 45) { Key key = ProtocolParser.ReadKey((byte)num, stream); uint field = key.Field; if (field == 0u) { throw new ProtocolBufferException("Invalid field id: 0, something went wrong in the stream"); } ProtocolParser.SkipKey(stream, key); } else { instance.ProgramId = binaryReader.ReadUInt32(); } } else { instance.Attribute.Add(bnet.protocol.attribute.Attribute.DeserializeLengthDelimited(stream)); } } else if (instance.State == null) { instance.State = ServerState.DeserializeLengthDelimited(stream); } else { ServerState.DeserializeLengthDelimited(stream, instance.State); } } else { instance.Replace = ProtocolParser.ReadBool(stream); } } else if (instance.Host == null) { instance.Host = ProcessId.DeserializeLengthDelimited(stream); } else { ProcessId.DeserializeLengthDelimited(stream, instance.Host); } } if (stream.Position == limit) { return(instance); } throw new ProtocolBufferException("Read past max limit"); }