2using System.Collections.Generic;
11 internal class MessageStatus
14 public Dictionary<IPEndPoint, bool?> Acknowledged =
new Dictionary<IPEndPoint, bool?>();
15 public IClusterMessage Message;
16 public byte[] MessageBinary;
17 public DateTime Timeout;
18 public DateTime TimeLimit;
19 public EventHandlerAsync<ClusterMessageAckEventArgs> Callback;
27 public bool IsComplete(EndpointStatus[] Statuses)
29 lock (this.Acknowledged)
31 foreach (EndpointStatus Status
in Statuses)
33 if (!this.Acknowledged.ContainsKey(Status.Endpoint))
45 public EndpointAcknowledgement[] GetResponses(EndpointStatus[] Statuses)
47 EndpointAcknowledgement[] Result;
50 lock (this.Acknowledged)
52 foreach (EndpointStatus Status
in Statuses)
54 if (!this.Acknowledged.ContainsKey(Status.Endpoint))
55 this.Acknowledged[Status.Endpoint] =
null;
58 Result =
new EndpointAcknowledgement[c = this.Acknowledged.Count];
61 foreach (KeyValuePair<IPEndPoint, bool?> P
in this.Acknowledged)
62 Result[i++] =
new EndpointAcknowledgement(P.Key, P.Value);