IOSKmpWorker

class IOSKmpWorker(eventStore: EventStore? = null, chainRepo: ChainRepository? = null, telemetry: TelemetryCollector? = null) : KmpWorker

iOS concrete implementation of KmpWorker.

Required startup: Call initialize from your AppDelegate BEFORE the app finishes launching. This registers all task identifiers with BGTaskScheduler.

// AppDelegate.swift
let kmpWorker = IOSKmpWorker()

func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
kmpWorker.initialize()
return true
}

// Required for NSURLSession background downloads to survive termination:
func application(
_ application: UIApplication,
handleEventsForBackgroundURLSession identifier: String,
completionHandler: @escaping () -> Void
) {
IOSBackgroundDownloadWorker.handleBackgroundSession(
identifier: identifier,
completionHandler: completionHandler
)
}

Parameters

eventStore

Optional. Install to persist terminal events for cold-launch replay.

chainRepo

Optional. Required for enqueueChain support.

⚠️ See docs/ios-limitations.md for BGTaskScheduler execution constraints.

Constructors

Link copied to clipboard
constructor(eventStore: EventStore? = null, chainRepo: ChainRepository? = null, telemetry: TelemetryCollector? = null)

Properties

Link copied to clipboard

Exposes the download worker, pre-wired to the EventStore for persistence.

Functions

Link copied to clipboard
open suspend override fun cancel(taskId: String)
Link copied to clipboard
open suspend fun cancelBatch(taskIds: List<String>)
Link copied to clipboard
open suspend override fun cancelByTag(tag: String)
Link copied to clipboard
open suspend override fun clearExecutionHistory()
Link copied to clipboard
open suspend override fun enqueue(request: TaskRequest)
Link copied to clipboard
open suspend fun enqueueBatch(requests: List<TaskRequest>)
Link copied to clipboard
open suspend fun enqueueChain(chain: TaskChain)
open suspend override fun enqueueChain(chain: TaskChain, policy: ChainPolicy)
Link copied to clipboard
open suspend override fun getExecutionHistory(limit: Int): List<ExecutionRecord>
Link copied to clipboard

Registers all task IDs currently in TaskRegistry with BGTaskScheduler, replays any persisted events from the last session, and restores in-progress chains.

Link copied to clipboard
open override fun observe(taskId: String): Flow<TaskState>
Link copied to clipboard
open override fun observeAll(): Flow<Pair<String, TaskState>>
Link copied to clipboard
open override fun observeChain(chainId: String): Flow<TaskState>
Link copied to clipboard
open override fun register(taskId: String, block: suspend () -> Unit)
Link copied to clipboard
open override fun registerWithContext(taskId: String, block: suspend TaskExecutionContext.() -> Unit)