public static Whisper.Messages.RouteMessage Deserialize(Stream stream, Whisper.Messages.RouteMessage instance) { if (instance.Chunks == null) { instance.Chunks = new List <byte[]> (); } while (true) { ProtocolBuffers.Key key = null; int keyByte = stream.ReadByte(); if (keyByte == -1) { break; } //Optimized reading of known fields with field ID < 16 switch (keyByte) { case 10: //Field 1 LengthDelimited instance.MessageChunkHash = ProtocolParser.ReadBytes(stream); break; case 18: //Field 2 LengthDelimited instance.To = ProtocolParser.ReadString(stream); break; case 26: //Field 3 LengthDelimited instance.Chunks.Add(ProtocolParser.ReadBytes(stream)); break; default: key = ProtocolParser.ReadKey((byte)keyByte, stream); break; } if (key == null) { continue; } //Reading field ID > 16 and unknown field ID/wire type combinations switch (key.Field) { case 0: throw new InvalidDataException("Invalid field id: 0, something went wrong in the stream"); default: ProtocolParser.SkipKey(stream, key); break; } } return(instance); }
public static void Write(Stream stream, Whisper.Messages.RouteMessage instance) { Whisper.Messages.RouteMessage.Serialize(stream, instance); }
public static Whisper.Messages.RouteMessage Read(byte[] buffer, Whisper.Messages.RouteMessage instance) { using (MemoryStream ms = new MemoryStream(buffer)) Whisper.Messages.RouteMessage.Deserialize(ms, instance); return(instance); }
public static Whisper.Messages.RouteMessage Read(Stream stream, Whisper.Messages.RouteMessage instance) { return(Whisper.Messages.RouteMessage.Deserialize(stream, instance)); }