Esempio n. 1
0
 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
     }
 }
Esempio n. 2
0
 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
     }
 }
Esempio n. 3
0
 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);
     }
 }
Esempio n. 4
0
        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);
                }
            }
        }
Esempio n. 5
0
 public void CancelPendingRequest(APdfRequest <Arguments, ObjectToCache> request)
 {
     pendingRequests.Remove(request.InputArguments);
 }