2026-01-26 18:56:53 +09:00

71 lines
2.0 KiB
C#

/*
* Copyright (c) 2025 LG Electronics Inc.
* SPDX-License-Identifier: LicenseRef-LGE-Proprietary
*/
using System;
namespace VisionCommon {
public class SubSysInfo {
private UnitInfo _unitInfo;
public eUnitId UnitId {
get { return _unitInfo.UnitId; }
set { _unitInfo.UnitId = value; }
}
public string UnitName {
get { return _unitInfo.UnitName; }
set { _unitInfo.UnitName = value; }
}
public eSubSysId SubSysId { get; set; } = eSubSysId.None;
public string SubSysName { get; set; } = string.Empty;
public SubSysInfo(UnitInfo unitInfo, eSubSysId subSysid, string subSysName) {
_unitInfo = unitInfo.Clone();
SubSysId = subSysid;
SubSysName = subSysName;
}
public new SubSysInfo Clone() {
return new SubSysInfo(
new UnitInfo(UnitId, UnitName),
SubSysId, SubSysName);
}
public string GetKey() {
return CreateKey(UnitId, SubSysId);
}
public static string CreateKey(eUnitId unitId, eSubSysId subSysId) {
return $"{(int)unitId}_{(int)subSysId}";
}
public override string ToString() {
return $"{(int)UnitId}-{UnitName}_{(int)SubSysId}-{SubSysName}";
}
public override bool Equals(object obj) {
return Equals(obj as SubSysInfo);
}
public bool Equals(SubSysInfo subSysInfo) {
if (subSysInfo is null) {
return false;
}
if (Object.ReferenceEquals(this, subSysInfo)) {
return true;
}
return this.UnitId == subSysInfo.UnitId
&& this.SubSysId == subSysInfo.SubSysId;
}
public override int GetHashCode() {
return _unitInfo.GetHashCode() ^ SubSysId.GetHashCode();
}
public UnitInfo ToUnitInfo() {
return _unitInfo.Clone();
}
}
}