Пример #1
0
        public Task SubscribeToAllStreams(Action <RecordedEvent, Position> eventAppeared, Action subscriptionDropped)
        {
            var id     = Guid.NewGuid();
            var source = new TaskCompletionSource <object>();

            if (_subscriptions.TryAdd(id, new Subscription(source, id, eventAppeared, subscriptionDropped)))
            {
                var subscribe = new ClientMessage.SubscribeToAllStreams();
                var pkg       = new TcpPackage(TcpCommand.SubscribeToAllStreams, id, subscribe.Serialize());
                _connection.EnqueueSend(pkg.AsByteArray());
            }
            else
            {
                source.SetException(new Exception("Failed to add subscription to all streams. Concurrency failure"));
            }

            return(source.Task);
        }
Пример #2
0
 public void Handle(ClientMessage.SubscribeToAllStreams message)
 {
     _subscribedToAll.Add(Tuple.Create(message.CorrelationId, message.Connection));
 }