public static bool Remove(K key, Action <V> value, string groupId = "") { var group = BroadcastTunnel <K, V> .GetGroup(groupId); if (null == group) { return(false); } Manager mgr; if (!group.TryGetValue(key, out mgr)) { return(false); } bool ret = mgr.container.Remove(value); if (0 == mgr.container.Count) { group.Remove(key); if (0 == group.Count) { BroadcastTunnel <K, V> .RemoveGroup(groupId); } } return(ret); }
public static void RemoveAll() { var groupIds = BroadcastTunnel <K, V> .GetGroupIds(); if (null == groupIds) { return; } foreach (var groupId in groupIds) { BroadcastTunnel <K, V> .RemoveGroup(groupId); } }
public static bool RemoveAllByKey(K key, string groupId = "") { var group = BroadcastTunnel <K, V> .GetGroup(groupId); if (null == group) { return(false); } bool ret = group.Remove(key); if (0 == group.Count) { BroadcastTunnel <K, V> .RemoveGroup(groupId); } return(ret); }
public static void RemoveAllByGroup(string groupId = "") { BroadcastTunnel <K, V> .RemoveGroup(groupId); }