public static Streamable <IEnumerable <T> > Buffer <T>(this Streamable <T> source, int bufferSize) { var streamable = new BufferImpl <T>(bufferSize); source.Subscribe(streamable); return(streamable); }
protected override IDisposable Run(IObserver <IList <TSource> > observer, IDisposable cancel, Action <IDisposable> setSink) { if (_scheduler == null) { var sink = new _(this, observer, cancel); setSink(sink); return(sink.Run()); } else if (_count > 0) { var sink = new Impl(this, observer, cancel); setSink(sink); return(sink.Run()); } else { if (_timeSpan == _timeShift) { var sink = new BufferTimeShift(this, observer, cancel); setSink(sink); return(sink.Run()); } else { var sink = new BufferImpl(this, observer, cancel); setSink(sink); return(sink.Run()); } } }
public static Dim Parse(WordReader reader, uint wordCount) { var id = (Enumerant)reader.ReadWord(); switch (id) { case Enumerant.Dim1D: return(Dim1DImpl.Parse(reader, wordCount - 1)); case Enumerant.Dim2D: return(Dim2DImpl.Parse(reader, wordCount - 1)); case Enumerant.Dim3D: return(Dim3DImpl.Parse(reader, wordCount - 1)); case Enumerant.Cube: return(CubeImpl.Parse(reader, wordCount - 1)); case Enumerant.Rect: return(RectImpl.Parse(reader, wordCount - 1)); case Enumerant.Buffer: return(BufferImpl.Parse(reader, wordCount - 1)); case Enumerant.SubpassData: return(SubpassDataImpl.Parse(reader, wordCount - 1)); default: throw new IndexOutOfRangeException("Unknown Dim " + id); } }