| | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.*; |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | |
| | | private Map<HookType, Map<JSONObject, ZLMHttpHookSubscribe.Event>> allSubscribes = new ConcurrentHashMap<>(); |
| | | |
| | | public void addSubscribe(HookType type, JSONObject hookResponse, ZLMHttpHookSubscribe.Event event) { |
| | | Map<JSONObject, Event> eventMap = allSubscribes.get(type); |
| | | if (eventMap == null) { |
| | | eventMap = new HashMap<JSONObject, Event>(); |
| | | allSubscribes.put(type,eventMap); |
| | | } |
| | | eventMap.put(hookResponse, event); |
| | | allSubscribes.computeIfAbsent(type, k -> new ConcurrentHashMap<>()) |
| | | .put(hookResponse, event); |
| | | } |
| | | |
| | | public ZLMHttpHookSubscribe.Event getSubscribe(HookType type, JSONObject hookResponse) { |
| | |
| | | |
| | | Set<Map.Entry<JSONObject, Event>> entries = eventMap.entrySet(); |
| | | if (entries.size() > 0) { |
| | | for (Map.Entry<JSONObject, Event> entry : entries) { |
| | | List<Map.Entry<JSONObject, ZLMHttpHookSubscribe.Event>> entriesToRemove = new ArrayList<>(); |
| | | for (Map.Entry<JSONObject, ZLMHttpHookSubscribe.Event> entry : entries) { |
| | | JSONObject key = entry.getKey(); |
| | | Boolean result = null; |
| | | for (String s : key.keySet()) { |
| | |
| | | } |
| | | } |
| | | if (null != result && result){ |
| | | entriesToRemove.add(entry); |
| | | } |
| | | } |
| | | |
| | | if (!CollectionUtils.isEmpty(entriesToRemove)) { |
| | | for (Map.Entry<JSONObject, ZLMHttpHookSubscribe.Event> entry : entriesToRemove) { |
| | | entries.remove(entry); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |