Exemplo n.º 1
0
        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;
                }
            }
        }
Exemplo n.º 2
0
        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;
 }