IVisualizationParserFactory.cs
1.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using Rcs.Domain.Models.VDA5050;
namespace Rcs.Infrastructure.Mqtt.ParseFactory
{
/// <summary>
/// 可视化解析器工厂接口
/// </summary>
public interface IVisualizationParserFactory
{
/// <summary>
/// 按制造商解析可视化信息
/// </summary>
/// <param name="manufacturer">制造商名称</param>
/// <param name="payload">JSON载荷</param>
/// <returns>解析后的可视化数据</returns>
Visualization? ParseVisualization(string manufacturer, string payload);
/// <summary>
/// 注册指定制造商的可视化解析器
/// </summary>
/// <param name="manufacturer">制造商名称</param>
/// <param name="parser">解析委托</param>
void RegisterVisualizationParser(string manufacturer, Func<string, Visualization?> parser);
/// <summary>
/// 是否支持指定制造商
/// </summary>
/// <param name="manufacturer">制造商名称</param>
/// <returns>是否支持</returns>
bool IsManufacturerSupported(string manufacturer);
/// <summary>
/// 获取所有已注册的制造商
/// </summary>
/// <returns>制造商名称列表</returns>
IEnumerable<string> GetSupportedManufacturers();
/// <summary>
/// 手动刷新并重新注册解析器
/// </summary>
void RefreshParsers();
/// <summary>
/// 获取已注册解析器的详细信息
/// </summary>
/// <returns>制造商与类型信息映射</returns>
Dictionary<string, string> GetRegisteredParsersInfo();
}
}