public IEnumerable <RetrievedEventsWithMetaData> ReadAll(EventStoreOffset startOffset, int maxRecordCount) { Ensure.Nonnegative(maxRecordCount, "maxRecordCount"); var maxOffset = _checkpoint.Read(); // nothing to read from here if (startOffset >= new EventStoreOffset(maxOffset)) { yield break; } int recordCount = 0; foreach (var msg in _store.ReadAll(startOffset.OffsetInBytes, maxRecordCount)) { yield return(msg); if (++recordCount >= maxRecordCount) { yield break; } // we don't want to go above the initial water mark if (msg.Next.OffsetInBytes >= maxOffset) { yield break; } } }
public bool Execute(CommandProcessorContext context, CancellationToken token, string[] args) { var fromOffset = 0; int maxRecordCount = int.MaxValue; if (args.Length > 0) { if (args.Length > 2) { context.Log.Info("More arguments: {0}", args.Length); return(false); } int.TryParse(args[0], out fromOffset); if (args.Length > 1) { int.TryParse(args[1], out maxRecordCount); } } //context.IsAsync(); var result = context.Client.EventStores.ReadAllEvents(new EventStoreOffset(fromOffset), maxRecordCount); EventStoreOffset next = EventStoreOffset.Zero; bool empty = true; foreach (var record in result) { context.Log.Info(" stream-id: {0}, data: {1}", record.StreamId, Encoding.UTF8.GetString(record.EventData)); next = record.Next; empty = false; } var nextOffset = !empty ? next : EventStoreOffset.Zero; context.Log.Info("Next stream offset: {0}", nextOffset); //context.Completed(); return(true); }
public RetrievedEventsWithMetaData(string streamId, byte[] eventData, EventStoreOffset next) { StreamId = streamId; EventData = eventData; Next = next; }