Пример #1
0
        public void CacheLastPageIfNeeded(long position, TailLoaderDelegate loader)
        {
            Ensure.Nonnegative(position, "position");
            Ensure.NotNull(loader, "loader");

            if (position == 0) return;
            var total = (int)(position / _pageSizeInBytes);
            var remainder = (int)(position % _pageSizeInBytes);

            _fullPagesFlushed = (int)total;
            if (remainder != 0)
            {
                // we need to preload data
                _bytesPending = remainder;
                var tip = loader(position - remainder, remainder);
                _pending.Write(tip, 0, remainder);
            }
        }
Пример #2
0
        public void CacheLastPageIfNeeded(long position, TailLoaderDelegate loader)
        {
            Ensure.Nonnegative(position, "position");
            Ensure.NotNull(loader, "loader");

            if (position == 0)
            {
                return;
            }
            var total     = (int)(position / _pageSizeInBytes);
            var remainder = (int)(position % _pageSizeInBytes);

            _fullPagesFlushed = (int)total;
            if (remainder != 0)
            {
                // we need to preload data
                _bytesPending = remainder;
                var tip = loader(position - remainder, remainder);
                _pending.Write(tip, 0, remainder);
            }
        }