Exemplo n.º 1
0
    public static ValidityFlags TestValidity(ref NetClockTester test, ref uLink.NetworkMessageInfo info, long intervalMS, ValidityFlags testFor)
    {
        ValidityFlags flags = TestValidity(ref test, info.timestampInMillis, intervalMS);

        test.Results.Add(flags & testFor);
        return(flags);
    }
Exemplo n.º 2
0
    private static ValidityFlags TestValidity(ref NetClockTester test, ulong timeStamp, long minimalSendRateMS)
    {
        ulong         timeInMillis = NetCull.timeInMillis;
        ValidityFlags flags        = (timeInMillis >= timeStamp) ? ((ValidityFlags)0) : ValidityFlags.AheadOfServerTime;

        if (test.Count > 0L)
        {
            long b    = Subtract(timeStamp, test.Send.Last);
            long num3 = Subtract(timeInMillis, test.Receive.Last);
            test.Send.Sum     = Add(test.Send.Sum, b);
            test.Receive.Sum  = Add(test.Receive.Sum, num3);
            test.Count       += (ulong)1L;
            test.Send.Last    = timeStamp;
            test.Receive.Last = timeInMillis;
            if (b < minimalSendRateMS)
            {
                flags |= ValidityFlags.TooFrequent;
            }
            long num4 = Subtract(test.Send.Last, test.Send.First);
            long num5 = Subtract(test.Receive.Last, test.Receive.First);
            if (test.Count >= 5L)
            {
                if (num4 > (num5 * 2L))
                {
                    flags |= ValidityFlags.OverTimed;
                }
            }
            else if ((test.Count >= 3L) && (num4 > (num5 * 4L)))
            {
                flags |= ValidityFlags.OverTimed;
            }
            ValidityFlags lastTestFlags = test.LastTestFlags;
            test.LastTestFlags = flags;
            if (((flags & ValidityFlags.TooFrequent) == ValidityFlags.TooFrequent) && ((lastTestFlags & ValidityFlags.TooFrequent) != ValidityFlags.TooFrequent))
            {
                flags          &= ~ValidityFlags.TooFrequent;
                test.Count      = 1L;
                test.Send.First = test.Send.Last;
                test.Send.Sum   = 0L;
                if (num3 > 0L)
                {
                    test.Receive.First = (ulong)Subtract(test.Receive.Last, (ulong)num3);
                    test.Receive.Sum   = (ulong)num3;
                }
                else
                {
                    test.Receive.First = test.Receive.Last;
                    test.Receive.Sum   = 0L;
                }
            }
            return((flags != 0) ? flags : ValidityFlags.Valid);
        }
        test.Send.Sum     = (ulong)(test.Receive.Sum = 0L);
        test.Send.Last    = test.Send.First = timeStamp;
        test.Receive.Last = test.Receive.First = timeInMillis;
        test.Count        = 1L;
        return(flags);
    }
Exemplo n.º 3
0
 private static NetClockTester.ValidityFlags TestValidity(ref NetClockTester test, ulong timeStamp, long minimalSendRateMS)
 {
     NetClockTester.ValidityFlags validityFlag;
     ulong num = NetCull.timeInMillis;
     if (num >= timeStamp)
     {
         validityFlag = (NetClockTester.ValidityFlags)0;
     }
     else
     {
         validityFlag = NetClockTester.ValidityFlags.AheadOfServerTime;
     }
     NetClockTester.ValidityFlags validityFlag1 = validityFlag;
     if (test.Count <= (long)0)
     {
         long num1 = (long)0;
         ulong num2 = (ulong)num1;
         test.Receive.Sum = (ulong)num1;
         test.Send.Sum = num2;
         ulong num3 = timeStamp;
         num2 = num3;
         test.Send.First = num3;
         test.Send.Last = num2;
         ulong num4 = num;
         num2 = num4;
         test.Receive.First = num4;
         test.Receive.Last = num2;
         test.Count = (ulong)1;
         return validityFlag1;
     }
     long num5 = NetClockTester.Subtract(timeStamp, test.Send.Last);
     long num6 = NetClockTester.Subtract(num, test.Receive.Last);
     test.Send.Sum = NetClockTester.Add(test.Send.Sum, num5);
     test.Receive.Sum = NetClockTester.Add(test.Receive.Sum, num6);
     test.Count = test.Count + (long)1;
     test.Send.Last = timeStamp;
     test.Receive.Last = num;
     if (num5 < minimalSendRateMS)
     {
         validityFlag1 = validityFlag1 | NetClockTester.ValidityFlags.TooFrequent;
     }
     long num7 = NetClockTester.Subtract(test.Send.Last, test.Send.First);
     long num8 = NetClockTester.Subtract(test.Receive.Last, test.Receive.First);
     if (test.Count >= (long)5)
     {
         if (num7 > num8 * (long)2)
         {
             validityFlag1 = validityFlag1 | NetClockTester.ValidityFlags.OverTimed;
         }
     }
     else if (test.Count >= (long)3 && num7 > num8 * (long)4)
     {
         validityFlag1 = validityFlag1 | NetClockTester.ValidityFlags.OverTimed;
     }
     NetClockTester.ValidityFlags lastTestFlags = test.LastTestFlags;
     test.LastTestFlags = validityFlag1;
     if ((validityFlag1 & NetClockTester.ValidityFlags.TooFrequent) == NetClockTester.ValidityFlags.TooFrequent && (lastTestFlags & NetClockTester.ValidityFlags.TooFrequent) != NetClockTester.ValidityFlags.TooFrequent)
     {
         validityFlag1 = validityFlag1 & (NetClockTester.ValidityFlags.Valid | NetClockTester.ValidityFlags.OverTimed | NetClockTester.ValidityFlags.AheadOfServerTime);
         test.Count = (ulong)1;
         test.Send.First = test.Send.Last;
         test.Send.Sum = (ulong)0;
         if (num6 <= (long)0)
         {
             test.Receive.First = test.Receive.Last;
             test.Receive.Sum = (ulong)0;
         }
         else
         {
             test.Receive.First = (ulong)NetClockTester.Subtract(test.Receive.Last, (ulong)num6);
             test.Receive.Sum = (ulong)num6;
         }
     }
     return ((int)validityFlag1 != 0 ? validityFlag1 : NetClockTester.ValidityFlags.Valid);
 }
Exemplo n.º 4
0
 public static NetClockTester.ValidityFlags TestValidity(ref NetClockTester test, ref uLink.NetworkMessageInfo info, long intervalMS, NetClockTester.ValidityFlags testFor)
 {
     NetClockTester.ValidityFlags validityFlag = NetClockTester.TestValidity(ref test, info.timestampInMillis, intervalMS);
     test.Results.Add(validityFlag & testFor);
     return validityFlag;
 }
Exemplo n.º 5
0
 public static NetClockTester.ValidityFlags TestValidity(ref NetClockTester test, ref uLink.NetworkMessageInfo info, double intervalSec, NetClockTester.ValidityFlags testFor)
 {
     return NetClockTester.TestValidity(ref test, ref info, (long)Math.Floor(intervalSec * 1000), testFor);
 }
Exemplo n.º 6
0
 public void Add(NetClockTester.ValidityFlags vf)
 {
     switch (vf & (NetClockTester.ValidityFlags.TooFrequent | NetClockTester.ValidityFlags.OverTimed | NetClockTester.ValidityFlags.AheadOfServerTime))
     {
         case 0:
         {
             if ((vf & NetClockTester.ValidityFlags.Valid) == NetClockTester.ValidityFlags.Valid)
             {
                 NetClockTester.Validity valid = this;
                 valid.Valid = valid.Valid + 1;
             }
             return;
         }
         case NetClockTester.ValidityFlags.Valid:
         case NetClockTester.ValidityFlags.Valid | NetClockTester.ValidityFlags.TooFrequent:
         case NetClockTester.ValidityFlags.Valid | NetClockTester.ValidityFlags.OverTimed:
         case NetClockTester.ValidityFlags.Valid | NetClockTester.ValidityFlags.TooFrequent | NetClockTester.ValidityFlags.OverTimed:
         case NetClockTester.ValidityFlags.Valid | NetClockTester.ValidityFlags.AheadOfServerTime:
         case NetClockTester.ValidityFlags.Valid | NetClockTester.ValidityFlags.TooFrequent | NetClockTester.ValidityFlags.AheadOfServerTime:
         case NetClockTester.ValidityFlags.Valid | NetClockTester.ValidityFlags.OverTimed | NetClockTester.ValidityFlags.AheadOfServerTime:
         {
             return;
         }
         case NetClockTester.ValidityFlags.TooFrequent:
         {
             NetClockTester.Validity tooFrequent = this;
             tooFrequent.TooFrequent = tooFrequent.TooFrequent + 1;
             return;
         }
         case NetClockTester.ValidityFlags.OverTimed:
         {
             NetClockTester.Validity overTimed = this;
             overTimed.OverTimed = overTimed.OverTimed + 1;
             return;
         }
         case NetClockTester.ValidityFlags.TooFrequent | NetClockTester.ValidityFlags.OverTimed:
         {
             NetClockTester.Validity validity = this;
             validity.OverTimed = validity.OverTimed + 1;
             NetClockTester.Validity tooFrequent1 = this;
             tooFrequent1.TooFrequent = tooFrequent1.TooFrequent + 1;
             return;
         }
         case NetClockTester.ValidityFlags.AheadOfServerTime:
         {
             NetClockTester.Validity aheadOfServerTime = this;
             aheadOfServerTime.AheadOfServerTime = aheadOfServerTime.AheadOfServerTime + 1;
             return;
         }
         case NetClockTester.ValidityFlags.TooFrequent | NetClockTester.ValidityFlags.AheadOfServerTime:
         {
             NetClockTester.Validity aheadOfServerTime1 = this;
             aheadOfServerTime1.AheadOfServerTime = aheadOfServerTime1.AheadOfServerTime + 1;
             NetClockTester.Validity validity1 = this;
             validity1.TooFrequent = validity1.TooFrequent + 1;
             return;
         }
         case NetClockTester.ValidityFlags.OverTimed | NetClockTester.ValidityFlags.AheadOfServerTime:
         {
             NetClockTester.Validity aheadOfServerTime2 = this;
             aheadOfServerTime2.AheadOfServerTime = aheadOfServerTime2.AheadOfServerTime + 1;
             NetClockTester.Validity overTimed1 = this;
             overTimed1.OverTimed = overTimed1.OverTimed + 1;
             return;
         }
         case NetClockTester.ValidityFlags.TooFrequent | NetClockTester.ValidityFlags.OverTimed | NetClockTester.ValidityFlags.AheadOfServerTime:
         {
             NetClockTester.Validity validity2 = this;
             validity2.AheadOfServerTime = validity2.AheadOfServerTime + 1;
             NetClockTester.Validity overTimed2 = this;
             overTimed2.OverTimed = overTimed2.OverTimed + 1;
             NetClockTester.Validity tooFrequent2 = this;
             tooFrequent2.TooFrequent = tooFrequent2.TooFrequent + 1;
             return;
         }
         default:
         {
             return;
         }
     }
 }
Exemplo n.º 7
0
 public static ValidityFlags TestValidity(ref NetClockTester test, ref uLink.NetworkMessageInfo info, double intervalSec, ValidityFlags testFor)
 {
     return(TestValidity(ref test, ref info, (long)Math.Floor((double)(intervalSec * 1000.0)), testFor));
 }
Exemplo n.º 8
0
    private static NetClockTester.ValidityFlags TestValidity(ref NetClockTester test, ulong timeStamp, long minimalSendRateMS)
    {
        NetClockTester.ValidityFlags validityFlag;
        ulong num = NetCull.timeInMillis;

        if (num >= timeStamp)
        {
            validityFlag = (NetClockTester.ValidityFlags) 0;
        }
        else
        {
            validityFlag = NetClockTester.ValidityFlags.AheadOfServerTime;
        }
        NetClockTester.ValidityFlags validityFlag1 = validityFlag;
        if (test.Count <= (long)0)
        {
            long  num1 = (long)0;
            ulong num2 = (ulong)num1;
            test.Receive.Sum = (ulong)num1;
            test.Send.Sum    = num2;
            ulong num3 = timeStamp;
            num2            = num3;
            test.Send.First = num3;
            test.Send.Last  = num2;
            ulong num4 = num;
            num2 = num4;
            test.Receive.First = num4;
            test.Receive.Last  = num2;
            test.Count         = (ulong)1;
            return(validityFlag1);
        }
        long num5 = NetClockTester.Subtract(timeStamp, test.Send.Last);
        long num6 = NetClockTester.Subtract(num, test.Receive.Last);

        test.Send.Sum     = NetClockTester.Add(test.Send.Sum, num5);
        test.Receive.Sum  = NetClockTester.Add(test.Receive.Sum, num6);
        test.Count        = test.Count + (long)1;
        test.Send.Last    = timeStamp;
        test.Receive.Last = num;
        if (num5 < minimalSendRateMS)
        {
            validityFlag1 = validityFlag1 | NetClockTester.ValidityFlags.TooFrequent;
        }
        long num7 = NetClockTester.Subtract(test.Send.Last, test.Send.First);
        long num8 = NetClockTester.Subtract(test.Receive.Last, test.Receive.First);

        if (test.Count >= (long)5)
        {
            if (num7 > num8 * (long)2)
            {
                validityFlag1 = validityFlag1 | NetClockTester.ValidityFlags.OverTimed;
            }
        }
        else if (test.Count >= (long)3 && num7 > num8 * (long)4)
        {
            validityFlag1 = validityFlag1 | NetClockTester.ValidityFlags.OverTimed;
        }
        NetClockTester.ValidityFlags lastTestFlags = test.LastTestFlags;
        test.LastTestFlags = validityFlag1;
        if ((validityFlag1 & NetClockTester.ValidityFlags.TooFrequent) == NetClockTester.ValidityFlags.TooFrequent && (lastTestFlags & NetClockTester.ValidityFlags.TooFrequent) != NetClockTester.ValidityFlags.TooFrequent)
        {
            validityFlag1   = validityFlag1 & (NetClockTester.ValidityFlags.Valid | NetClockTester.ValidityFlags.OverTimed | NetClockTester.ValidityFlags.AheadOfServerTime);
            test.Count      = (ulong)1;
            test.Send.First = test.Send.Last;
            test.Send.Sum   = (ulong)0;
            if (num6 <= (long)0)
            {
                test.Receive.First = test.Receive.Last;
                test.Receive.Sum   = (ulong)0;
            }
            else
            {
                test.Receive.First = (ulong)NetClockTester.Subtract(test.Receive.Last, (ulong)num6);
                test.Receive.Sum   = (ulong)num6;
            }
        }
        return((int)validityFlag1 != 0 ? validityFlag1 : NetClockTester.ValidityFlags.Valid);
    }
Exemplo n.º 9
0
 public static NetClockTester.ValidityFlags TestValidity(ref NetClockTester test, ref uLink.NetworkMessageInfo info, long intervalMS, NetClockTester.ValidityFlags testFor)
 {
     NetClockTester.ValidityFlags validityFlag = NetClockTester.TestValidity(ref test, info.timestampInMillis, intervalMS);
     test.Results.Add(validityFlag & testFor);
     return(validityFlag);
 }