private StorageMessageUnion ReadReply(StorageMessageType responses) { var iterator = MessageStreamIterator <StorageMessageUnion> .FromStreamProvider(() => new UndisposableStream(stream)); var union = iterator.First(); if (union.Type == StorageMessageType.TopologyChangedError) { throw new TopologyVersionDoesNotMatchException(); } if (union.Type == StorageMessageType.SeeOtherError) { throw new SeeOtherException { Endpoint = union.SeeOtherError.Other.GetNodeEndpoint() }; } if (union.Type == StorageMessageType.StorageErrorResult) { throw new RemoteNodeException(union.Exception.Message); } if (union.Type != responses) { throw new UnexpectedReplyException("Got reply " + union.Type + " but expected " + responses); } return(union); }
private StorageMessageUnion ReadReply(StorageMessageType responses) { var iterator = MessageStreamIterator<StorageMessageUnion>.FromStreamProvider(() => new UndisposableStream(stream)); var union = iterator.First(); if(union.Type==StorageMessageType.TopologyChangedError) throw new TopologyVersionDoesNotMatchException(); if(union.Type==StorageMessageType.SeeOtherError) { throw new SeeOtherException { Endpoint = union.SeeOtherError.Other.GetNodeEndpoint() }; } if (union.Type == StorageMessageType.StorageErrorResult) throw new RemoteNodeException(union.Exception.Message); if (union.Type != responses) throw new UnexpectedReplyException("Got reply " + union.Type + " but expected " + responses); return union; }