package com.genersoft.iot.vmp.gb28181.session; import com.genersoft.iot.vmp.gb28181.bean.AudioBroadcastCatch; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; /** * 语音广播消息管理类 * @author lin */ @Component public class AudioBroadcastManager { public static Map data = new ConcurrentHashMap<>(); public void add(AudioBroadcastCatch audioBroadcastCatch) { this.update(audioBroadcastCatch); } public void update(AudioBroadcastCatch audioBroadcastCatch) { data.put(audioBroadcastCatch.getDeviceId() + audioBroadcastCatch.getChannelId(), audioBroadcastCatch); } public void del(String deviceId, String channelId) { data.remove(deviceId + channelId); } public void delByDeviceId(String deviceId) { for (String key : data.keySet()) { if (key.startsWith(deviceId)) { data.remove(key); } } } public List getAll(){ Collection values = data.values(); return new ArrayList<>(values); } public boolean exit(String deviceId, String channelId) { for (String key : data.keySet()) { if (key.equals(deviceId + channelId)) { return true; } } return false; } public AudioBroadcastCatch get(String deviceId, String channelId) { return data.get(deviceId + channelId); } }