128 lines
3.3 KiB
C#
128 lines
3.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.InteropServices;
|
|
using System.Threading;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.Extensions
|
|
{
|
|
// Token: 0x020019BA RID: 6586
|
|
[Token(Token = "0x20019BA")]
|
|
[StructLayout(3)]
|
|
public sealed class HeartbeatManager
|
|
{
|
|
// Token: 0x0600B10F RID: 45327 RVA: 0x00295C40 File Offset: 0x00293E40
|
|
[Token(Token = "0x600B10F")]
|
|
[Address(RVA = "0x1C9DAB0", Offset = "0x1C9C4B0", VA = "0x181C9DAB0")]
|
|
public void Subscribe(IHeartbeat heartbeat)
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
List<IHeartbeat> heartbeats = this.Heartbeats;
|
|
if (!this.Heartbeats.Contains(heartbeat))
|
|
{
|
|
this.Heartbeats.Add(heartbeat);
|
|
}
|
|
Monitor.Exit(heartbeats);
|
|
if (num != -1)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
}
|
|
|
|
// Token: 0x0600B110 RID: 45328 RVA: 0x00295C8C File Offset: 0x00293E8C
|
|
[Token(Token = "0x600B110")]
|
|
[Address(RVA = "0x1C9DBC0", Offset = "0x1C9C5C0", VA = "0x181C9DBC0")]
|
|
public void Unsubscribe(IHeartbeat heartbeat)
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
List<IHeartbeat> heartbeats = this.Heartbeats;
|
|
bool flag = this.Heartbeats.Remove(heartbeat);
|
|
Monitor.Exit(heartbeats);
|
|
if (num != -1)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
}
|
|
|
|
// Token: 0x0600B111 RID: 45329 RVA: 0x00295CC4 File Offset: 0x00293EC4
|
|
[Token(Token = "0x600B111")]
|
|
[Address(RVA = "0x1C9DCB0", Offset = "0x1C9C6B0", VA = "0x181C9DCB0")]
|
|
public void Update()
|
|
{
|
|
int num = 0;
|
|
DateTime lastUpdate = this.LastUpdate;
|
|
DateTime minValue = DateTime.MinValue;
|
|
if (!(lastUpdate == minValue))
|
|
{
|
|
DateTime utcNow = DateTime.UtcNow;
|
|
DateTime lastUpdate2 = this.LastUpdate;
|
|
TimeSpan timeSpan = utcNow - lastUpdate2;
|
|
DateTime utcNow2 = DateTime.UtcNow;
|
|
this.LastUpdate = utcNow2;
|
|
List<IHeartbeat> heartbeats = this.Heartbeats;
|
|
IHeartbeat[] updateArray = this.UpdateArray;
|
|
if (updateArray != 0)
|
|
{
|
|
int size = this.Heartbeats._size;
|
|
if (updateArray.Length >= size)
|
|
{
|
|
goto IL_7F;
|
|
}
|
|
}
|
|
List<IHeartbeat> heartbeats2 = this.Heartbeats;
|
|
IL_7F:
|
|
int size2 = this.Heartbeats._size;
|
|
List<IHeartbeat> heartbeats3 = this.Heartbeats;
|
|
int num2 = 0;
|
|
Monitor.Exit(heartbeats);
|
|
if (num != -1)
|
|
{
|
|
}
|
|
if (num != 0)
|
|
{
|
|
throw new IndexOutOfRangeException();
|
|
}
|
|
IHeartbeat heartbeat = this.UpdateArray[num2];
|
|
num2++;
|
|
}
|
|
DateTime utcNow3 = DateTime.UtcNow;
|
|
this.LastUpdate = utcNow3;
|
|
}
|
|
|
|
// Token: 0x0600B112 RID: 45330 RVA: 0x00295DC8 File Offset: 0x00293FC8
|
|
[Token(Token = "0x600B112")]
|
|
[Address(RVA = "0x1C9DF60", Offset = "0x1C9C960", VA = "0x181C9DF60")]
|
|
public HeartbeatManager()
|
|
{
|
|
List<IHeartbeat> list = new List();
|
|
this.Heartbeats = list;
|
|
DateTime minValue = DateTime.MinValue;
|
|
this.LastUpdate = minValue;
|
|
base..ctor();
|
|
}
|
|
|
|
// Token: 0x04007427 RID: 29735
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4007427")]
|
|
private List<IHeartbeat> Heartbeats;
|
|
|
|
// Token: 0x04007428 RID: 29736
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4007428")]
|
|
private IHeartbeat[] UpdateArray;
|
|
|
|
// Token: 0x04007429 RID: 29737
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4007429")]
|
|
private DateTime LastUpdate;
|
|
}
|
|
}
|