HttpManifestSource
Default ManifestSource: fetches the manifest over HTTP (via an injectable ManifestFetcher), decodes JSON, and validates it through the portable, conformance-locked core ManifestService. Polling is a coroutine loop on the supplied scope. Pure Kotlin/JVM — no Android dependency.
The cadence comes exclusively from the manifest's polling object (active interval while a break is active, idle otherwise — resolvePollingDecision). When the manifest carries no polling object, no loop is started: the manifest is fetched exactly once per session. setActive cancels and restarts a running loop with the interval the new state dictates.
Properties
Functions
Fetch + parse the manifest once; suspends until it resolves. Throws on fetch/parse failure.
Provide the customer manifest-response interceptor (and a diagnostic sink for when it throws). The SDK forwards OptiViewAdsConfig.interceptManifestResponse here at construction; sources apply it after parsing, on the initial fetch and every poll. Default no-op so custom sources need not support it.
Provide the customer manifest-request interceptor (and a diagnostic sink for when it throws). The SDK forwards OptiViewAdsConfig.interceptManifestRequest here at construction; sources apply it before the network fetch, on the initial fetch and every poll. Default no-op so custom sources need not support it.
Set the manifest URL for the current session (call before fetchManifest/startPolling).
Evidence for the most recent failed read, consumed by the caller raising DA-MANIFEST-FETCH-FAILED. Defaults to null so a custom source keeps working without implementing it — it loses the evidence, not the diagnostic.