using DMS.Core.Models;
namespace DMS.Core.Interfaces.Services
{
///
/// MQTT服务管理器接口,负责管理MQTT连接和变量监控
///
public interface IMqttServiceManager : IDisposable
{
///
/// 初始化服务管理器
///
Task InitializeAsync(CancellationToken cancellationToken = default);
///
/// 添加MQTT服务器到监控列表
///
void AddMqttServer(MqttServer mqttServer);
///
/// 移除MQTT服务器监控
///
Task RemoveMqttServerAsync(int mqttServerId, CancellationToken cancellationToken = default);
///
/// 更新MQTT服务器变量别名
///
void UpdateMqttAliases(int mqttServerId, List mqttAliases);
///
/// 获取MQTT服务器连接状态
///
bool IsMqttServerConnected(int mqttServerId);
///
/// 重新连接MQTT服务器
///
Task ReconnectMqttServerAsync(int mqttServerId, CancellationToken cancellationToken = default);
///
/// 获取所有监控的MQTT服务器ID
///
IEnumerable GetMonitoredMqttServerIds();
///
/// 连接MQTT服务器
///
Task ConnectMqttServerAsync(int mqttServerId, CancellationToken cancellationToken = default);
///
/// 断开MQTT服务器连接
///
Task DisconnectMqttServerAsync(int mqttServerId, CancellationToken cancellationToken = default);
///
/// 发布变量数据到MQTT服务器
///
Task PublishVariableDataAsync(MqttAlias variableMqtt, CancellationToken cancellationToken = default);
///
/// 发布批量变量数据到MQTT服务器
///
Task PublishVariablesDataAsync(List variableMqtts, CancellationToken cancellationToken = default);
}
}