package com.genersoft.iot.vmp.service; import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.gb28181.bean.SyncStatus; import java.util.List; /** * 设备相关业务处理 * @author lin */ public interface IDeviceService { /** * 设备上线 * @param device 设备信息 */ void online(Device device); /** * 设备下线 * @param deviceId 设备编号 */ void offline(String deviceId); /** * 添加目录订阅 * @param device 设备信息 * @return 布尔 */ boolean addCatalogSubscribe(Device device); /** * 移除目录订阅 * @param device 设备信息 * @return 布尔 */ boolean removeCatalogSubscribe(Device device); /** * 添加移动位置订阅 * @param device 设备信息 * @return 布尔 */ boolean addMobilePositionSubscribe(Device device); /** * 移除移动位置订阅 * @param device 设备信息 * @return 布尔 */ boolean removeMobilePositionSubscribe(Device device); /** * 移除移动位置订阅 * @param deviceId 设备ID * @return 同步状态 */ SyncStatus getChannelSyncStatus(String deviceId); /** * 查看是否仍在同步 * @param deviceId 设备ID * @return 布尔 */ Boolean isSyncRunning(String deviceId); /** * 通道同步 * @param device 设备信息 */ void sync(Device device); /** * 查询设备信息 * @param deviceId 设备编号 * @return 设备信息 */ Device queryDevice(String deviceId); /** * 获取所有在线设备 * @return 设备列表 */ List getAllOnlineDevice(); /** * 判断是否注册已经失效 * @param device 设备信息 * @return 布尔 */ boolean expire(Device device); /** * 检查设备状态 * @param device 设备信息 */ void checkDeviceStatus(Device device); /** * 根据IP和端口获取设备信息 * @param host IP * @param port 端口 * @return 设备信息 */ Device getDeviceByHostAndPort(String host, int port); }