public int GetHashCode(object obj) { if (!(obj is FamilyActionPair)) { return(0); } FamilyActionPair fap /*lol*/ = (FamilyActionPair)obj; return((int)fap.fam << 8 & (byte)fap.act); }
bool IEqualityComparer.Equals(object obj1, object obj2) { if (!(obj1 is FamilyActionPair) || !(obj2 is FamilyActionPair)) { return(false); } FamilyActionPair fap1 = (FamilyActionPair)obj1, fap2 = (FamilyActionPair)obj2; return(fap1.fam == fap2.fam && fap1.act == fap2.act); }
private void _handlePacket(object state) { Packet pkt = (Packet)state; FamilyActionPair pair = new FamilyActionPair(pkt.Family, pkt.Action); bool handled = false; if (m_handlers.ContainsKey(pair)) { handled = true; m_handlers[pair].InvokeHandler(pkt); } if (EventReceiveData != null) { DataTransferEventArgs dte = new DataTransferEventArgs(DataTransferEventArgs.TransferType.Recv, pkt.Family, pkt.Action, pkt.Data) { PacketHandled = handled }; EventReceiveData(dte); } }