using System.Collections.Generic; using System.Linq; namespace VisionCommon { public static class FovPatternAgentManager { private static object _lock = new object(); public static Dictionary _PatternAgents = new Dictionary(); public static void SetAgent(SubSysInfo subSysInfo, PatternAgentBase patternAgent) { lock (_lock) { if (!_PatternAgents.ContainsKey(subSysInfo)) { _PatternAgents.Add(subSysInfo, patternAgent); } } } public static PatternAgentBase GetAgent(SubSysInfo subSysInfo) { lock (_lock) { if (_PatternAgents.ContainsKey(subSysInfo)) { return _PatternAgents[subSysInfo]; } } return null; } public static Dictionary GetAgents() { lock (_lock) { return _PatternAgents; } } public static void DeleteUnusedAgent(List newSubSysInfos) { lock (_lock) { foreach (SubSysInfo oldSubSysInfo in _PatternAgents.Keys.ToList()) { if (!newSubSysInfos.Contains(oldSubSysInfo)) { if (_PatternAgents.ContainsKey(oldSubSysInfo)) { _PatternAgents[oldSubSysInfo].Dispose(); _PatternAgents.Remove(oldSubSysInfo); } } } } } public static bool IsNewSubSysInfo(SubSysInfo subSysInfo) { lock (_lock) { if (!_PatternAgents.ContainsKey(subSysInfo)) { return true; } else { return false; } } } public static void Clear() { lock (_lock) { _PatternAgents.Clear(); } } } }