예제 #1
0
        public void ClientRemoved(PersistentSubscriptionClient client)
        {
            var nodeId = client.CorrelationId;

            client.EventConfirmed -= OnEventRemoved;

            _state.DisconnectNode(nodeId);
        }
        public void ClientRemoved(PersistentSubscriptionClient client)
        {
            var nodeId = client.CorrelationId;

            client.EventConfirmed -= OnEventRemoved;

            _state.DisconnectNode(nodeId);
        }
예제 #3
0
        public void ClientAdded(PersistentSubscriptionClient client)
        {
            lock (_stateLock) {
                var newNode = new Node(client);

                _state.AddNode(newNode);

                client.EventConfirmed += OnEventRemoved;
            }
        }
예제 #4
0
 public Node(Guid connectionId, Guid nodeId, string host, int port, NodeState state, PersistentSubscriptionClient client, int maximumInFlightMessages, int assignmentCount)
 {
     ConnectionId            = connectionId;
     NodeId                  = nodeId;
     Host                    = host;
     Port                    = port;
     State                   = state;
     Client                  = client;
     MaximumInFlightMessages = maximumInFlightMessages;
     AssignmentCount         = assignmentCount;
 }
예제 #5
0
파일: Node.cs 프로젝트: czcz1024/EventStore
 public Node(Guid connectionId, Guid nodeId, string host, int port, NodeState state, PersistentSubscriptionClient client, int maximumInFlightMessages, int assignmentCount)
 {
     ConnectionId = connectionId;
     NodeId = nodeId;
     Host = host;
     Port = port;
     State = state;
     Client = client;
     MaximumInFlightMessages = maximumInFlightMessages;
     AssignmentCount = assignmentCount;
 }
        public void ClientAdded(PersistentSubscriptionClient client)
        {
            lock (_stateLock)
            {
                var newNode = new Node(client);

                _state.AddNode(newNode);

                client.EventConfirmed += OnEventRemoved;
            }
        }
 public void ClientRemoved(PersistentSubscriptionClient client)
 {
     if (!Clients.Contains(client))
     {
         throw new InvalidOperationException("Only added clients can be removed.");
     }
     var temp = Clients.ToList();
     var indexOf = temp.IndexOf(client);
     temp.RemoveAt(indexOf);
     Clients.Clear();
     foreach (var persistentSubscriptionClient in temp)
     {
         Clients.Enqueue(persistentSubscriptionClient);
     }
 }
예제 #8
0
        public void ClientRemoved(PersistentSubscriptionClient client)
        {
            if (!Clients.Contains(client))
            {
                throw new InvalidOperationException("Only added clients can be removed.");
            }
            var temp    = Clients.ToList();
            var indexOf = temp.IndexOf(client);

            temp.RemoveAt(indexOf);
            Clients.Clear();
            foreach (var persistentSubscriptionClient in temp)
            {
                Clients.Enqueue(persistentSubscriptionClient);
            }
        }
예제 #9
0
파일: Node.cs 프로젝트: czcz1024/EventStore
        public Node(PersistentSubscriptionClient client)
        {
            Client = client;
            ConnectionId = client.ConnectionId;
            NodeId = client.CorrelationId;

            var portSplit = client.From.IndexOf(':');
            if (portSplit == -1)
            {
                Host = client.From;
            }
            else
            {
                Host = client.From.Substring(0, portSplit);
                Port = Int32.Parse(client.From.Substring(portSplit + 1));
            }

            State = NodeState.Connected;
            MaximumInFlightMessages = client.MaximumInFlightMessages;
        }
예제 #10
0
        public Node(PersistentSubscriptionClient client)
        {
            Client       = client;
            ConnectionId = client.ConnectionId;
            NodeId       = client.CorrelationId;

            var portSplit = client.From.IndexOf(':');

            if (portSplit == -1)
            {
                Host = client.From;
            }
            else
            {
                Host = client.From.Substring(0, portSplit);
                Port = Int32.Parse(client.From.Substring(portSplit + 1));
            }

            State = NodeState.Connected;
            MaximumInFlightMessages = client.MaximumInFlightMessages;
        }
예제 #11
0
        private void OnEventRemoved(PersistentSubscriptionClient client, ResolvedEvent ev)
        {
            var assignmentId = GetAssignmentId(ev);

            _state.EventRemoved(client.CorrelationId, assignmentId);
        }
예제 #12
0
        private static void Main()
        {
            var subscription = new PersistentSubscriptionClient();

            subscription.Start();
        }
 private void OnEventRemoved(PersistentSubscriptionClient client, ResolvedEvent ev)
 {
     var assignmentId = GetAssignmentId(ev);
     _state.EventRemoved(client.CorrelationId, assignmentId);
 }
 public void ClientAdded(PersistentSubscriptionClient client)
 {
     Clients.Enqueue(client);
 }
예제 #15
0
 public void ClientAdded(PersistentSubscriptionClient client)
 {
     Clients.Enqueue(client);
 }