/* * @Author: DI JUNKUN * @Date: 2026-02-28 * Copyright (c) 2026 by DI JUNKUN, All Rights Reserved. */ #ifndef CROSSDESK_GUI_DEVICE_PRESENCE_CACHE_H_ #define CROSSDESK_GUI_DEVICE_PRESENCE_CACHE_H_ #include #include #include namespace crossdesk { class DevicePresenceCache { public: void SetOnline(const std::string &device_id, bool online) { std::lock_guard lock(mutex_); cache_[device_id] = online; } bool IsOnline(const std::string &device_id) const { std::lock_guard lock(mutex_); const auto it = cache_.find(device_id); return it != cache_.end() && it->second; } void Clear() { std::lock_guard lock(mutex_); cache_.clear(); } private: std::unordered_map cache_; mutable std::mutex mutex_; }; } // namespace crossdesk #endif // CROSSDESK_GUI_DEVICE_PRESENCE_CACHE_H_