CollectionMessage.vala 955 B

1234567891011121314151617181920212223242526272829
  1. using Invercargill;
  2. namespace Pprf.Messages {
  3. public abstract class CollectionMessage : Message {
  4. public BinaryData collection_id { get; set; }
  5. public override void deserialise (GLib.DataInputStream stream) throws Error {
  6. base.deserialise (stream);
  7. var id = new uint8[Sodium.Asymmetric.Signing.PUBLIC_KEY_BYTES];
  8. stream.read(id);
  9. collection_id = Wrap.byte_array(id);
  10. }
  11. public override uint64 calculate_size() {
  12. return base.calculate_size() + Sodium.Asymmetric.Signing.PUBLIC_KEY_BYTES;
  13. }
  14. public override void serialise(DataOutputStream stream) throws Error {
  15. base.serialise(stream);
  16. if(collection_id.count() != Sodium.Asymmetric.Signing.PUBLIC_KEY_BYTES) {
  17. error("Collection ID is not the correct size");
  18. }
  19. stream.write(collection_id.to_array());
  20. }
  21. }
  22. }