Table of Contents

Class TileStreamerResource

public sealed class TileStreamerResource : IPoolableTileResource, IDisposable
Inheritance
object
TileStreamerResource
Implements

Constructors

TileStreamerResource(TileStreamer, TileBatchRendererResource, TileResourceShape)

public TileStreamerResource(TileStreamer streamer, TileBatchRendererResource batch, TileResourceShape shape)

Parameters

streamer TileStreamer
batch TileBatchRendererResource
shape TileResourceShape

Properties

Batch

public TileBatchRenderer Batch { get; }

Property Value

TileBatchRenderer

BatchResource

public TileBatchRendererResource BatchResource { get; }

Property Value

TileBatchRendererResource

Shape

public TileResourceShape Shape { get; }

Property Value

TileResourceShape

Streamer

public TileStreamer Streamer { get; }

Property Value

TileStreamer

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

instanceTag string
coarsePrefetchDelta int
zoomHysteresisSeconds double
partitionedFallback bool

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

batchIdentityTag ulong
sourceCacheTag ulong
cacheDirectory string
cacheSettings TileCacheSettings
config TilePipelineConfig
allowDecodeOffload bool

Returns

ulong

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()