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); } }
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); } }