internal projectInvoke(StreamSpan <byte[]> span, string _stream, FSharpAsyncBuilder builder, IProjector projectorHandler) { this.span = span; this._stream = _stream; this.builder = builder; _projectorHandler = projectorHandler; }
protected override Task <Stream> ValueToStreamAsync(Stream s) { using var fileStream = FileInfo.OpenRead(); using var streamSlice = new StreamSpan(fileStream, Offset, Length); streamSlice.CopyTo(s, _bufferLength); return(Task.FromResult(s)); }
private static void ProcessTodoStream(string streamId, StreamSpan <byte[]> streamData) { foreach (var streamEvent in streamData.events) { var processedEvent = Todo.Event.TryDecode(streamEvent.EventType, streamEvent.Data); } }
public override FSharpAsync <Unit> Invoke(Tuple <string, StreamSpan <byte[]> > tupledArg) { string _stream = tupledArg.Item1; StreamSpan <byte[]> span = tupledArg.Item2; FSharpAsyncBuilder defaultAsyncBuilder = ExtraTopLevelOperators.DefaultAsyncBuilder; return(defaultAsyncBuilder.Delay(new projectInvoke(span, _stream, defaultAsyncBuilder, _projectorHandler))); }
public TagStream(ulong tagId, StreamSpan stream) { _stream = stream.Required(); _tagId = tagId.AsILInt(); _contentLength = ((ulong)_stream.Length).AsILInt(); _length = _tagId.Length + _contentLength.Length + _stream.Length; _position = 0; }
private void ProcessTodoStream(string streamId, StreamSpan <byte[]> streamData) { foreach (var streamEvent in streamData.events) { var processedEvent = Todo.Event.TryDecode(streamEvent.EventType, streamEvent.Data); Log.Debug("Processed Event: {Event}", processedEvent); } }
protected sealed override T DeserializeInner(Stream s) { if ((_valueLength ??= s.ILIntDecode()) > int.MaxValue && KeepEncodedBytesInMemory) { throw new InvalidDataException("Tag content is TOO BIG to deserialize!"); } using var ss = new StreamSpan(s, _valueLength.Value); return(ValueFromStream(ss)); }
public static FSharpAsync <Unit> Test(StreamSpan <byte[]> stream) { Log.Debug("Got this:{0}", stream.ToString()); foreach (var streamEvent in stream.events) { FsCodec.Codec. } return(FSharpAsync.Sleep(1)); }
public Task Project(string _stream, StreamSpan <byte[]> span) { Log.Debug("Got this:{0}", span.ToString()); var name = _stream.Split(new char['-'], 2, StringSplitOptions.RemoveEmptyEntries)[0]; var id = _stream.Split(new char['-'], 2, StringSplitOptions.RemoveEmptyEntries)[1]; name switch { nameof(Todo) => ProcessTodoStream(id, span), _ => throw new NotImplementedException(), }; return(Task.CompletedTask); throw new NotImplementedException(); }
public Task Project(string _stream, StreamSpan <byte[]> span) { Log.Debug("Got this:{0}", span.ToString()); var name = _stream.Split('-', 2, StringSplitOptions.RemoveEmptyEntries)[0]; var id = _stream.Split('-', 2, StringSplitOptions.RemoveEmptyEntries)[1]; switch (name) { case "Todos": ProcessTodoStream(id, span); break; default: throw new NotImplementedException(); } return(Task.CompletedTask); }
public static Task Test(string streamName, StreamSpan <byte[]> streamData) { Log.Debug("Got this:{0}", streamData.ToString()); var name = streamName.Split(new char['-'], 2, StringSplitOptions.RemoveEmptyEntries)[0]; var id = streamName.Split(new char['-'], 2, StringSplitOptions.RemoveEmptyEntries)[1]; switch (name) { case nameof(Todo): ProcessTodoStream(id, streamData); break; } return(Task.CompletedTask); }
protected override T ValueFromStream(StreamSpan s) => new T().FromStream(s);
protected override byte[] ValueFromStream(StreamSpan s) => s.ReadAllBytesAsync().Result;
protected override Task <Stream> ValueToStreamAsync(Stream s) { using var streamSlice = new StreamSpan(_mmvs, Offset, Length); streamSlice.CopyTo(s, _bufferLength); return(Task.FromResult(s)); }
protected override T ValueFromStream(StreamSpan s) => default;
private static void TestSkippingOn(Stream baseStream) { baseStream.Seek(10, SeekOrigin.Begin); Assert.AreEqual(10L, baseStream.Position); baseStream.WriteByte(30); baseStream.Seek(10, SeekOrigin.Begin); Assert.AreEqual(10L, baseStream.Position); using (var sp = new StreamSpan(baseStream, (ulong)baseStream.ReadByte())) { Assert.AreEqual(30L, sp.Length); Assert.AreEqual(0L, sp.Position); Assert.AreEqual(11L, baseStream.Position); Assert.AreEqual(baseStream.Position, sp.OriginalPosition); _ = sp.ReadBytes(20); Assert.AreEqual(20L, sp.Position); Assert.AreEqual(31L, baseStream.Position); Assert.AreEqual(baseStream.Position, sp.OriginalPosition); if (sp.CanSeek) { sp.Position = 30; Assert.AreEqual(41L, baseStream.Position); Assert.AreEqual(baseStream.Position, sp.OriginalPosition); sp.Position = 5; Assert.AreEqual(16L, baseStream.Position); Assert.AreEqual(baseStream.Position, sp.OriginalPosition); sp.Seek(30, SeekOrigin.Begin); Assert.AreEqual(41L, baseStream.Position); Assert.AreEqual(baseStream.Position, sp.OriginalPosition); sp.Position = 5; Assert.AreEqual(16L, baseStream.Position); Assert.AreEqual(baseStream.Position, sp.OriginalPosition); sp.Seek(0, SeekOrigin.End); Assert.AreEqual(41L, baseStream.Position); Assert.AreEqual(baseStream.Position, sp.OriginalPosition); sp.Position = 5; Assert.AreEqual(16L, baseStream.Position); Assert.AreEqual(baseStream.Position, sp.OriginalPosition); sp.Seek(25, SeekOrigin.Current); Assert.AreEqual(41L, baseStream.Position); Assert.AreEqual(baseStream.Position, sp.OriginalPosition); sp.Position = 5; Assert.AreEqual(16L, baseStream.Position); Assert.AreEqual(baseStream.Position, sp.OriginalPosition); using (var ss = new StreamSpan(sp, 20)) { Assert.AreEqual(0L, ss.Position); Assert.AreEqual(5L, sp.Position); Assert.AreEqual(baseStream.Position, ss.OriginalPosition); Assert.AreEqual(16L, baseStream.Position); ss.Seek(8, SeekOrigin.Current); Assert.AreEqual(8L, ss.Position); Assert.AreEqual(13L, sp.Position); Assert.AreEqual(baseStream.Position, ss.OriginalPosition); Assert.AreEqual(24L, baseStream.Position); } } } Assert.AreEqual(41L, baseStream.Position); using (var sp2 = new StreamSpan(baseStream, (ulong)(baseStream.Length - baseStream.Position))) { Assert.AreEqual(0L, sp2.Position); Assert.AreEqual(41L, baseStream.Position); Assert.AreEqual(baseStream.Position, sp2.OriginalPosition); _ = sp2.ReadBytes(20); Assert.AreEqual(20L, sp2.Position); Assert.AreEqual(61L, baseStream.Position); Assert.AreEqual(baseStream.Position, sp2.OriginalPosition); } Assert.AreEqual(baseStream.Length, baseStream.Position); }