Class TileStreamerResource
- Namespace
- LansMap.Map.TilePipeline
public sealed class TileStreamerResource : IPoolableTileResource, IDisposable
- Inheritance
-
objectTileStreamerResource
- Implements
Constructors
TileStreamerResource(TileStreamer, TileBatchRendererResource, TileResourceShape)
public TileStreamerResource(TileStreamer streamer, TileBatchRendererResource batch, TileResourceShape shape)
Parameters
streamerTileStreamerbatchTileBatchRendererResourceshapeTileResourceShape
Properties
Batch
public TileBatchRenderer Batch { get; }
Property Value
BatchResource
public TileBatchRendererResource BatchResource { get; }
Property Value
Shape
public TileResourceShape Shape { get; }
Property Value
Streamer
public TileStreamer Streamer { get; }
Property Value
Methods
ApplyCheckoutState(string, int, double, bool)
Puts every mutable public knob back where a freshly-constructed streamer would have it, then applies this build's own values. Called on every checkout, hit or miss.
public void ApplyCheckoutState(string instanceTag, int coarsePrefetchDelta, double zoomHysteresisSeconds, bool partitionedFallback)
Parameters
Remarks
Mutable knobs are deliberately NOT part of the pool key: a knob change must not force a reallocation. They do have to be re-applied though, or a reused streamer silently inherits the previous scene's fade duration, upload budget or instance tag. The reset half covers the knobs no caller sets at build time, which a fresh streamer would have at its field default and a reused one would not. Adding a mutable public knob to TileStreamer means adding its default to that class's Default* constants and adding a line here.
Dispose()
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
public void Dispose()
IdentityTagFor(ulong, ulong, string, TileCacheSettings, TilePipelineConfig, bool)
The identity half of this resource's pool key: every TileStreamer constructor input that TileResourceShape's four cost dimensions do not already cover, plus the identity tag of the renderer it owns.
public static ulong IdentityTagFor(ulong batchIdentityTag, ulong sourceCacheTag, string cacheDirectory, TileCacheSettings cacheSettings, TilePipelineConfig config, bool allowDecodeOffload)
Parameters
batchIdentityTagulongsourceCacheTagulongcacheDirectorystringcacheSettingsTileCacheSettingsconfigTilePipelineConfigallowDecodeOffloadbool
Returns
Remarks
A tile source's own CacheTag is the provider identity here:
one FNV-1a ulong over the URL template and residency format, the
same value the shared disk cache already trusts to keep providers
apart. Known edge, inherited deliberately: ApiKey and
Subdomains are not part of a CacheTag, so two sources
differing only there share identity - the disk cache already
treats them as the same imagery.
Park()
public void Park()