public unsafe void MemoryStreamTests() { var data1 = Factory.CreateRandomBytes(1024 * 3 + 500); var memory = new ColumnMemoryStream(1024); fixed(byte *p = data1) memory.Write(p, data1.Length); memory.Reset(); var data2 = new byte[1024]; fixed(byte *p = data2) memory.Read(p, data2.Length); data1.Check(0, data2, 0, data2.Length); fixed(byte *p = data2) memory.Read(p, data2.Length); data1.Check(1024, data2, 0, data2.Length); fixed(byte *p = data2) memory.Read(p, data2.Length); data1.Check(1024 * 2, data2, 0, data2.Length); fixed(byte *p = data2) memory.Read(p, data2.Length); data1.Check(1024 * 3, data2, 0, 500); }
private static IColumnCursor <T> CreateCursor <TEntry, T>(TEntry[] chunk) where TEntry : unmanaged, IFieldEntry <T> { var memory = new ColumnMemoryStream(chunk.Length * sizeof(TEntry)); memory.WriteAndReset(chunk, sizeof(TEntry)); return(new ColumnCursor <TEntry, T, ColumnMemoryStream>(new DummyPinnedAllocator(), memory)); }
//[Benchmark(Description = "Full Template")] //public int FullTemplateCodec() //{ // var read = 0; // for (var i = 0; i < WROTE; i += READ) // read += _csFullTemplateCodec.Read(_rData, READ); // return read; //} private ColumnStreamFullStream <ColumnMemoryStream, TCodec> CreateCsb <TCodec>(TCodec codec, byte[] data) where TCodec : ICodecFullStream { var memory = new ColumnMemoryStream(); var stream = new ColumnStreamFullStream <ColumnMemoryStream, TCodec>(memory, codec, _allocator, 1024); stream.WriteAndReset(data, sizeof(byte)); _streams.Add(stream); return(stream); }
public static void CheckAndReset(this ColumnMemoryStream stream, int position) { stream.Position.Check(position); stream.Reset(); }