private bool IsBoundInternal(PacketType packetType, IPacketBinding binding) { if (packetType != PacketType.ISP_NONE) { List <IPacketBinding> bindings; if (packetBindings.TryGetValue(packetType, out bindings)) { return(bindings.Any(b => b.Equals(binding))); } } return(false); }
private void UnbindInternal(PacketType packetType, IPacketBinding binding) { if (packetType != PacketType.ISP_NONE) { List <IPacketBinding> bindings; if (packetBindings.TryGetValue(packetType, out bindings)) { bindings.Remove(bindings.Single(b => b.Equals(binding))); // Delete dict key if no bindings left. if (!bindings.Any()) { packetBindings.Remove(packetType); } } } }
private void BindInternal(PacketType packetType, IPacketBinding binding) { if (packetType != PacketType.ISP_NONE) { List <IPacketBinding> bindings; if (packetBindings.TryGetValue(packetType, out bindings)) { bindings.Add(binding); } else { packetBindings.Add(packetType, new List <IPacketBinding> { binding }); } } }