2026-06-05 13:44:39 +09:00

59 lines
1.8 KiB
C#

using System.Collections.Generic;
using System.Linq;
namespace VisionCommon {
public static class CamPatternAgentManager {
private static object _lock = new object();
public static Dictionary<eCamId, PatternAgentBase> _PatternAgents = new Dictionary<eCamId, PatternAgentBase>();
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<eCamId> 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();
}
}
}
}