public byte[] Get(int page, double height) { SoraxPDFRendererCacheEntry cache_entry = GetCacheEntry(page, height); if (null != cache_entry) { return(cache_entry.image); } else { return(null); } }
private SoraxPDFRendererCacheEntry GetCacheEntry(int page, double height) { for (int i = 0; i < cache_entries.Count; ++i) { SoraxPDFRendererCacheEntry cache_entry = cache_entries[i]; if (cache_entry.page == page && cache_entry.height == height) { return(cache_entry); } } return(null); }
public void Put(int page, double height, byte[] image) { // Nothing to do if we have the Image, except perhaps store the latest version SoraxPDFRendererCacheEntry cache_entry = GetCacheEntry(page, height); if (null != cache_entry) { cache_entry.image = image; } else { // We have to bump someopne from the cache... if (cache_entries.Count > CACHE_SIZE) { cache_entries.RemoveAt(0); } // ...and add the new guy cache_entries.Add(new SoraxPDFRendererCacheEntry { page = page, height = height, image = image }); } }