public sealed class RemoteBundleSourceBundles that are downloaded and cached.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
Thin over BundleCache, which does the fetching, resuming and verifying. What this adds is the same thing LocalBundleSource adds: one open backend per bundle, because a backend is a window onto a mapped file and mapping the same file twice gives two lifetimes to get right instead of one.
An open bundle cannot be evicted. Deleting a file that is currently mapped is permitted on Unix and refused on Windows, and the version that "works" on Unix leaves the backend reading a file nothing can find. Refusing in both places is the behaviour that is the same everywhere, and the caller who wanted the space back can release what is holding it and ask again.
Fields and properties (1)
public BundleCache CacheThe cache behind it.
Methods (6)
public RemoteBundleSource(VirtualFileSystem files, BundleCache cache, bool verifyChecksum = false)Reads bundles that have to be downloaded first.
public bool IsAvailable(CatalogBundle bundle)Whether the bundle can be opened without fetching anything.
public ValueTask<IOdbBackend> OpenAsync(CatalogBundle bundle, CancellationToken cancellationToken = default(CancellationToken))Opens a bundle, fetching it first if that is what it takes.
public ValueTask EnsureAsync(CatalogBundle bundle, IProgress<BundleProgress>? progress = null, CancellationToken cancellationToken = default(CancellationToken))Gets a bundle onto the device without opening it.
public bool Evict(CatalogBundle bundle)Gives back whatever local copy this source is keeping of a bundle.
public void Dispose()Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Used by (5)
- ProgramAddressablesRemote
- ContentMountVixen.App.Hosting
- RemoteContentTestsVixen.Assets.Tests
- RemoteWorldVixen.Assets.Tests
- UpdateWorldVixen.Assets.Tests