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
             });
         }
     }
 }