Exemplo n.º 1
0
        public IEnumerable <StoreRecord> EnumerateMessages(string key, long version, int count)
        {
            var records = _appendOnlyStore.ReadRecords(key, version, count);

            foreach (var record in records)
            {
                using (var mem = new MemoryStream(record.Data))
                {
                    // drop attributes
                    var attribs    = _serializer.ReadAttributes(mem);
                    var eventCount = _serializer.ReadCompactInt(mem);
                    var objects    = new object[eventCount];
                    for (int i = 0; i < eventCount; i++)
                    {
                        objects[i] = _serializer.ReadMessage(mem);
                    }
                    yield return(new StoreRecord(key, objects, record.StoreVersion, record.StreamVersion));
                }
            }
        }
Exemplo n.º 2
0
        public ImmutableEnvelope ReadAsEnvelopeData(byte[] buffer)
        {
            using (var mem = new MemoryStream(buffer))
            {
                var signature = MessageSerializer.ReadCompactInt(mem);
                if (Signature != signature)
                {
                    throw new IOException("Signature bytes mismatch in envelope");
                }

                var frame = StorageFramesEvil.ReadFrame(mem);

                using (var mem1 = new MemoryStream(frame.Bytes))
                {
                    var attributes = MessageSerializer.ReadAttributes(mem1);
                    var item       = MessageSerializer.ReadMessage(mem1);
                    var created    = new DateTime(frame.Stamp, DateTimeKind.Utc);
                    return(new ImmutableEnvelope(frame.Name, created, item, attributes));
                }
            }
        }