public ChannelMessage(ITransportChannelHeader header, Maybe <IPooledBuffer> payload) { if (payload.HasValue && payload.Value == null) { throw new ArgumentException(nameof(payload)); } Header = header; Payload = payload; }
private Nothing Handle(ITransportChannelHeader header, Nothing _) { switch (_state) { case State.Connected: break; default: throw new ProtocolException($"Received unexpected header of type {header.GetType()} in state {_state}"); } return(_); }
private async Task HandleChannelHeaderAsync(ITransportChannelHeader header, Maybe <IPooledBuffer> payload) { var message = new ChannelMessage(header, payload); try { await _buffer.Out.WriteAsync(message).ConfigureAwait(false); } catch { message.Dispose(); throw; } }
private async Task SendAsync(ITransportChannelHeader header, Maybe <IPooledBuffer> body = default) { try { _log.Trace("Sending: {0} with body {1}", header, body); await _out.WriteAsync(new ChannelMessage(header, body)).ConfigureAwait(false); } catch { header.Dispose(); if (body.HasValue) { body.Value.Dispose(); } throw; } }
private Task SendAsync(ITransportChannelHeader header, IPooledBuffer body) => SendAsync(header, new Maybe <IPooledBuffer>(body));
public IPooledBuffer Handle(ITransportChannelHeader header, Nothing _) { return(header.Handle(_channelHeaderHandler)); }
public ChannelMessage(ITransportChannelHeader header, IPooledBuffer payload) : this(header, new Maybe <IPooledBuffer>(payload)) { }
public ChannelMessage(ITransportChannelHeader header) : this(header, Maybe <IPooledBuffer> .Nothing) { }
public T Handle(ITransportChannelHeader header, TArgs args) { return(_handleChannelHeader(header, args)); }
public Maybe <int> Handle(ITransportChannelHeader header, Nothing _) { return(header.Handle(new TransportChannelHeaderHandler <Maybe <int>, Nothing>(this), _)); }
public ChannelMessage(ITransportChannelHeader header, Maybe <IPooledBuffer> payload) { Header = header; Payload = payload; }