예제 #1
0
 public void ConfigurePagePool(PagePool pagePool)
 {
     if (pagePool == null)
     {
         throw new ArgumentNullException(nameof(pagePool));
     }
     _GlobalPagePool = pagePool;
 }
예제 #2
0
 internal CacheStorage(IStorage inner, bool ownInner, PagePool pagePool, bool autoCommitEvictedPages)
 {
     if (pagePool == null)
     {
         throw new ArgumentNullException(nameof(pagePool));
     }
     InnerStorage = inner;
     own          = ownInner;
     this.canCommitAutomatically = autoCommitEvictedPages;
     _PagePool        = pagePool;
     _EvictedCallback = new Func <Page, ValueTask>(EvictPage);
     Length           = inner.Length;
     _LengthChanged   = false;
 }
예제 #3
0
    void Awake()
    {
        max = 0;
        min = 0;

        _pageBuffer1    = new List <PageData>();
        PageDataBuffer1 = new Dictionary <int, PageData>();

        Instance         = this;
        UploadImgCor     = null;
        UploadAudioCor   = null;
        isLoadingPicture = false;
        isLoadingClip    = false;
    }
예제 #4
0
 public static Page PopToPool(string name, PagePool pagePool)
 {
     while (stack.Count > 0 && !stack.Peek().name.Equals(name))
     {
         var page = stack.Pop();
         page.Active = false;
         page.OnNavigatedFrom();
         page.OnPop();
         pagePool.Put(page.name, page);
     }
     if (stack.Count > 0)
     {
         RecaculateActive();
         var tarPage = stack.Peek();
         tarPage.OnNavigatedTo();
         return(tarPage);
     }
     return(null);
 }