12345678910111213141516171819202122232425262728293031323334353637383940 |
- 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();
- }
- }
- }
|