IStateParserFactory.cs
1.6 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
using Rcs.Domain.Models.VDA5050;
namespace Rcs.Infrastructure.Mqtt.ParseFactory
{
/// <summary>
/// 状态解析器工厂接口
/// </summary>
public interface IStateParserFactory
{
/// <summary>
/// 按制造商名称解析状态信息
/// </summary>
/// <param name="manufacturer">制造商名称</param>
/// <param name="payload">JSON载荷</param>
/// <returns>解析后的状态数据</returns>
State? ParseState(string manufacturer, string payload);
/// <summary>
/// 注册指定制造商的状态解析器
/// </summary>
/// <param name="manufacturer">制造商名称</param>
/// <param name="parser">解析委托</param>
void RegisterStateParser(string manufacturer, Func<string, State?> 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();
}
}