Beispiel #1
0
 /// <summary>
 /// Two DnsAddressPrefix are equal iff their address family, prefix length, negation and address family dependent part are equal.
 /// </summary>
 public bool Equals(DnsAddressPrefix other)
 {
     return(other != null &&
            AddressFamily.Equals(other.AddressFamily) &&
            PrefixLength.Equals(other.PrefixLength) &&
            Negation.Equals(other.Negation) &&
            AddressFamilyDependentPart.Equals(other.AddressFamilyDependentPart));
 }
Beispiel #2
0
        internal void Write(byte[] buffer, ref int offset)
        {
            buffer.Write(offset + Offset.AddressFamily, (ushort)AddressFamily, Endianity.Big);
            buffer.Write(offset + Offset.PrefixLength, PrefixLength);
            buffer.Write(offset + Offset.Negation, (byte)((Negation ? Mask.Negation : 0) | AddressFamilyDependentPart.Length));
            AddressFamilyDependentPart.Write(buffer, offset + Offset.AddressFamilyDependentPart);

            offset += MinimumLength + AddressFamilyDependentPart.Length;
        }
Beispiel #3
0
 /// <summary>
 /// A hash code based on the address family, prefix length, negation and address family dependent part fields.
 /// </summary>
 public override int GetHashCode()
 {
     return(BitSequence.Merge((ushort)AddressFamily, PrefixLength, (byte)(((Negation ? 1 : 0) << 7) | AddressFamilyDependentPart.Length)).GetHashCode() ^
            AddressFamilyDependentPart.BytesSequenceGetHashCode());
 }