using Invercargill; namespace Pprf.Messages { public abstract class CollectionMessage : Message { public BinaryData collection_id { get; set; } public override void deserialise (GLib.DataInputStream stream) throws Error { base.deserialise (stream); var id = new uint8[Sodium.Asymmetric.Signing.PUBLIC_KEY_BYTES]; stream.read(id); collection_id = Wrap.byte_array(id); } public override uint64 calculate_size() { return base.calculate_size() + Sodium.Asymmetric.Signing.PUBLIC_KEY_BYTES; } public override void serialise(DataOutputStream stream) throws Error { base.serialise(stream); if(collection_id.count() != Sodium.Asymmetric.Signing.PUBLIC_KEY_BYTES) { error("Collection ID is not the correct size"); } stream.write(collection_id.to_array()); } } }