private static bool PushIfCompatibleType( ILazyMessageStreamEnumerable lazyStream, int messageId, TMessage message, CancellationToken cancellationToken, out Task messageProcessingTask) { if (message == null) { messageProcessingTask = Task.CompletedTask; return(false); } if (lazyStream.MessageType.IsInstanceOfType(message)) { var pushedMessage = new PushedMessage(messageId, message, message); messageProcessingTask = lazyStream.GetOrCreateStream().PushAsync(pushedMessage, cancellationToken); return(true); } var envelope = message as IEnvelope; if (envelope?.Message != null && envelope.AutoUnwrap && lazyStream.MessageType.IsInstanceOfType(envelope.Message)) { var pushedMessage = new PushedMessage(messageId, envelope.Message, message); messageProcessingTask = lazyStream.GetOrCreateStream().PushAsync(pushedMessage, cancellationToken); return(true); } messageProcessingTask = Task.CompletedTask; return(false); }
private static LazyMessageStreamObservable <TMessage> CreateObservable <TMessage>( ILazyMessageStreamEnumerable <TMessage> enumerable) =>
public LazyMessageStreamObservable(ILazyMessageStreamEnumerable <TMessage> lazyStream) { _lazyStream = lazyStream; }