public void EmptyPolicy() { var policy = new PagePrefetchAndRetainPolicy(); var key = new PageKey(Guid.Empty, 1, ScreenWidth); var context = new PageCacheContext(ScreenWidth, GetLibrary(0)); Assert.IsFalse(policy.MustRetain(key, context), "not retain with empty library"); var dict = GetCacheDict(0); CollectionAssert.IsEmpty(policy.KeysToRemove(dict, context), "no keys exist"); dict = GetCacheDict(5); CollectionAssert.AreEquivalent(dict.Keys, policy.KeysToRemove(dict, context), "return all keys"); CollectionAssert.IsEmpty(policy.PrefetchKeyOrder(context), "prefetch list empty"); }
protected PageImage CreatePageImage(PageKey key, int pageWidth) { if (pageWidth == 0) { var layout = GetPageLayout(key.PageNum, key.ScreenWidth); pageWidth = ((float)key.ScreenWidth / layout.UnitBounds.Width).Round(); } _lastPageWidth = pageWidth; Bitmap b = BookProvider.o.RenderPageImage(key.PageNum, new Size(pageWidth, int.MaxValue), RenderQuality.Optimal); return new PageImage(key, b); }
public PageImage GetPageImage(int pageNum, int screenWidth) { var layout = GetPageLayout(pageNum, screenWidth); var bmp = BookProvider.o.RenderPageImage(pageNum, new Size(screenWidth, int.MaxValue)); var key = new PageKey(Book.Id, pageNum, screenWidth); return new PageImage(key, bmp); }
PageImage GetPageImage(int pageNum, int screenWidth, int pageWidth) { // TODO: revise locking lock (this) { PageKey key = new PageKey(Book.Id, pageNum, screenWidth); PageImage image; // Try to get from cache if (ImageCache != null) { image = ImageCache.o.Get(key); if (image != null) { return image; } } // Create image = CreatePageImage(key, pageWidth); // Save to cache if (ImageCache != null) { image.DisposeOnReturn = false; ImageCache.o.Add(key, image); } return image; } }