648540858
2024-05-29 764d04b497356ba6bcbb75fd42b51eca750f7223
src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java
old mode 100644 new mode 100755
@@ -1,58 +1,172 @@
package com.genersoft.iot.vmp.service;
import com.genersoft.iot.vmp.common.CommonCallback;
import com.genersoft.iot.vmp.gb28181.bean.Device;
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
import com.genersoft.iot.vmp.gb28181.bean.SipTransactionInfo;
import com.genersoft.iot.vmp.gb28181.bean.SyncStatus;
import com.genersoft.iot.vmp.vmanager.bean.BaseTree;
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
import java.util.List;
/**
 * 设备相关业务处理
 * @author lin
 */
public interface IDeviceService {
    /**
     * 设备上线
     * @param device 设备信息
     */
    void online(Device device, SipTransactionInfo sipTransactionInfo);
    /**
     * 设备下线
     * @param deviceId 设备编号
     */
    void offline(String deviceId, String reason);
    /**
     * 添加目录订阅
     * @param device 设备信息
     * @return
     * @return 布尔
     */
    boolean addCatalogSubscribe(Device device);
    /**
     * 移除目录订阅
     * @param device 设备信息
     * @return
     * @return 布尔
     */
    boolean removeCatalogSubscribe(Device device);
    boolean removeCatalogSubscribe(Device device, CommonCallback<Boolean> callback);
    /**
     * 添加移动位置订阅
     * @param device 设备信息
     * @return
     * @return 布尔
     */
    boolean addMobilePositionSubscribe(Device device);
    /**
     * 移除移动位置订阅
     * @param device 设备信息
     * @return
     * @return 布尔
     */
    boolean removeMobilePositionSubscribe(Device device);
    boolean removeMobilePositionSubscribe(Device device, CommonCallback<Boolean> callback);
    /**
     * 移除移动位置订阅
     * @param deviceId 设备ID
     * @return
     * @return 同步状态
     */
    SyncStatus getChannelSyncStatus(String deviceId);
    /**
     * 设置通道同步状态
     * 查看是否仍在同步
     * @param deviceId 设备ID
     * @return 布尔
     */
    void setChannelSyncReady(String deviceId);
    Boolean isSyncRunning(String deviceId);
    /**
     * 设置同步结束
     * @param deviceId 设备ID
     * @param errorMsg 错误信息
     * 通道同步
     * @param device 设备信息
     */
    void setChannelSyncEnd(String deviceId, String errorMsg);
    void sync(Device device);
    /**
     * 查询设备信息
     * @param deviceId 设备编号
     * @return 设备信息
     */
    Device getDevice(String deviceId);
    /**
     * 获取所有在线设备
     * @return 设备列表
     */
    List<Device> 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);
    /**
     * 更新设备
     * @param device 设备信息
     */
    void updateDevice(Device device);
    /**
     * 树形查询接口
     * @param deviceId 设备ID
     * @param parentId 父ID
     * @param onlyCatalog 只获取目录
     * @return
     */
    List<BaseTree<DeviceChannel>> queryVideoDeviceTree(String deviceId, String parentId, boolean onlyCatalog);
    /**
     * 查询树节点下的通道
     * @param deviceId 设备ID
     * @param parentId 父ID
     * @return
     */
    List<DeviceChannel> queryVideoDeviceInTreeNode(String deviceId, String parentId);
    /**
     * 检查设备编号是否已经存在
     * @param deviceId 设备编号
     * @return
     */
    boolean isExist(String deviceId);
    /**
     * 添加设备
     * @param device
     */
    void addDevice(Device device);
    /**
     * 页面表单更新设备信息
     * @param device
     */
    void updateCustomDevice(Device device);
    /**
     * 删除设备
     * @param deviceId
     * @return
     */
    boolean delete(String deviceId);
    /**
     * 获取统计信息
     * @return
     */
    ResourceBaseInfo getOverview();
    /**
     * 获取所有设备
     */
    List<Device> getAll();
}