protected override void DeserializeChangesCore(BatchStreamReader reader, TimeSpan commitedAt) { if (reader.Read <byte>() == 1) { _renderCommands?.Dispose(); _renderCommands = reader.ReadObject <CompositionDrawList?>(); _contentBounds = null; } base.DeserializeChangesCore(reader, commitedAt); }
protected override void DeserializeChangesCore(BatchStreamReader reader, TimeSpan commitedAt) { if (reader.Read <byte>() == 1) { List.Clear(); var count = reader.Read <int>(); for (var c = 0; c < count; c++) { List.Add(reader.ReadObject <T>()); } } base.DeserializeChangesCore(reader, commitedAt); }
public void BatchStreamCorrectlyWritesAndReadsData() { var data = new BatchStreamData(); var memPool = new BatchStreamMemoryPool(100, _ => { }); var objPool = new BatchStreamObjectPool <object>(10, _ => { }); var guids = new List <Guid>(); var objects = new List <object>(); for (var c = 0; c < 453; c++) { guids.Add(Guid.NewGuid()); objects.Add(new object()); } using (var writer = new BatchStreamWriter(data, memPool, objPool)) { foreach (var guid in guids) { writer.Write(guid); } foreach (var obj in objects) { writer.WriteObject(obj); } } using (var reader = new BatchStreamReader(data, memPool, objPool)) { foreach (var guid in guids) { Assert.Equal(guid, reader.Read <Guid>()); } foreach (var obj in objects) { Assert.Equal(obj, reader.ReadObject()); } } }