package com.genersoft.iot.vmp.storager; import com.alibaba.fastjson.JSONObject; import com.genersoft.iot.vmp.common.StreamInfo; import com.genersoft.iot.vmp.gb28181.bean.*; import com.genersoft.iot.vmp.media.zlm.dto.MediaItem; import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem; import com.genersoft.iot.vmp.service.bean.GPSMsgInfo; import com.genersoft.iot.vmp.service.bean.MessageForPushChannel; import com.genersoft.iot.vmp.service.bean.SSRCInfo; import com.genersoft.iot.vmp.service.bean.ThirdPartyGB; import java.util.List; import java.util.Map; public interface IRedisCatchStorage { /** * 计数器。为cseq进行计数 * * @param method sip 方法 * @return */ Long getCSEQ(String method); /** * 开始播放时将流存入 * * @param stream 流信息 * @return */ boolean startPlay(StreamInfo stream); /** * 停止播放时删除 * * @return */ boolean stopPlay(StreamInfo streamInfo); /** * 查询播放列表 * @return */ StreamInfo queryPlay(StreamInfo streamInfo); StreamInfo queryPlayByStreamId(String steamId); StreamInfo queryPlayByDevice(String deviceId, String channelId); Map queryPlayByDeviceId(String deviceId); boolean startPlayback(StreamInfo stream, String callId); boolean stopPlayback(String deviceId, String channelId, String stream, String callId); StreamInfo queryPlayback(String deviceId, String channelID, String stream, String callId); void updatePlatformCatchInfo(ParentPlatformCatch parentPlatformCatch); ParentPlatformCatch queryPlatformCatchInfo(String platformGbId); void delPlatformCatchInfo(String platformGbId); void updatePlatformKeepalive(ParentPlatform parentPlatform); void delPlatformKeepalive(String platformGbId); void updatePlatformRegister(ParentPlatform parentPlatform); void delPlatformRegister(String platformGbId); void updatePlatformRegisterInfo(String callId, String platformGbId); String queryPlatformRegisterInfo(String callId); void delPlatformRegisterInfo(String callId); void cleanPlatformRegisterInfos(); void updateSendRTPSever(SendRtpItem sendRtpItem); /** * 查询RTP推送信息缓存 * @param platformGbId * @param channelId * @return sendRtpItem */ SendRtpItem querySendRTPServer(String platformGbId, String channelId, String streamId, String callId); List querySendRTPServer(String platformGbId); /** * 删除RTP推送信息缓存 * @param platformGbId * @param channelId */ void deleteSendRTPServer(String platformGbId, String channelId, String callId, String streamId); /** * 查询某个通道是否存在上级点播(RTP推送) * @param channelId */ boolean isChannelSendingRTP(String channelId); /** * 清空某个设备的所有缓存 * @param deviceId 设备ID */ void clearCatchByDeviceId(String deviceId); /** * 获取mediaServer节点 * @param mediaServerId * @return */ // MediaServerItem getMediaInfo(String mediaServerId); /** * 设置所有设备离线 */ void outlineForAll(); /** * 获取所有在线的 */ List getOnlineForAll(); /** * 在redis添加wvp的信息 */ void updateWVPInfo(JSONObject jsonObject, int time); /** * 发送推流生成与推流消失消息 * @param jsonObject 消息内容 */ void sendStreamChangeMsg(String type, JSONObject jsonObject); /** * 发送报警消息 * @param msg 消息内容 */ void sendAlarmMsg(AlarmChannelMessage msg); /** * 添加流信息到redis * @param mediaServerItem * @param app * @param streamId */ void addStream(MediaServerItem mediaServerItem, String type, String app, String streamId, MediaItem item); /** * 移除流信息从redis * @param mediaServerId * @param app * @param streamId */ void removeStream(String mediaServerId, String type, String app, String streamId); /** * 移除流信息从redis * @param mediaServerId */ void removeStream(String mediaServerId, String type); /** * 开始下载录像时存入 * @param streamInfo */ boolean startDownload(StreamInfo streamInfo, String callId); StreamInfo queryDownload(String deviceId, String channelId, String stream, String callId); boolean stopDownload(String deviceId, String channelId, String stream, String callId); /** * 查找第三方系统留下的国标预设值 * @param queryKey * @return */ ThirdPartyGB queryMemberNoGBId(String queryKey); List getStreams(String mediaServerId, String pull); /** * 将device信息写入redis * @param device */ void updateDevice(Device device); void removeDevice(String deviceId); /** * 获取Device */ Device getDevice(String deviceId); void resetAllCSEQ(); void updateGpsMsgInfo(GPSMsgInfo gpsMsgInfo); GPSMsgInfo getGpsMsgInfo(String gbId); List getAllGpsMsgInfo(); Long getSN(String method); void resetAllSN(); MediaItem getStreamInfo(String app, String streamId, String mediaServerId); void addCpuInfo(double cpuInfo); void addMemInfo(double memInfo); void addNetInfo(Map networkInterfaces); void sendMobilePositionMsg(JSONObject jsonObject); void sendStreamPushRequestedMsg(MessageForPushChannel messageForPushChannel); /** * 判断设备状态 * @param deviceId 设备ID * @return */ public boolean deviceIsOnline(String deviceId); }