/* * Copyright (c) 2025 LG Electronics Inc. * SPDX-License-Identifier: LicenseRef-LGE-Proprietary */ using System.Collections.Generic; using System.Linq; namespace VisionCommon { public static class PatternAgentManager { private static object _lock = new object(); public static Dictionary _PatternAgents = new Dictionary(); public static void SetAgent(FovInfo fovInfo, PatternAgentBase patternAgent) { lock (_lock) { if (!_PatternAgents.ContainsKey(fovInfo)) { _PatternAgents.Add(fovInfo, patternAgent); } } } public static PatternAgentBase GetAgent(FovInfo fovInfo) { lock (_lock) { if (_PatternAgents.ContainsKey(fovInfo)) { return _PatternAgents[fovInfo]; } } return null; } public static Dictionary GetAgents() { lock (_lock) { return _PatternAgents; } } public static void DeleteUnusedAgent(List newFovInfos) { lock (_lock) { foreach (FovInfo oldFovInfo in _PatternAgents.Keys.ToList()) { if (!newFovInfos.Contains(oldFovInfo)) { if (_PatternAgents.ContainsKey(oldFovInfo)) { _PatternAgents[oldFovInfo].Dispose(); _PatternAgents.Remove(oldFovInfo); } } } } } public static bool IsNewSubSysInfo(FovInfo fovInfo) { lock (_lock) { if (!_PatternAgents.ContainsKey(fovInfo)) { return true; } else { return false; } } } public static void Clear() { lock (_lock) { _PatternAgents.Clear(); } } } }