예제 #1
0
        public async Task ReadAsync(long initialSequence, int count, Action <IPersistedRawEvent> readCallback, CancellationToken ct)
        {
            if (count == 0)
            {
                return;
            }

            var sc = StartCount.From(initialSequence, count);

            var events = await DB.ExecuteListAsync(CommandText_Read, r => ReadEvent(r, null), sc.Start, sc.Count);

            foreach (var e in events)
            {
                if (ct.IsCancellationRequested)
                {
                    break;
                }

                readCallback(e);
            }
        }
예제 #2
0
        public async Task ReadStreamAsync(Stream stream, int initialSequence, int count, Action <IPersistedRawEvent> readCallback, CancellationToken ct)
        {
            if (count == 0)
            {
                return;
            }

            var sc      = StartCount.From(initialSequence, count);
            var command = DB.CreateCommand(CommandText_ReadStream, stream.Hash);

            var events = await DB.ExecuteListAsync(command, r => ReadEvent(r, stream), sc.Start, sc.Count);

            foreach (var e in events)
            {
                if (ct.IsCancellationRequested)
                {
                    break;
                }

                readCallback(e);
            }
        }