private void EmitEventsToStream(string streamId, EmittedEventEnvelope[] emittedEvents)
        {
            if (string.IsNullOrEmpty(streamId))
                throw new ArgumentNullException("streamId");
            EmittedStream stream;
            if (!_emittedStreams.TryGetValue(streamId, out stream))
            {
                var streamMetadata = emittedEvents.Length > 0 ? emittedEvents[0].StreamMetadata : null;

                var writeQueueId = _maximumAllowedWritesInFlight == AllowedWritesInFlight.Unbounded 
                    ? (Guid?)null 
                    :_writeQueueIds[_emittedStreams.Count % _maximumAllowedWritesInFlight];

                IEmittedStreamsWriter writer;
                if (writeQueueId == null)
                    writer = new EmittedStreamsWriter(_ioDispatcher);
                else
                    writer = new QueuedEmittedStreamsWriter(_ioDispatcher, writeQueueId.Value);

                var writerConfiguration = new EmittedStream.WriterConfiguration(
                    writer, streamMetadata, _runAs, maxWriteBatchLength: _maxWriteBatchLength, logger: _logger);

                stream = new EmittedStream(streamId, writerConfiguration, _projectionVersion, _positionTagger, _from, _publisher, _ioDispatcher, this);

                if (_started)
                    stream.Start();
                _emittedStreams.Add(streamId, stream);
            }
            stream.EmitEvents(emittedEvents.Select(v => v.Event).ToArray());
        }
Exemplo n.º 2
0
        private void EmitEventsToStream(string streamId, EmittedEventEnvelope[] emittedEvents)
        {
            if (streamId == null)
            {
                throw new ArgumentNullException("streamId");
            }
            EmittedStream stream;

            if (!_emittedStreams.TryGetValue(streamId, out stream))
            {
                var streamMetadata = emittedEvents.Length > 0 ? emittedEvents[0].StreamMetadata : null;

                var writerConfiguration = new EmittedStream.WriterConfiguration(
                    streamMetadata, _runAs, maxWriteBatchLength: _maxWriteBatchLength, logger: _logger);

                stream = new EmittedStream(
                    streamId, writerConfiguration, _projectionVersion, _positionTagger, _from, _ioDispatcher, this);

                if (_started)
                {
                    stream.Start();
                }
                _emittedStreams.Add(streamId, stream);
            }
            stream.EmitEvents(emittedEvents.Select(v => v.Event).ToArray());
        }
Exemplo n.º 3
0
 public override void Initialize()
 {
     base.Initialize();
     _lastOrderCheckpointTag = null;
     if (_orderStream != null)
     {
         _orderStream.Dispose();
     }
     _orderStream = null;
 }
Exemplo n.º 4
0
        private void EmitEventsToStream(string streamId, EmittedEvent[] emittedEvents)
        {
            EmittedStream stream;

            if (!_emittedStreams.TryGetValue(streamId, out stream))
            {
                stream = new EmittedStream(
                    streamId, _projectionVersion, _runAs, _positionTagger, _zero, _from, _readDispatcher,
                    _writeDispatcher, this /*_recoveryMode*/, maxWriteBatchLength: _maxWriteBatchLength, logger: _logger);
                if (_started)
                {
                    stream.Start();
                }
                _emittedStreams.Add(streamId, stream);
            }
            stream.EmitEvents(emittedEvents);
        }
Exemplo n.º 5
0
        private void EmitEventsToStream(
            string streamId, EmittedEvent[] emittedEvents, CheckpointTag position)
        {
            EmittedStream stream;

            if (!_emittedStreams.TryGetValue(streamId, out stream))
            {
                stream = new EmittedStream(
                    streamId, _publisher, this, recoveryMode: true /*_recoveryMode*/, maxWriteBatchLength: _maxWriteBatchLength,
                    logger: _logger);
                if (_started)
                {
                    stream.Start();
                }
                _emittedStreams.Add(streamId, stream);
            }
            stream.EmitEvents(emittedEvents, position);
        }
Exemplo n.º 6
0
 public override void Start(CheckpointTag checkpointTag)
 {
     base.Start(checkpointTag);
     _orderStream = CreateOrderStream(checkpointTag);
     _orderStream.Start();
 }
Exemplo n.º 7
0
 public override void Start(CheckpointTag checkpointTag, PartitionState rootPartitionState)
 {
     base.Start(checkpointTag, rootPartitionState);
     _orderStream = CreateOrderStream(checkpointTag);
     _orderStream.Start();
 }