Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Java/Openclaw/apps/macos/Sources/OpenClaw/   (KI Agentensystem Version 22©)  Datei vom 26.3.2026 mit Größe 1 kB image not shown  

Quelle  HeartbeatStore.swift   Sprache: unbekannt

 
Spracherkennung für: .swift vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

import Foundation
import Observation
import SwiftUI

@MainActor
@Observable
final class HeartbeatStore {
    static let shared = HeartbeatStore()

    private(set) var lastEvent: ControlHeartbeatEvent?

    private var observer: NSObjectProtocol?

    private init() {
        self.observer = NotificationCenter.default.addObserver(
            forName: .controlHeartbeat,
            object: nil,
            queue: .main)
        { [weak self] note in
            guard let data = note.object as? Data else { return }
            if let decoded = try? JSONDecoder().decode(ControlHeartbeatEvent.self, from: data) {
                Task { @MainActor in self?.lastEvent = decoded }
            }
        }

        Task {
            if self.lastEvent == nil {
                if let evt = try? await ControlChannel.shared.lastHeartbeat() {
                    self.lastEvent = evt
                }
            }
        }
    }

    @MainActor
    deinit {
        if let observer { NotificationCenter.default.removeObserver(observer) }
    }
}

[Dauer der Verarbeitung: 0.3 Sekunden, vorverarbeitet 2026-04-27]