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

45 lines
1.4 KiB
C#

/*
* Copyright (c) 2025 LG Electronics Inc.
* SPDX-License-Identifier: LicenseRef-LGE-Proprietary
*/
using VisionCommon;
using System.Collections.Generic;
namespace VisionDirector {
/// <summary>
/// MotionDirector를 관리하는 매니저
/// </summary>
public class MotionDirectorManager {
private readonly object _objectLock = new object();
private Dictionary<SubSysInfo, MotionDirector> _directors = new Dictionary<SubSysInfo, MotionDirector>();
/// <summary>
/// MotionDirector를 Set한다.
/// </summary>
/// <param name="subSysInfo">SubSysInfo(KEY)</param>
/// <param name="moverAgent">MotionDirector(VALUE)</param>
public void SetDirector(SubSysInfo subSysInfo, MotionDirector moverAgent) {
lock (_objectLock) {
if (!_directors.ContainsKey(subSysInfo)) {
_directors.Add(subSysInfo, moverAgent);
}
}
}
/// <summary>
/// MotionDirector를 Get한다.
/// </summary>
/// <param name="subSysInfo">SubSysInfo(KEY)</param>
/// <returns>MotionDirector(VALUE)</returns>
public MotionDirector GetDirector(SubSysInfo subSysInfo) {
lock (_objectLock) {
if (_directors.ContainsKey(subSysInfo)) {
return _directors[subSysInfo];
}
}
return null;
}
}
}