Esempio n. 1
0
 public static void Write(BinaryWriter writer, MessageWithId item)
 {
     writer.Write(ReservedFormatVersion);
     writer.Write(item.Attributes);
     writer.Write(item.Id.GetBytes());
     // we know for 100% that key length will be byte
     writer.Write((byte)item.Key.Length);
     writer.Write(item.Key);
     // we know for 100% that value length will be ushort
     writer.Write((ushort)item.Value.Length);
     writer.Write(item.Value);
     writer.Write(item.Crc32);
 }
Esempio n. 2
0
        public static MessageWithId Read(BinaryReader binary)
        {
            var version = binary.ReadByte();

            if (version == 0)
            {
                throw new NoDataException();
            }
            if (version != ReservedFormatVersion)
            {
                throw new InvalidStorageFormatException("Unknown storage format :" + version);
            }
            var flags     = binary.ReadByte();
            var id        = binary.ReadBytes(16);
            var keyLength = binary.ReadByte();
            var key       = binary.ReadBytes(keyLength);
            var len       = binary.ReadUInt16();
            var data      = binary.ReadBytes(len);
            var crc       = binary.ReadUInt32();
            var uuid      = new MessageId(id);
            var message   = new MessageWithId(uuid, flags, key, data, crc);

            return(message);
        }