using Invercargill; namespace Pprf.Messages { public class Upload : UploadSessionMessage { public uint64 offset { get; set; } public MessageBody upload_chunk { get; set; } public Upload() { message_type = MessageType.UPLOAD; } public override void deserialise (GLib.DataInputStream stream) throws Error { base.deserialise (stream); offset = stream.read_uint64(); // Size of message minus headers var chunk_size = stream.read_uint64(); upload_chunk = new StreamMessageBody((int)chunk_size, stream); } public override uint64 calculate_size() { return base.calculate_size() + 8 + // Offset field 8 + // Chunk size field upload_chunk.body_size; } public override void serialise(DataOutputStream stream) throws Error { base.serialise(stream); stream.put_uint64(offset); stream.put_uint64(upload_chunk.body_size); upload_chunk.write_to(stream); stream.flush(); } } }