2026-01-26 14:51:28 +09:00

67 lines
2.0 KiB
C#

/*
* 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<FovInfo, PatternAgentBase> _PatternAgents = new Dictionary<FovInfo, PatternAgentBase>();
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<FovInfo, PatternAgentBase> GetAgents() {
lock (_lock) {
return _PatternAgents;
}
}
public static void DeleteUnusedAgent(List<FovInfo> 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();
}
}
}
}