private void OnOpenCompletedEventHandler(APdfRequest <OpenArguments, object> .InOutTuple o, PdfViewerException ex) { if (ex == null) { // Default page order - normal behaviour _pageOrder = new List <int>(Enumerable.Range(1, document.PageCount)); InversePageOrder = _pageOrder; } else { // opening request failed doing nothing } }
private void OnCloseCompletedEventHandler(APdfRequest <bool, object> .InOutTuple o, PdfViewerException ex) { if (ex == null) { // invalidate caches pageCache.InvalidateCache(); textFragmentCache.InvalidateCache(); thumbnailCache.InvalidateCache(); } else { // closing failed. keep caches } }
private APdfRequest <Arguments, ObjectToCache> loadAsync(Arguments args) { lock (dictLock) { if (!pendingRequests.ContainsKey(args) && (!dict.ContainsKey(args) || guessSet.Contains(args))) { APdfRequest <Arguments, ObjectToCache> request = loadObjectAsyncDelegate(args); pendingRequests.Add(args, request); request.Completed += AsyncLoadCompleted; return(request); } return(pendingRequests.ContainsKey(args) ? pendingRequests[args] : null); } }
public void AsyncLoadCompleted(APdfRequest <Arguments, ObjectToCache> .InOutTuple result, PdfViewerCSharpAPI.Utilities.PdfViewerException ex) { if (ex != null) { return; } //only add the loaded values if there is a pending request for it if (pendingRequests.ContainsKey(result.arguments)) { //do not load if we have already loaded the same key/value combination if (objectEquatorDelegate == null || !dict.ContainsKey(result.arguments) || !objectEquatorDelegate(dict[result.arguments], result.output)) { LoadCompleted(result.arguments, result.output); } } }
public void CancelPendingRequest(APdfRequest <Arguments, ObjectToCache> request) { pendingRequests.Remove(request.InputArguments); }