Пример #1
0
            /// <summary>
            /// Chunks the buffer, calling back when chunks complete.
            /// </summary>
            public void PushBuffer(byte[] buffer, int startOffset, int count)
            {
                checked
                {
                    while (count > 0)
                    {
                        while (count > 0 && _bytesInPushBuffer < MinPushBufferSize)
                        {
                            _pushBuffer.Value[_bytesInPushBuffer] = buffer[startOffset];
                            startOffset++;
                            _bytesInPushBuffer++;
                            count--;
                        }

                        if (_bytesInPushBuffer == MinPushBufferSize)
                        {
                            _regressionChunker.PushBuffer(new ArraySegment <byte>(_pushBuffer.Value));

                            _lastBufferFileOffset = _bufferFileOffset;
                            _lastPushBuffer?.Dispose();
                            _lastPushBuffer = _pushBuffer;

                            _bufferFileOffset += MinPushBufferSize;
                            _pushBuffer        = pool.Get();
                            _bytesInPushBuffer = 0;
                        }
                    }
                }
            }
Пример #2
0
 /// <summary>
 /// Chunks the buffer, calling back when chunks complete.
 /// </summary>
 public void PushBuffer(byte[] buffer, int startOffset, int count)
 {
     _currentBuffer = new ArraySegment <byte>(buffer, startOffset, count);
     _regressionChunker.PushBuffer(_currentBuffer.Value);
 }