public static Completion MergeFrom(this Completion proto, CompletionHeader message) { proto = proto ?? new Completion(); proto.Status = ConvertToProto(message.Status); proto.Error = message.Error.HasValue ? MergeFrom(proto.Error, message.Error.Value) : null; return(proto); }
public ITransportConnectionCloseHeader CreateConnectionCloseHeader(CompletionHeader completion) { var header = TransportConnectionCloseHeader.Rent(); header.Completion = completion; return(header); }
private async Task SendCloseMessageAsync(Exception error = null) { var closeHeader = _headerFactory.CreateChannelCloseHeader( ChannelId, error == null ? CompletionHeader.Completed : error is OperationCanceledException ? CompletionHeader.Canceled : CompletionHeader.Failed(GetErrorHeader(error))); await SendAsync(closeHeader).ConfigureAwait(false); }
private async Task CloseConnectionAsync(Exception error, IWriteOnlyChannel <TransportMessage> output) { ITransportConnectionCloseHeader closeHeader; if (error is OperationCanceledException) { closeHeader = _transportHeaderFactory.CreateConnectionCloseHeader(CompletionHeader.Canceled); } else { closeHeader = _transportHeaderFactory.CreateConnectionCloseHeader(CompletionHeader.Failed(GetErrorHeader(error))); } await SendAsync(new TransportMessage(closeHeader), output).ConfigureAwait(false); }
public ITransportChannelCloseHeader CreateChannelCloseHeader(UniqueId channelId, CompletionHeader completion) { var header = TransportChannelCloseHeader.Rent(); header.ChannelId = channelId; header.Completion = completion; return(header); }
protected override void Cleanup() { ChannelId = default; Completion = default; }
protected override void Cleanup() { Completion = default; }