/// <summary> /// Initializes a new instance of the <see cref="PaginationManager{T}" /> class. /// </summary> /// <param name="provider">The provider.</param> /// <param name="reclaimer">The reclaimer.</param> /// <param name="expiryComparer">The expiry comparer.</param> /// <param name="pageSize">Size of the page.</param> /// <param name="maxPages">The maximum pages.</param> /// <param name="maxDeltas">The maximum deltas.</param> /// <param name="maxDistance">The maximum distance.</param> /// <param name="sectionContext">The section context.</param> public PaginationManager( IPagedSourceProvider <T> provider, IPageReclaimer <T> reclaimer = null, IPageExpiryComparer expiryComparer = null, int pageSize = 100, int maxPages = 100, int maxDeltas = -1, int maxDistance = -1, string sectionContext = "") { this.PageSize = pageSize; this.MaxPages = maxPages; this.MaxDeltas = maxDeltas; this.MaxDistance = maxDistance; if (provider is IPagedSourceProviderAsync <T> async) { this.ProviderAsync = async; } else { this.Provider = provider; } this._reclaimer = reclaimer ?? new PageReclaimOnTouched <T>(); this.ExpiryComparer = expiryComparer; VirtualizationManager.Instance.AddAction(new ReclaimPagesWA(this, sectionContext)); }
/// <summary> /// Initializes a new instance of the <see cref="VirtualizingObservableCollection{T}" /> class. /// </summary> /// <param name="provider">The provider.</param> /// <param name="reclaimer">The optional reclaimer.</param> /// <param name="expiryComparer">The optional expiry comparer.</param> /// <param name="pageSize">Size of the page.</param> /// <param name="maxPages">The maximum pages.</param> /// <param name="maxDeltas">The maximum deltas.</param> /// <param name="maxDistance">The maximum distance.</param> public VirtualizingObservableReactiveCollection( IPagedSourceProvider <T> provider, IPageReclaimer <T> reclaimer = null, IPageExpiryComparer expiryComparer = null, int pageSize = 100, int maxPages = 100, int maxDeltas = -1, int maxDistance = -1) : base(provider, reclaimer, pageSize, maxPages, maxDeltas, maxDistance) { }
public ConcurrentIObservableVirtualizingObservableCollection( IPagedSourceProvider <T> provider, IPageReclaimer <T> reclaimer = null, IPageExpiryComparer expiryComparer = null, int pageSize = 100, int maxPages = 100, int maxDeltas = -1, int maxDistance = -1) : base(provider, reclaimer, expiryComparer, pageSize, maxPages, maxDeltas, maxDistance) { throw new NotImplementedException(); }
/// <summary> /// Initializes a new instance of the <see cref="VirtualizingObservableCollection{T}" /> class. /// </summary> /// <param name="provider">The provider.</param> /// <param name="reclaimer">The optional reclaimer.</param> /// <param name="expiryComparer">The optional expiry comparer.</param> /// <param name="pageSize">Size of the page.</param> /// <param name="maxPages">The maximum pages.</param> /// <param name="maxDeltas">The maximum deltas.</param> /// <param name="maxDistance">The maximum distance.</param> public VirtualizingObservableCollection( IPagedSourceProvider <T> provider, IPageReclaimer <T> reclaimer = null, IPageExpiryComparer expiryComparer = null, int pageSize = 100, int maxPages = 100, int maxDeltas = -1, int maxDistance = -1) : this() { this.Provider = new PaginationManager <T>(provider, reclaimer, expiryComparer, pageSize, maxPages, maxDeltas, maxDistance); }
/// <summary> /// Initializes a new instance of the <see cref="VirtualizingObservableCollection{T}" /> class. /// </summary> /// <param name="provider">The provider.</param> /// <param name="reclaimer">The optional reclaimer.</param> /// <param name="expiryComparer">The optional expiry comparer.</param> /// <param name="pageSize">Size of the page.</param> /// <param name="maxPages">The maximum pages.</param> /// <param name="maxDeltas">The maximum deltas.</param> /// <param name="maxDistance">The maximum distance.</param> /// //TODO Check implementation public VirtualizingObservableReactiveCollection( IPagedSourceObservableProvider <T> provider, IPageReclaimer <T> reclaimer = null, IPageExpiryComparer expiryComparer = null, int pageSize = 100, int maxPages = 100, int maxDeltas = -1, int maxDistance = -1) : base(provider, reclaimer, pageSize, maxPages, maxDeltas, maxDistance) { (this.Provider as PaginationManager <T>).CollectionChanged += this.VirtualizingObservableCollection_CollectionChanged; this.IsSourceObservable = true; }
/// <summary> /// Initializes a new instance of the <see cref="PaginationManager{T}" /> class. /// </summary> /// <param name="provider">The provider.</param> /// <param name="reclaimer">The reclaimer.</param> /// <param name="expiryComparer">The expiry comparer.</param> /// <param name="pageSize">Size of the page.</param> /// <param name="maxPages">The maximum pages.</param> /// <param name="maxDeltas">The maximum deltas.</param> /// <param name="maxDistance">The maximum distance.</param> /// <param name="sectionContext">The section context.</param> public PaginationManager( IPagedSourceObservableProvider <T> provider, IPageReclaimer <T> reclaimer = null, IPageExpiryComparer expiryComparer = null, int pageSize = 100, int maxPages = 100, int maxDeltas = -1, int maxDistance = -1, string sectionContext = "") : this(provider as IPagedSourceProvider <T>, reclaimer, expiryComparer, pageSize, maxPages, maxDeltas, maxDistance, sectionContext) { provider.CollectionChanged += this.OnProviderCollectionChanged; }
/// <summary> /// Initializes a new instance of the <see cref="PaginationManager{T}" /> class. /// </summary> /// <param name="provider">The provider.</param> /// <param name="reclaimer">The reclaimer.</param> /// <param name="expiryComparer">The expiry comparer.</param> /// <param name="pageSize">Size of the page.</param> /// <param name="maxPages">The maximum pages.</param> /// <param name="maxDeltas">The maximum deltas.</param> /// <param name="maxDistance">The maximum distance.</param> /// <param name="sectionContext">The section context.</param> public PaginationManager(IPagedSourceProvider <T> provider, IPageReclaimer <T> reclaimer = null, IPageExpiryComparer expiryComparer = null, int pageSize = 100, int maxPages = 100, int maxDeltas = -1, int maxDistance = -1, string sectionContext = "", TimeSpan?delayBetweenReclaims = null) { this.PageSize = pageSize; this.MaxPages = maxPages; this.MaxDeltas = maxDeltas; this.MaxDistance = maxDistance; if (provider is IPagedSourceProviderAsync <T> ) { this.ProviderAsync = (IPagedSourceProviderAsync <T>)provider; } else { this.Provider = provider; } if (reclaimer != null) { _Reclaimer = reclaimer; } else { _Reclaimer = new PageReclaimOnTouched <T>(); } this.ExpiryComparer = expiryComparer; VirtualizationManager.Instance.AddAction(new ReclaimPagesWA(this, sectionContext, delayBetweenReclaims)); }