11 internal class MessageStatus
14 public Dictionary<IPEndPoint, bool?> Acknowledged =
new Dictionary<IPEndPoint, bool?>();
15 public IClusterMessage Message;
16 public IPEndPoint Destination;
17 public byte[] MessageBinary;
18 public DateTime Timeout;
19 public DateTime TimeLimit;
20 public EventHandlerAsync<ClusterMessageAckEventArgs> Callback;
28 public bool IsComplete(EndpointStatus[] Statuses)
30 lock (this.Acknowledged)
32 foreach (EndpointStatus Status
in Statuses)
34 if (!this.Acknowledged.ContainsKey(Status.Endpoint))
46 public EndpointAcknowledgement[] GetResponses(EndpointStatus[] Statuses)
48 EndpointAcknowledgement[] Result;
51 lock (this.Acknowledged)
53 foreach (EndpointStatus Status
in Statuses)
55 if (!this.Acknowledged.ContainsKey(Status.Endpoint))
56 this.Acknowledged[Status.Endpoint] =
null;
59 Result =
new EndpointAcknowledgement[c = this.Acknowledged.Count];
62 foreach (KeyValuePair<IPEndPoint, bool?> P
in this.Acknowledged)
63 Result[i++] =
new EndpointAcknowledgement(P.Key, P.Value);