// // SDLPathMonitor.swift // punchnet // // Created by 安礼成 on 2026/4/29. // import Foundation import Network final class SDLPathMonitor { private let monitor = NWPathMonitor() private let queue = DispatchQueue(label: "com.sdlan.path-monitor") private let debouncer = SDLPathDebounceActor(delay: .seconds(2)) func start() { monitor.pathUpdateHandler = { path in let snapshot = SDLPathSnapshot(path) Task { await self.debouncer.submit(snapshot) } } monitor.start(queue: queue) } func statusStream() -> AsyncStream { return self.debouncer.statusStream } func stop() { Task { await debouncer.stop() } monitor.cancel() } }