SegmentMessage.vala 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. using LibPeer.Protocols.Stp.Segments;
  2. namespace LibPeer.Protocols.Stp.Messages {
  3. public class SegmentMessage : Message {
  4. protected override uint8 message_type { get { return MESSAGE_SEGMENT; } }
  5. public Bytes session_id { get; private set; }
  6. public Segment segment { get; private set; }
  7. protected override void serialise_data (OutputStream stream) {
  8. DataOutputStream os = new DataOutputStream (stream);
  9. os.byte_order = DataStreamByteOrder.BIG_ENDIAN;
  10. os.write (session_id.get_data ());
  11. segment.serialise (os);
  12. os.flush ();
  13. }
  14. public SegmentMessage.from_stream(InputStream stream) {
  15. DataInputStream ins = new DataInputStream (stream);
  16. ins.byte_order = DataStreamByteOrder.BIG_ENDIAN;
  17. var b_session_id = new uint8[16];
  18. ins.read(b_session_id);
  19. session_id = new Bytes(b_session_id);
  20. segment = Segment.deserialise (ins);
  21. }
  22. }
  23. }