示例#1
0
        private void WriteData(Block block, FileStream fileStream)
        {
            // Create back link to previous spilled block.
            var lastFilePosition = new[] { _filePosition };

            _filePosition = (int)fileStream.Position;
            FastWrite.WriteInts(fileStream.SafeFileHandle, lastFilePosition, 0, 1);

            // Write one data block.
            if (typeof(TData) == typeof(short))
            {
                FastWrite.WriteShorts(fileStream.SafeFileHandle, (short[])(object)block._data, 0, _blockSize);
            }
            else if (typeof(TData) == typeof(int))
            {
                FastWrite.WriteInts(fileStream.SafeFileHandle, (int[])(object)block._data, 0, _blockSize);
            }
            else if (typeof(TData) == typeof(float))
            {
                FastWrite.WriteFloats(fileStream.SafeFileHandle, (float[])(object)block._data, 0, _blockSize);
            }
            else
            {
                Assume.Fail();
            }
        }