using System.Collections.Generic; using System.Linq; namespace VisionCommon { public static class CamPatternAgentManager { private static object _lock = new object(); public static Dictionary _PatternAgents = new Dictionary(); public static void SetAgent(eCamId camId, PatternAgentBase patternAgent) { lock (_lock) { if (!_PatternAgents.ContainsKey(camId)) { _PatternAgents.Add(camId, patternAgent); } } } public static PatternAgentBase GetAgent(eCamId camId) { lock (_lock) { if (VisionSettingManager.VisionSetting.UseCamPattern) { if (_PatternAgents.ContainsKey(camId)) { return _PatternAgents[camId]; } } } return null; } public static void DeleteUnusedAgent(List newCamIds) { lock (_lock) { if (_PatternAgents.Count > newCamIds.Count) { foreach (eCamId oldCamId in _PatternAgents.Keys.ToList()) { if (!newCamIds.Contains(oldCamId)) { _PatternAgents[oldCamId].Dispose(); _PatternAgents.Remove(oldCamId); } } } } } public static bool IsNewCamId(eCamId camId) { lock (_lock) { if (!_PatternAgents.ContainsKey(camId)) { return true; } else { return false; } } } public static void Clear() { lock (_lock) { _PatternAgents.Clear(); } } } }