Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        //[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);
        }
Esempio n. 4
0
 public static void CheckAndReset(this ColumnMemoryStream stream, int position)
 {
     stream.Position.Check(position);
     stream.Reset();
 }