public CachedHexStream(ISimpleHexStream simpleHexStream) { this.simpleHexStream = simpleHexStream; pageSize = simpleHexStream.PageSize; Debug.Assert(pageSize == 0 || IsPowerOfTwo(pageSize)); if (pageSize == 0 || !IsPowerOfTwo(pageSize)) { pageSize = DEFAULT_PAGE_SIZE; } if (pageSize > MAX_PAGE_SIZE) { pageSize = MAX_PAGE_SIZE; } Debug.Assert(pageSize >= MIN_PAGE_SIZE); if (pageSize < MIN_PAGE_SIZE) { pageSize = MIN_PAGE_SIZE; } Debug.Assert(IsPowerOfTwo(pageSize)); this.pageSizeMask = pageSize - 1; int numCachedPages = (int)((CACHE_SIZE + pageSizeMask) / pageSize); this.cachedPages = new CachedPage[numCachedPages]; for (int i = 0; i < this.cachedPages.Length; i++) { this.cachedPages[i] = new CachedPage(i, (int)pageSize); } }
public CachedHexStream(ISimpleHexStream simpleHexStream) { this.simpleHexStream = simpleHexStream; pageSize = simpleHexStream.PageSize; Debug.Assert(pageSize == 0 || IsPowerOfTwo(pageSize)); if (pageSize == 0 || !IsPowerOfTwo(pageSize)) pageSize = DEFAULT_PAGE_SIZE; if (pageSize > MAX_PAGE_SIZE) pageSize = MAX_PAGE_SIZE; Debug.Assert(pageSize >= MIN_PAGE_SIZE); if (pageSize < MIN_PAGE_SIZE) pageSize = MIN_PAGE_SIZE; Debug.Assert(IsPowerOfTwo(pageSize)); this.pageSizeMask = pageSize - 1; int numCachedPages = (int)((CACHE_SIZE + pageSizeMask) / pageSize); this.cachedPages = new CachedPage[numCachedPages]; for (int i = 0; i < this.cachedPages.Length; i++) this.cachedPages[i] = new CachedPage(i, (int)pageSize); }