WuPeng
2022-11-05 ab909feedf43a44780a6198cbd4772e9d7713fdf
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
package com.genersoft.iot.vmp.storager;
 
import com.alibaba.fastjson2.JSONObject;
import com.genersoft.iot.vmp.common.StreamInfo;
import com.genersoft.iot.vmp.common.SystemAllInfo;
import com.genersoft.iot.vmp.gb28181.bean.*;
import com.genersoft.iot.vmp.media.zlm.dto.*;
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 com.genersoft.iot.vmp.storager.dao.dto.PlatformRegisterInfo;
 
import java.util.List;
import java.util.Map;
 
public interface IRedisCatchStorage {
 
    /**
     * 计数器。为cseq进行计数
     *
     * @return
     */
    Long getCSEQ();
 
    /**
     * 开始播放时将流存入
     *
     * @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<String, StreamInfo> 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);
 
    String queryPlaybackForKey(String deviceId, String channelId, String stream, String callId);
 
    void updatePlatformCatchInfo(ParentPlatformCatch parentPlatformCatch);
 
    ParentPlatformCatch queryPlatformCatchInfo(String platformGbId);
 
    void delPlatformCatchInfo(String platformGbId);
 
    void delPlatformKeepalive(String platformGbId);
 
    void delPlatformRegister(String platformGbId);
 
    void updatePlatformRegisterInfo(String callId, PlatformRegisterInfo platformRegisterInfo);
 
    PlatformRegisterInfo 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<SendRtpItem> 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);
 
    /**
     * 在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<MediaItem> 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<GPSMsgInfo> 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<String, Double> networkInterfaces);
 
    void sendMobilePositionMsg(JSONObject jsonObject);
 
    void sendStreamPushRequestedMsg(MessageForPushChannel messageForPushChannel);
 
    /**
     * 判断设备状态
     * @param deviceId 设备ID
     * @return
     */
    public boolean deviceIsOnline(String deviceId);
 
    /**
     * 存储推流的鉴权信息
     * @param app 应用名
     * @param stream 流
     * @param streamAuthorityInfo 鉴权信息
     */
    void updateStreamAuthorityInfo(String app, String stream, StreamAuthorityInfo streamAuthorityInfo);
 
    /**
     * 移除推流的鉴权信息
     * @param app 应用名
     * @param streamId 流
     */
    void removeStreamAuthorityInfo(String app, String streamId);
 
    /**
     * 获取推流的鉴权信息
     * @param app 应用名
     * @param stream 流
     * @return
     */
    StreamAuthorityInfo getStreamAuthorityInfo(String app, String stream);
 
    /**
     * 发送redis消息 查询所有推流设备的状态
     */
    void sendStreamPushRequestedMsgForStatus();
 
    List<SendRtpItem> querySendRTPServerByChnnelId(String channelId);
 
    List<SendRtpItem> querySendRTPServerByStream(String stream);
 
    SystemAllInfo getSystemInfo();
 
    int getPushStreamCount(String id);
 
    int getProxyStreamCount(String id);
 
    int getGbReceiveCount(String id);
 
    int getGbSendCount(String id);
 
    void addDiskInfo(List<Map<String, Object>> diskInfo);
 
    List<SendRtpItem> queryAllSendRTPServer();
 
}